UPX程序破解过程
入门级的破解,用ollydbg
我用UPX将NOTEPAD.EXE加壳,选择OllyDbg 1.09d来脱壳。首先加载被加壳的程序,
程序直接定位到01014110 $60 PUSHAD处,选择CTRL F 输入查找内容"POPAD",
OD定位到 0101425E > 61 POPAD 处,光标点到1425E, F4运行到该行,F8单步
到0101425F .-E9 7C28FFFF JMP NOTEPAD.01006AE0,此处即为OEP
F7单步跟入,定位到程序真正入口:01006AE0 6A 70 PUSH 70,呵呵,
此时选择OD 的 OllyDump / Dump Debug Process. 去掉复选框"Rebuild Import"
,(我需要ImpRec对其输入表重建)。选择Dump,生成新的文件,此时不能直接运行,
(会提示:应用程序正常初始化(0xc0000005)失败。请单击"确定",终止应用
程序)。因为没有Rebuild Import table。 运行Import REConstructor 1.6
Final, 同时运行加壳程序, 在ImpRec中找到加壳程序所在进程,可以看到
IAT Infos: OEP 00014110是被做过手脚了:)
输入真正的OEP 0006AE0(注意是RVA,需要减掉Image Base 01000000), 选择
IAT AutoSearch , ImpRec 提示 Fond address ,点击确定后选择"Get Imports"
看到Imported Functions Found下面的输入表函数都是valid, 点击Fix Dump
选择刚刚Dump出来的那个文件,确定即可。
运行程序,发现已经可以运行了,脱壳成功!!!
我用UPX将NOTEPAD.EXE加壳,选择OllyDbg 1.09d来脱壳。首先加载被加壳的程序,
程序直接定位到01014110 $60 PUSHAD处,选择CTRL F 输入查找内容"POPAD",
OD定位到 0101425E > 61 POPAD 处,光标点到1425E, F4运行到该行,F8单步
到0101425F .-E9 7C28FFFF JMP NOTEPAD.01006AE0,此处即为OEP
F7单步跟入,定位到程序真正入口:01006AE0 6A 70 PUSH 70,呵呵,
此时选择OD 的 OllyDump / Dump Debug Process. 去掉复选框"Rebuild Import"
,(我需要ImpRec对其输入表重建)。选择Dump,生成新的文件,此时不能直接运行,
(会提示:应用程序正常初始化(0xc0000005)失败。请单击"确定",终止应用
程序)。因为没有Rebuild Import table。 运行Import REConstructor 1.6
Final, 同时运行加壳程序, 在ImpRec中找到加壳程序所在进程,可以看到
IAT Infos: OEP 00014110是被做过手脚了:)
输入真正的OEP 0006AE0(注意是RVA,需要减掉Image Base 01000000), 选择
IAT AutoSearch , ImpRec 提示 Fond address ,点击确定后选择"Get Imports"
看到Imported Functions Found下面的输入表函数都是valid, 点击Fix Dump
选择刚刚Dump出来的那个文件,确定即可。
运行程序,发现已经可以运行了,脱壳成功!!!