《第1期-14 BC++假自效验》学习笔记

   我这里写的都是自己的学习笔记,而不是用文字形式把视频中的操作给重现一遍。我应该写的是自己学到了什么新东西,所以从这期开始,我不像以前那样记录了。

这期视频,作者的目的是让我们明白一个道理:只是对软件查壳是不够的,最好还要知道是什么语言编写的。于是,用了一个名为“teltel超速拨号器 9.8”的软件。


使用DIE可以知道是用BC++编写的,但是脱壳后的程序却无法运行。这个作者给它取名为“BC++假自校验”。其实是,只是修复了OEP还不够的,IAT也是需要修复的。

接下来就是如何使用LordPE和ImpREC 来进行脱壳。

LordPE使用

  1. LordPE中找到软件的进程,一般在最下面,可以看“路径”里面是否有软件的名字来确定。
  2. 如图,修正镜像大小:


    2.png
  3. 右键,选择“完整转存”。这时,会生成一个名为 dumped
    的文件,这就是转存后的文件。


    2-2.png

ImpREC的使用

  1. 在OD中,找到OEP后,右键,选择“用OllyDump脱壳调试进程”,如图:


    1.png

    接下来,把下图中圈起来的部分复制一下


    1-1.png
  1. 打开ImpREC 后,还是找到软件对应的进程。然后按照图片中的进行操作。


    3.png

    选择要转储到的文件,就是在LordPE中转存出来的。


    2

    随后,ImpREC会生成一个文件,但是双击运行时无法正常运行起来的。这就涉及到了BC++的假自校验。

BC++假自校验处理

  1. 在OD中,找到OEP,向下翻到第一个call,双击一下这行代码


    4.png

    会来到一块内存区域


    4-2.png

    随后,向上翻到段首,在下图中是547E28处
    4-3.png
  2. 在547E28处,右键,选择”数据窗口中更随”,在OD的数据窗口中会显示如下:


    4-4.png

    计算出偏移量 56E114 - 400000 = 16E114

  3. 打开ImpREC,把上一步中算出来的16E114复制到如图:


    4-5.png

    然后再重新“转储到文件”

  4. 这个时候,生成的文件就可以正常运行了。

总结一下,从这集中学到的:

  • BC++假自校验的处理方法
  • LordPE和ImpREC如何用于把脱壳后的程序给转储出来

你可能感兴趣的:(《第1期-14 BC++假自效验》学习笔记)