WEB开发网
开发学院网络安全黑客技术 脱壳基础知识入门之重建输入表 阅读

脱壳基础知识入门之重建输入表

 2007-01-14 16:44:27 来源:WEB开发网   
核心提示: UPX、ASPack等加壳保护的壳没加密IAT,而ASProtect、tElock等加密保护的壳都对IAT进行了加密处理,脱壳基础知识入门之重建输入表(2),这篇先来简单的,即UPX壳,如下图所示:再用LordPE查看脱壳后的输入表:从上图可以看出,输入表己正确修复,用OD打开上面的not

UPX、ASPack等加壳保护的壳没加密IAT,而ASProtect、tElock等加密保护的壳都对IAT进行了加密处理。这篇先来简单的,即UPX壳。用OD打开上面的notepad.upx.exe实例,运行到OEP。(实际跟踪过程中,不一定要到OEP,只要外壳处理完IAT就可)然后如下操作:

1)运行ImportREC,在下拉列表框中选择notepad.upx.exe进程,如图:

2)上面己得知notepad.upx.exe的OEP地址是4010CC,则在左下角OEP处填入OEP的RVA值,这里填上10CC。点击“IATAutoSearch”按钮,让其自动检测IAT偏移和大小,如出现下图表示ImportREC自己找到IAT的地址与大小了,即IAT地址:000062E0,大小248。

如果ImportREC没找到IAT偏移,则必须手工填入IAT偏移和大小(IAT偏移手动获得以后再讲述)。

3)点击“GetImport”按钮,让其分析IAT结构得到基本信息,如下图所示:

4)如发现某个DLL显示"valid:NO",按"ShowInvalids"按钮将分析所有的无效信息,在ImportedFunctionFound栏中点击鼠标右键,选择"TraceLevel1(Disasm)",再按"ShowInvalids"按钮。如果成功,可以看到所有的DLL都为"valid:YES"字样;

5)再次刷新"ShowInvalids"按钮查看结果,如仍有无效的地址,继续手动用右键的Level2或3修复;

6)如还是出错,可以利用"Invalidatefunction(s)"、"Deletethunk(s)"、编辑Import表(双击函数)等功能手动修复。

7)开始修复已脱壳的程序。选择Addnewsection(缺省是选上的)来为Dump出来的文件加一个Section(虽然文件比较大,但避免了许多不必要的麻烦)。

8)单击"FixDump"按钮,并选择刚在前面己Dump出来的文件。如修复的文件名是"Dump.exe",它将创建一个"Dump_.exe",此外OEP也被修正。

经过这些步骤,这个UPX壳己成功脱掉。此时再用PEID查一下脱壳后的程序dumped_.exe,会显示是“MicrosoftVisualC++6.0SPxMethod1”,如下图所示:

再用LordPE查看脱壳后的输入表:

从上图可以看出,输入表己正确修复,此时脱壳后的文件己能成功运行了。

上一页  1 2 

Tags:脱壳 基础知识 入门

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