WEB开发网
开发学院网络安全黑客技术 脱壳基础知识入门之寻找OEP 阅读

脱壳基础知识入门之寻找OEP

 2007-01-15 16:44:11 来源:WEB开发网   
核心提示: UPX的壳可以用UPX.exe自身来脱,命令是:upx-d文件名,脱壳基础知识入门之寻找OEP(2),一些变种的UPX壳用UPX.EXE自身脱不了,这时可以试试UPXShellEx这款工具,大家不必要跟踪去找这个跨段的转移指令,中断WinMain后,本节实例下载:notepad.upx.r

UPX的壳可以用UPX.exe自身来脱,命令是:upx-d文件名。一些变种的UPX壳用UPX.EXE自身脱不了,这时可以试试UPXShellEx这款工具。

本节实例下载:notepad.upx.rar

脱壳前建议用PE工具LordPE打开目标文件查看一下区块,以尽可能地多了解一些信息,对脱壳有帮助,如下图:

1.根据跨段指令寻找OEP

推荐用Ollydbg来调试脱壳,比SoftICE和TRW2000方便多了。运行Ollydbg,点击菜单“选项/调试设置”,将第一次暂停设在WinMain函数上。再用Ollydbg打开实例notepad.upx.exe就可中断在外壳的入口点处了:

上图相关代码如下:

0040E8C0> 60       pushad  //一开始Ollydbg就会中断这行,这个就是外壳的入口点,注意这个pushad指令

绝大多数加壳程序在被加密的程序中加上一个或多个段,所以依据跨段的转移指令(JMP)就可找到真正的入口点,此时就会有POPAD/POPFD指令出现。UPX用了一次跨段的转移指令(JMP),在跳到OEP处会看到虚拟地址的值有一个突变,此时就能确定OEP了。

UPX壳比较简单,大家不必要跟踪去找这个跨段的转移指令,中断WinMain后,只需要在Ollydbg里往下翻屏,就会发现这个跨段转移指令:

上图相关代码如下:

Tags:脱壳 基础知识 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接