学习:脱壳之内存执行寻找OEP

Posted zpchcbd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习:脱壳之内存执行寻找OEP相关的知识,希望对你有一定的参考价值。

前言:类似排除法,如果一开始直到OEP的地址话,那么成功脱壳的几率应该百分之百,如果不知道,那自己尝试的时候,还是需要检查检查

1、直接加载入OD,打开内存窗口观察,发现是UPX的壳

技术图片

内存映射, 条目 22
地址=00401000
大小=00008000 (32768.)
属主=CRACKME_ 00400000
区段=UPX0
包含=输出表
类型=Imag 01001002
访问=R
初始访问=RWE

内存映射, 条目 23
地址=00409000
大小=00001000 (4096.)
属主=CRACKME_ 00400000
区段=UPX1
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE

内存映射, 条目 24
地址=0040A000
大小=00001000 (4096.)
Owner=CRACKME_ 00400000
Section=.rsrc
Contains=data,imports,resources
Type=Imag 01001002
Access=R
Initial access=RWE

2、知道了UPX1是代码段,那么这个程序在运行的时候肯定不会把自己的代码段UPX1进行解密然后再进行写入,那么值得怀疑的区段就只有.rsrc 和 UPX0,那么直接给UPX0下内存断点,原因是UPX1区段解密完会在别的区段进行写入解密完之后的代码,所以当访问的时候,也就是解密的时候的代码,那么直接F9运行,发现成功来到OEP

技术图片

以上是关于学习:脱壳之内存执行寻找OEP的主要内容,如果未能解决你的问题,请参考以下文章

学习:脱壳之VB程序快速寻找OEP

脱壳实践之寻找OEP——两次内存断点法

记手动脱壳

记手动脱壳

脱壳:OEP(即程序入口点)查找 --- 基本思路和常见方法

学习:KiUserExceptionDispatcher之寻找OEP