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.

img

手动脱壳三种方法:

1.单步跟踪法

原则:向上的跳转,不执行,向下的跳转执行,灰色的不用管

单步运行程序,当发现程序向下运行时有向上跳转的箭头时,在程序的下一步(即下一行)设置断点,然后不进行向上的跳转

步骤:

法一:右键选中,断点–>运行到选定位置(F4)

法二:右键选中,断点–>切换,然后运行,最后再点击切换来取消这个断点

注意:

当此时下一行的指令还是跳转时(JZ JNZ CALL),则继续选择下一行进行跳转

image-20240303153301086

image-20240303153848169

image-20240303154057257

脱壳方式有两种:一种是使用od插件ollydump,另一种是使用工具lordpe

od插件又有两种,一种是方式一,一种是方式二

进入OEP,可以进行脱壳了

使用ollydump脱壳调试进程

lordpe:(这个看上去好像有点麻烦,浅记一下)

image-20240303154743390

image-20240303155052911

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

image-20240303155015170

2.一步直达法

说明:适用于绝大部分的upx壳和aspack壳

进入OD,使用Ctrl+F搜索出popad(搜索时不要勾选”整个块“这个选项),然后使用跳转,跳转到此处,然后F8进入OEP,开始使用ollydump脱壳

3.ESP定律脱壳

使用快捷键F8,单步一次,发现只有ESP寄存器是红的,就可以使用ESP定律

右键选择数据窗口跟随,设置断点

F9运行

F8进入OEP,此处如果是push ebp,就是进入了OEP

开始使用OD的插件脱壳

image-20240303150734726

image-20240303150833144

这个地方设置断点的时候dword和word都一样

4.内存镜像法

右上角点击查看–>内存

找程序出现的第一个rsrc

总结:

image-20240303161111876

upx手动脱壳学习笔记_如何使用upx脱壳-CSDN博客

UPX手动脱壳-CSDN博客

使用bindiff对去符号化题目进行处理报错处理

打开文件

FF1F28C59D5D07660321030BB8F66733

据说最开始第一个报错没有什么具体影响

但是第二个报错有,会影响接下来对文件的分析

image-20240302115416240

网上好像也没有找到相应的解决办法,最后试了很久找到两个方法:

法一:

手动拖动,按下import symbols

img

然后在一旁的汇编框内按下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插件(放在一个公共插件存放的位置)

image-20240303170808277

青少年ctf re复现

image-20240303235625824

image-20240304000021168


2024第一周学习笔记
http://example.com/2024/03/03/2024 第一周学习笔记/
作者
John Doe
发布于
2024年3月3日
许可协议