UPX脱壳
单步执行:
-
起始位有pushad往下找popad,遇到跳转向下可以实现,向上不让实现,遇到连在一起的跳转选择最后一个跳转的下一行继续单步执行。
-
遇到jmp底下有call也需要在下一行断点单步遇到popad下面的jmp,观察跳转跨度是否过大。因为一般说很大跨度的跳转就会直接跳转到oep(程序入口)

-
在程序入口处的pushad入栈的值和这里的popad相对应,说明程序已经到达跳转的oep附近,观察popad下一行的jmp可以发现是一个非常大跨度的跳转,即跳转到oep

-
到达入口可以使用插件ollydump来进行脱壳,或者使用loadpe
方法2:ESP定律法
根据pushad入栈的值来设置硬件断点并执行

dd XXXXXhr XXXXX命令都可设置断点后执行基本就会在oep附近
方法3:2次内存镜像法

方法4:一步直达法{适用于部分upx壳和aspack壳

直接右键查找popad
(仅为个人学习记录,如有错误,欢迎指正)

浙公网安备 33010602011771号