米其林轮胎 发表于 2017-11-5 19:29

一个未知壳(脱壳修复后打不开...这次我确定是在XP系统下脱壳的)

程序是一款Delphi的软件      


百度云链接:https://pan.baidu.com/s/1geRznBt



这次我确定我是在XP系统下脱的壳{:6_205:}



putixin 发表于 2017-11-5 19:29

先处理无用的函数看区段是否解码,解码后修复第二种magic jmp然后常规方法到oep 到oep后发现 还有些没解码 第一种iat需要手动解码或者写脚本两种处理完成后 iat就修复完毕。他这个程序不是用的 engima的注册机制他机器码启动一次变动一次,所以我也只是脱壳而已因为我没有我机器对应的机器码和注册码。他的加密机制是另外的东西。不进去界面,修复完毕还是有些问题的。而且他这个注册后有效期好像是三个月。所以最完美的方法还是开启程序时找客户要个对应的机器码和注册码进入程序后脱壳,这样有些验证什么的就处理那。如果还有机器码和注册码自己分析算法也不是什么难事,当然如果没有机器码就更好那也许只是sdk呢。

Shark恒 发表于 2017-11-5 19:37

最后一步修复指针的时候,不能直接删除无效指针,建议先确定是什么内容,再做删除操作也不晚。
虽然有可能是垃圾数据,但也有可能是已经被重定向的内容,如果是IAT重定向的话,需要你在脱壳前寻找IAT重定向的那个步骤,阻止他填充,还原被重定向的函数地址。
看你脱壳修复的分析过程,没有查看IAT的过程,所以为什么直接删除? 是否IAT重定向?还确实是垃圾数据?有待验证。。。

如果你已经确认是垃圾数据,使用原版无汉化REC试试,如下图:


米其林轮胎 发表于 2017-11-5 19:59

Shark恒 发表于 2017-11-5 19:37
最后一步修复指针的时候,不能直接删除无效指针,建议先确定是什么内容,再做删除操作也不晚。
虽然有可能 ...

( ⊙ o ⊙ )   我一直还以为无效指针全部都是垃圾数据呢{:6_224:}         因为这壳我看着不像是强壳       所以对IAT就没有分析{:6_224:}      

putixin 发表于 2017-11-5 21:59

你脱壳有问题 这个是enigma5.6版的,修复iat得自己写脚本004017A0 > $ /EB 10         jmp short dumped_.004017B2
004017A2   . |66:623A       bound di,dword ptr ds:
004017A5   . |43            inc ebx
004017A6   . |2B2B          sub ebp,dword ptr ds:
004017A8   . |48            dec eax
004017A9   . |4F            dec edi                                  ;ntdll.7C930228
004017AA   . |4F            dec edi                                  ;ntdll.7C930228
004017AB   . |4B            dec ebx
004017AC   . |90            nop
004017AD   .-|E9 98406700   jmp dumped_.00A7584A
004017B2   > \A1 8B406700   mov eax,dword ptr ds:
004017B7   .C1E0 02       shl eax,0x2
004017BA   .A3 8F406700   mov dword ptr ds:,eax

006F815400000000
006F8158 >77DA6C27advapi32.RegCloseKey
006F815C >77DAE9F4advapi32.RegCreateKeyExA
006F8160 >77DB42A0advapi32.RegDeleteKeyA
006F8164 >77DAECE5advapi32.RegDeleteValueA
006F8168 >77DB51B6advapi32.RegEnumKeyExA
006F816C >77DC9BBFadvapi32.RegEnumValueA
006F8170 >77DC4CE0advapi32.RegFlushKey
006F8174 >77DA7852advapi32.RegOpenKeyExA
006F8178 >77DB4332advapi32.RegQueryInfoKeyA
006F817C >77DA7ABBadvapi32.RegQueryValueExA
006F8180 >77DAEAE7advapi32.RegSetValueExA
研究三天干掉这个

米其林轮胎 发表于 2017-11-5 22:25

putixin 发表于 2017-11-5 21:59
你脱壳有问题 这个是enigma5.6版的,修复iat得自己写脚本004017A0 > $ /EB 10         jmp short dumped_.0 ...

我不会写脚本....

putixin 发表于 2017-11-6 00:10

程序是Borland C++ 1999 这个程序先要过掉哪个 不然脱壳后程序有功能也是 这样的 我是完美脱壳的 他是双进程的注意下,如果能给我注册个就完美那

putixin 发表于 2017-11-6 00:16

两种iat处理方式一个可以用 magic jmp 的方式处理 另外种用vm找对应的api处理方式。5.6版本跟 5.2 和 5.3 5.4 以及 5.5 在api的对应vm处有点区别这个要靠你平常积累,其他的变化不大,脚本 也没什么脚本的处理变化也不大。这个是我前几天接的单所以我脱壳的也不好发布。具体也就只能跟你说到这个位置

米其林轮胎 发表于 2017-11-6 07:32

putixin 发表于 2017-11-6 00:16
两种iat处理方式一个可以用 magic jmp 的方式处理 另外种用vm找对应的api处理方式。5.6版本跟 5.2 和 5 ...

{:7_236:}感谢指点经过一晚的折腾还是没有弄好   

米其林轮胎 发表于 2017-11-6 07:34

putixin 发表于 2017-11-6 00:10
程序是Borland C++ 1999 这个程序先要过掉哪个 不然脱壳后程序有功能也是 这样的 我是完美脱壳的 他是双进 ...

你这个是脱壳后就直接过注册项了吗?      
页: [1] 2
查看完整版本: 一个未知壳(脱壳修复后打不开...这次我确定是在XP系统下脱壳的)