使用OllyDbg从零开始Cracking 第二十四章OllyDbg反调试之综合练习概要1.docVIP

  • 5
  • 0
  • 约3.64千字
  • 约 17页
  • 2017-07-09 发布于湖北
  • 举报

使用OllyDbg从零开始Cracking 第二十四章OllyDbg反调试之综合练习概要1.doc

使用OllyDbg从零开始Cracking 第二十四章OllyDbg反调试之综合练习概要1

第二十四章-OllyDbg反调试之综合练习 在我们介绍异常处理之前,我们先把上一章留下的antisocial1这个反调试的综合练习讲解一下。 这是一个加过壳的程序,当然,我们还没有介绍壳的相关知识点,我们只需要知道该程序加载到内存中以后,壳会解密原区段的各个区段的数据,然后跳转到原入口点(OEP)处执行原程序的代码。当外壳程序解密/解压还原并跳转到OEP处,此时的内存映像就是已解压/解密过的程序,这个时候将内存映像抓取并保存为文件即可(该过程称之为Dump)。 首先我们用之前重命名过的OD,并且带上之前介绍过的所有插件,运行起来,我们会发现程序会终止,我们来尝试修复它。 好了,现在我们用重命名过的OD加载antisocial,将反反调试插件的选项都勾选上。 该提示表明该程序可能被加壳了,我们选择”是”按钮,然后就停在了入口点处。 这里我们会看到一些奇怪的东西,POPAD指令,该指令是从堆栈中恢复各个寄存器的值。正常情况下,应该是首先PUSHAD保存各个寄存器的值,而这里并没有执行PUSHAD指令,就比较可疑了。 我们运行起来看看会发生什么。 这里 这里提示错误-PUSH指令尝试压栈,但是这里没有写权限,但是通常来说堆栈应该是具有写权限的。我们来看一看堆栈。 当前栈顶指针指向的是130000,我们重新启动程序。 我们可以看到当前各个区段的情况,

文档评论(0)

1亿VIP精品文档

相关文档