2024第一周学习笔记
2024 第一周学习笔记
壳:分为两种,一种是压缩壳1,一种是加密壳
用IDA打开加壳后的文件
使用 IDA 打开时会提示 Some imported modules will not be visible because the IAT is located outside of memory range of the input file.

手动脱壳三种方法:
1.单步跟踪法
原则:向上的跳转,不执行,向下的跳转执行,灰色的不用管
单步运行程序,当发现程序向下运行时有向上跳转的箭头时,在程序的下一步(即下一行)设置断点,然后不进行向上的跳转
步骤:
法一:右键选中,断点–>运行到选定位置(F4)
法二:右键选中,断点–>切换,然后运行,最后再点击切换来取消这个断点
注意:
当此时下一行的指令还是跳转时(JZ JNZ CALL),则继续选择下一行进行跳转




脱壳方式有两种:一种是使用od插件ollydump,另一种是使用工具lordpe
od插件又有两种,一种是方式一,一种是方式二
进入OEP,可以进行脱壳了
使用ollydump脱壳调试进程
lordpe:(这个看上去好像有点麻烦,浅记一下)


查看相对基址(上图中的OEP)可以使用下图方法,点击后在修正值处的值就是我们所需要的OEP的值

2.一步直达法
说明:适用于绝大部分的upx壳和aspack壳
进入OD,使用Ctrl+F搜索出popad(搜索时不要勾选”整个块“这个选项),然后使用跳转,跳转到此处,然后F8进入OEP,开始使用ollydump脱壳
3.ESP定律脱壳
使用快捷键F8,单步一次,发现只有ESP寄存器是红的,就可以使用ESP定律
右键选择数据窗口跟随,设置断点
F9运行
F8进入OEP,此处如果是push ebp,就是进入了OEP
开始使用OD的插件脱壳


这个地方设置断点的时候dword和word都一样
4.内存镜像法
右上角点击查看–>内存
找程序出现的第一个rsrc
总结:

使用bindiff对去符号化题目进行处理报错处理
打开文件
据说最开始第一个报错没有什么具体影响
但是第二个报错有,会影响接下来对文件的分析

网上好像也没有找到相应的解决办法,最后试了很久找到两个方法:
法一:
手动拖动,按下import symbols

然后在一旁的汇编框内按下f5
法二:
尝试更换bindiff的插件,bindiff
BinDiff 7 通常与 IDA Pro 7.x 版本兼容,7的版本似乎只适用于IDA7.6,在github上面重新下载一个Bindiff,然后在
C:\Users\asus\AppData\Roaming\Hex-Rays\IDA Pro\plugins下替换掉原来的Bindiff插件(放在一个公共插件存放的位置)

青少年ctf re复现


