OD介绍和基本的操作

一个动态调试的反汇编工具

image-20230518160143000

这个是打开后的样子,上面有选型,下边有几个不同作用的窗口。我们尝试把一个文件放进去看看。

image-20230518160450558

首先是上面的地方,有文件,插件….

下面有一个【暂停】字样,这个来看程序是运行的还是暂停的,然后右边有2个黑色的三角形是重新加载程序,X是退出。

红色的三角形是运行程序,后面带有箭头和好几个点的是运行程序,每一个意思不一样,单步运行啊,单步步过啊。。。啥的

后面一串洋文的东西,就是一系列窗口,说不明白,还得自己多尝试

中间是汇编的主要的窗口,右边是寄存器窗口,左下是数据的窗口,在主窗口和数据窗口中还有一个小的窗口,右下是栈窗口。

上面那个插件蛮好用的。

image-20230518160943254

蛮多的。

功能不介绍【主要我也不知道】

我知道一个API断点设置工具

image-20230518161039183

主要就是对于不同的API函数进行设置断点的工具。

主要还是得靠实际操作。


去除花指令

花指令就是恶心别人。加一些没用的东西。

可以用OD中的插件去除啦。

image-20230518161821473

找到含有花指令函数的头部,然后选中它,点击插件里面的DeJunk 就可以去掉了

脱壳之:ESP定律去除OEP

啥是OEP?

image-20230518162053514

这里实战一下啦

image-20230518162410809

可以看到,这个程序有一个UPX的壳.

咋说呢…

这里有一个UPX自动脱壳的工具

image-20230518162839734

这样就脱壳了。但是不够优雅

我们用OD的esp定律来手动脱壳

进入软件,F8单步

当esp变成红色

image-20230518163355348

找到第一个数据的地方,右键-断点-硬件访问-Word

image-20230518163318315

F9跑起来啦

image-20230518163529066

到这里,下面这个jmp 跳转就是程序入口的地方。

然后在黑色窗口输入一点东西,然后继续F9

image-20230518163823417

现在就是跳到了程序真的入口点

插件OllyDump

image-20230518164155517 image-20230518164233713

ok

这样就无壳了