《第1期-14 BC++假自效验》学习笔记
2018-06-06 本文已影响0人
听说我在混吃等死
我这里写的都是自己的学习笔记,而不是用文字形式把视频中的操作给重现一遍。我应该写的是自己学到了什么新东西,所以从这期开始,我不像以前那样记录了。
这期视频,作者的目的是让我们明白一个道理:只是对软件查壳是不够的,最好还要知道是什么语言编写的。于是,用了一个名为“teltel超速拨号器 9.8”的软件。
使用DIE可以知道是用BC++编写的,但是脱壳后的程序却无法运行。这个作者给它取名为“BC++假自校验”。其实是,只是修复了OEP还不够的,IAT也是需要修复的。
接下来就是如何使用LordPE和ImpREC 来进行脱壳。
LordPE使用
- LordPE中找到软件的进程,一般在最下面,可以看“路径”里面是否有软件的名字来确定。
-
如图,修正镜像大小:
2.png -
右键,选择“完整转存”。这时,会生成一个名为 dumped
的文件,这就是转存后的文件。
2-2.png
ImpREC的使用
-
在OD中,找到OEP后,右键,选择“用OllyDump脱壳调试进程”,如图:
1.png
接下来,把下图中圈起来的部分复制一下
1-1.png
-
打开ImpREC 后,还是找到软件对应的进程。然后按照图片中的进行操作。
3.png
选择要转储到的文件,就是在LordPE中转存出来的。
2
随后,ImpREC会生成一个文件,但是双击运行时无法正常运行起来的。这就涉及到了BC++的假自校验。
BC++假自校验处理
-
在OD中,找到OEP,向下翻到第一个call,双击一下这行代码
4.png
会来到一块内存区域
4-2.png
随后,向上翻到段首,在下图中是547E28处
4-3.png -
在547E28处,右键,选择”数据窗口中更随”,在OD的数据窗口中会显示如下:
4-4.png
计算出偏移量 56E114 - 400000 = 16E114
-
打开ImpREC,把上一步中算出来的16E114复制到如图:
4-5.png
然后再重新“转储到文件”
- 这个时候,生成的文件就可以正常运行了。
总结一下,从这集中学到的:
- BC++假自校验的处理方法
- LordPE和ImpREC如何用于把脱壳后的程序给转储出来