【软件名称】: 未知
【软件大小】: 未知
【下载地址】: 自己搜索下载
【加壳方式】: Themida|WinLicense V1.9.2.0 -> Oreans Technologies *
【编写语言】: Microsoft Visual C++ 7.0
【使用工具】: The0DBG_Themida/WinLicense V1.9.3.0,LordPE
【操作平台】: WinXP_SP2
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!感谢fly兄的工具及fxyang兄的脚本!!!
-------------------------------------------------------------------------
【详细过程】
第一步:查壳后可知所加壳为Themida|WinLicense V1.9.2.0 -> Oreans Technologies * 。
第二步:The0DBG+HideToolz设置及隐藏。
第三步:加载被调试程序停在程序入口(如图):


0061D970 68 48796100 push 617948 ; 伪OEP,① call 0061D970
看注意堆栈
0013FF88 0087E7C0 Sungame.0087E7C0
0013FF8C 006EDAA8 Sungame.006EDAA8 ; ② push 006EDAA8
0013FF90 00000060 ; ③ push 60

ALt+M在代码段00401000 F2下断后shift+F9后到这里如图:

00617A64 C3 retn 在这里直接F4,F8到VM中如图:

接着ALt+M在代码段00401000 F2下断后shift+F9后到这里如图:

注意看寄存器这里edx的值为006C9088,就是GetVersionExA所在的地址了,
到寄存器窗口中在006C9088这里跟随到数据窗口,可知
006C9088 7C812ADE kernel32.GetVersionExA
006C908C 7C809BF8 kernel32.MultiByteToWideChar
006C9090 7C80A0D4 kernel32.WideCharToMultiByte
006C9094 7C812A09 kernel32.RaiseException
…………………………………………………………
往上看后往下看可以得知IAT开始及结束地址:
006C8FF8 00000000
006C8FFC 00000000
006C9000 77DC1558 ADVAPI32.CryptEncrypt
006C9004 77DA7883 ADVAPI32.RegQueryValueExA
006C9008 77DCC41B ADVAPI32.RegOpenKeyA
…………
006C948C 0298FFE0 wzSound.wzsnd_getState_voice
006C9490 0298F870 wzSound.wzsnd_update_3d_source
006C9494 0298F9A0 wzSound.wzsnd_stop
006C9498 00000000
006C949C 00000000
006C94A0 00000000


在006196E3,也就是OEP的地方,设置为新EIP后,用LordPE工具Dump得到1.exe,打开SuperImportREC,填入以下
OEP=006196E3-00400000=002196E3
RAV=006C8FFC-00400000=002C8FFC
size=006C9498-006C8FFC=000004A0
接着获取输入表,没有无效函数,修复1.exe完成得到1_.exe,运行程序一切正常。