明日愁来明日愁🍺|

一个半

园龄:2年3个月粉丝:1关注:1

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
(仅为个人学习记录,如有错误,欢迎指正)

本文作者:一个半

本文链接:https://www.cnblogs.com/hopein/p/16936116.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   一个半  阅读(108)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起