最近心血来潮,想学学脱壳破解方面的只是,之前也曾对脱壳破解仔细的看过一段时间的相关资料,后来由于工作时间忙,就没太关注这方面了,然而前天刚好有个朋友说让我帮他对一款软件脱壳,我看最近也还不忙,也颇有兴趣,也想尝试下那种成功脱壳后的快感和成就感,就答应了。
乘着兴趣正浓,开始我的脱壳之路了。
用PEID查克是:ASPack 2.12 -> Alexey Solodovnikov [Overlay]
一看是ASpackt的壳,心里就想着“咦,这壳不算什么难脱的壳呀”于是打开od,载入程序,直接ESP定律,一切都按我想的那样运行下去了,最后成功的看到OEP,心里那个喜悦呀

找到OEP后LoadPE+ImportREC,成功的脱壳了 ,哈哈,看着一切这么顺利,心里暗喜道”脱壳嘛,不就这么几招,太简单了

“
然而结果不是那样滴,脱壳修复后,程序运行不起来了

对于我这个新手,碰到这个问题觉得茫然呀,我在想,是不是我脱错了,找错OEP了

? 但仔细想想应该OEP没错呀,因为脱壳的程序勉强点说也可以说可以运行,只是打开后总弹出一个”error"的框框,点确定后,进入程序,但进入程序后里面的图片呀,文本框呀之类的都看不见了。于是我打开加壳的程序和我脱壳的程序对比,一路F7程序可以运行下去,但按F8程序就跑飞了,也不知道什么原因,
程序报错信息:
[mg]
c75K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3t1J5x3e0g2Q4x3X3g2H3K9r3!0@1L8#2)9J5k6i4y4@1L8%4u0W2i4K6u0W2M7i4q4Q4x3X3g2U0L8$3#2Q4x3V1k6H3M7$3u0Q4x3@1k6Q4x3V1k6h3x3e0m8c8N6i4p5&6c8U0y4V1P5h3y4p5e0W2)9J5c8V1y4Z5d9o6g2n7M7r3&6E0L8@1W2E0e0V1c8F1b7U0y4b7i4K6u0W2P5W2q4*7y4q4M7@1y4W2q4%4d9@1g2#2i4K6u0m8P5q4g2J5c8@1u0Q4x3V1q4k6K9f1k6c8g2#2g2Q4x3U0q4Q4x3V1k6T1i4K6u0r3h3h3q4y4y4@1^5@1b7h3u0d9f1f1q4m8h3i4j5^5x3V1^5@1b7X3W2d9b7f1q4m8" [/img]
程序OEP:
004E4E20 > 55 push ebp
004E4E21 8BEC mov ebp,esp
004E4E23 83C4 F0 add esp,-10
004E4E26 B8 DC354E00 mov eax,复件_dum.004E35DC
004E4E2B E8 8C23F2FF call 复件_dum.004071BC
004E4E30 A1 64AF4E00 mov eax,dword ptr ds:[4EAF64]
004E4E35 8B00 mov eax,dword ptr ds:[eax]
004E4E37 E8 1C16F8FF call 复件_dum.00466458
004E4E3C A1 64AF4E00 mov eax,dword ptr ds:[4EAF64]
004E4E41 8B00 mov eax,dword ptr ds:[eax]
004E4E43 BA 804E4E00 mov edx,复件_dum.004E4E80
004E4E48 E8 C310F8FF call 复件_dum.00465F10
004E4E4D 8B0D C4AB4E00 mov ecx,dword ptr ds:[4EABC4] ; 复件_dum.004F3984
004E4E53 A1 64AF4E00 mov eax,dword ptr ds:[4EAF64]
004E4E58 8B00 mov eax,dword ptr ds:[eax]
004E4E5A 8B15 40ED4D00 mov edx,dword ptr ds:[4DED40] ; 复件_dum.004DED8C
004E4E60 E8 0B16F8FF call 复件_dum.00466470
004E4E65 A1 64AF4E00 mov eax,dword ptr ds:[4EAF64]
004E4E6A 8B00 mov eax,dword ptr ds:[eax]
004E4E6C E8 3717F8FF call 复件_dum.004665A8
004E4E71 E8 42FCF1FF call 复件_dum.00404AB8
004E4E76 0000 add byte ptr ds:[eax],al
004E4E78 FFFF ??? ; 未知命令
004E4E7A FFFF ??? ; 未知命令
004E4E7C 0A00 or al,byte ptr ds:[eax]
004E4E7E 0000 add byte ptr ds:[eax],al
004E4E80 B4 AB mov ah,0AB
004E4E82 C6 ??? ; 未知命令
004E4E83 E6 B5 out 0B5,al
最后还补冲一下:就是我程序脱壳了,用PEID查看了是用Borland Delphi v6.0 - v7.0编写;
我用OD重新载入我脱壳的程序,在OEP下面的call处按F7可以跳到对应的地址去,但按F8却不是跳到call的地址处而跑到其他地方去,不知道这是什么原因,我在没脱的程序里面在相同的地方F8可以通过,程序可以运行起来,但脱壳后F8就不行,一按F8,程序就异常了,但F7却可以。什么原因呢


可能我描述的还不是很清楚,那位大哥路过还请帮忙给小弟看看,找找原因吧 谢谢啦

需要源程序的把邮箱或者qq留下吧我直接发给你吗,附近在这里上传好慢哦
[培训]科锐逆向工程师培训第53期2025年7月8日开班!