简单脱壳教程笔记(3)---手脱UPX壳(2)

来源:互联网 发布:淘宝怎样发布宝贝 编辑:程序博客网 时间:2024/04/28 03:12

         我们接着上一篇   ”简单脱壳教程笔记(2)---手脱UPX壳(1)“继续。我们说了UPX我们可以使用四种方式,上一篇已经详细的讲解了单步跟踪法,接下来,我们讲解其他方式。

        方法2:ESP定律法

            ESP是我们的是一个寄存器,当程序使用pushad命令入栈的时候,只会让esp突变,根据堆栈平衡的原则,我们就可以找到OEP了。

            操作:

                    1、找到关键句的下一句,将程序运行到此处,我们此处的关键代码就是pushad,将程序执行到下一句,就会发现ESP突变。

   


                   2、然后在命令行窗口中使用命令进行设置断点

                  可以在ESP上右键,选择在数据窗口中跟随,也可以使用dd  或 hr 

                   dd XXXXX    转存在堆栈格式

                    hr XXXXX   访问时进行硬件中断

                    

                      

                   然后设置硬件访问断点(注意:把之前设置的硬件断点取消掉)

           

         
               然后我们运行程序即可,就跳转到jmp  OEP 处

               

              

              找到OEP,我们就可以根据1中的方法进行脱壳了。


        方法3:2次内存镜像法

              我们需要找到内存。 (要使用OllyICE_1.10.rar  不要使用吾爱的OD)

              1、点击查看--内存(alt+m) 或者点击M即可

                           

 

             2、在内存窗口中找到程序段中的第一个 .rsrc ,然后下断点,

                     

             然后运行

              


       3、我们在到内存中下断点,

             

             然后运行

                

 

           4、然后单步即可 就找到OEP了。

           

        方法4:一步直达法(适合绝大部分的UPX壳和ASPACK壳)

             我们在程序的开头见到有pushad,那么肯定会有popad,我们直接查询popad命令即可
            
 
              

               
            



0 0
原创粉丝点击