我这两天练习脱了两个壳,一个acp1.x的,一个telock0.98的(这两个版本的98记事本我都试过,没有问题),但我遇到的这两个软件,用同样的方法脱壳修复后却不能运行.开始以为有自校验,于是与未脱壳时的程序对比着调试运行,可发现当同样执行一个API时,脱壳后的程序却过不去,出现了错误.
以其中一个telock0.98的壳为例;
下载地址:
http://download.pchome.net/php/t ... amp;svr=4&typ=0
脱壳后的程序执行到下面********号这一行就不行了.
00402790 . 3BC5 cmp eax, ebp
00402792 . 75 2E jnz short dumped_.004027C2
00402794 . 55 push ebp ; /lParam
00402795 . 68 46104000 push dumped_.00401046 ; |DlgProc = dumped_.00401046
0040279A . 55 push ebp ; |hOwner
0040279B . 6A 66 push 66 ; |pTemplate = 66
0040279D . 57 push edi ; |hInst
0040279E . FF15 C88F7A00 call dword ptr ds:[<&user32.DialogBoxParamA>] ; \DialogBoxParamA ******************************
004027A4 . EB 06 jmp short dumped_.004027AC
而原程序这里就可以正常执行,且已经出现启动画面了
后来我用脱壳机脱了一下,可以正常运行,也就是说此程序并没有自校验,且不应该是变种壳.
但后来,我为了能抓到正常的输入,试着用抓脱壳机脱出来的程序的输入表,来修复我用loadpe dump出的程序都没有成功,仍是不能运行.望有经验大侠给以指点一二
(要不总是用98词本练习,都没什么意思了,为什么换了个程序,同样的壳就不行了,现在怀疑是不是我dump出的程序有问题呀)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)