之前看文章一直都是单步调试F8 F7去找OEP,但是操作的时候中间会经过很多函数,一个个F8跑飞了再F7,重新调试的时候有些烦躁和耗时间。

正文

在开头处下断点,打开虚拟机,启动调试

在工具栏如下 函数跟踪,然后F9运行

调试结束之后我们在这里查看调用的函数

函数如下

mprotect 系统调用通常用于需要更改内存页权限的场景,例如使某个区域可执行以实现自修改代码或即时编译。upx解压的时候肯定会调用,我们跟踪过去

下断点开始跑,个人觉得这样可以方便很多

一路F8/F7

来到jmp这里F7步入

看到popa那快成功了

F8过来

查看程序入口发现上面那就是入口OEP了

内存快照,(这里也可以用idc脚本dump下来)

停止调试,回到入口处汇编那里重新P定义一下函数就可以了

下面是此例题的flag