首页
社区
课程
招聘
[旧帖] [原创]破解恒强最新版制版系统 0.00雪花
发表于: 2012-3-27 12:13 2745

[旧帖] [原创]破解恒强最新版制版系统 0.00雪花

2012-3-27 12:13
2745
前段时间,由于工作需要,打算爆破浙江恒强科技推出了所谓的最新版制版软件。拿到手一看,乖乖,恒强那伙人这次用上加壳技术了。没办法,要爆破总的先脱壳啊,废话不说了,调入程序开始。。。
   
007F9001 >  60              pushad                           ;典型的加了壳的标记,呵呵
007F9002    E8 03000000     call    007F900A
007F9007  - E9 EB045D45     jmp     45DC94F7
007F900C    55              push    ebp
007F900D    C3              retn

一路小心翼翼的F7,没走几步,悲剧出现。。。
007F903C    FF95 A90F0000   call    dword ptr [ebp+FA9]  ;GetModuleHandleA
007F9042    8985 8C040000   mov     dword ptr [ebp+48C], eax
007F9048    8BF0            mov     esi, eax
007F904A    8D7D 51         lea     edi, dword ptr [ebp+51]
没想到走到GetModuleHandleA这步,程序挂起,没法子只好在007F9042下了断点,重新F8,一路顺风,往后都是些壳的内存分配操作,由于赶着吃中饭,一急之下,直接F8走到弹出注册框,有两种注册方式,一种是短信注册,一种是注册码注册,短信注册还是算了花1毛钱不说,还容易暴露我的手机号,果断冲注册码注册入手,随便输入一个注册码,顺手把MESSAGEBOX断点也设了,然后点击注册。。。

77D66534 >  8BFF            mov     edi, edi
77D66536    55              push    ebp
77D66537    8BEC            mov     ebp, esp
77D66539    833D BC14D777 0>cmp     dword ptr [77D714BC], 0
77D66540    74 24           je      short 77D66566
77D66542    64:A1 18000000  mov     eax, dword ptr fs:[18]
77D66548    6A 00           push    0
77D6654A    FF70 24         push    dword ptr [eax+24]
77D6654D    68 241BD777     push    77D71B24
77D66552    FF15 C412D177   call    dword ptr [<&KERNEL32.Interlocke>; kernel32.InterlockedCompareExchange
77D66558    85C0            test    eax, eax
77D6655A    75 0A           jnz     short 77D66566
77D6655C    C705 201BD777 0>mov     dword ptr [77D71B20], 1
77D66566    6A 00           push    0
77D66568    FF75 14         push    dword ptr [ebp+14]
77D6656B    FF75 10         push    dword ptr [ebp+10]
77D6656E    FF75 0C         push    dword ptr [ebp+C]
77D66571    FF75 08         push    dword ptr [ebp+8]
77D66574    E8 BFA2FEFF     call    MessageBoxExW
77D66579    5D              pop     ebp
77D6657A    C2 1000         retn    10

果然跳到了消息框处理,不用说,一定是说我注册码错误云云,要是正确,那我反而要吐血了。
小心翼翼F7一步步走顺便说句我注册码错了,你也不用弹“注册码错误,请用短信注册”消息框。
0042966D    68 FC7C4600     push    00467CFC                        ; UNICODE "please input register code"
00429672    8D4D EC         lea     ecx, dword ptr [ebp-14]
00429675    FF15 BC484600   call    dword ptr [4648BC]              ; mfc90u.78A35B3B
0042967B    C745 FC 0000000>mov     dword ptr [ebp-4], 0
00429682    6A 40           push    40
00429684    51              push    ecx
00429685    8BCC            mov     ecx, esp
00429687    8965 F0         mov     dword ptr [ebp-10], esp
0042968A    68 F87C4600     push    00467CF8
0042968F    FF15 BC484600   call    dword ptr [4648BC]
00429695    8945 DC         mov     dword ptr [ebp-24], eax
00429698    8D4D EC         lea     ecx, dword ptr [ebp-14]
0042969B    51              push    ecx
0042969C    E8 574FFFFF     call    0041E5F8               ; jmp 到 SettingM.Message

从SettingM.Message出来后,往上一瞅,哈哈,居然冒出“please input register code”这句话,说明,注册码的初级验证代码在上面,一不做二不休,直接在这个函数的入口下了断点。
004295C0      55              push    ebp           函数入口断点下在这里
004295C1      8BEC            mov     ebp, esp
004295C3      6A FF           push    -1
004295C5      68 6F014600     push    0046016F
004295CA      64:A1 00000000  mov     eax, dword ptr fs:[0]
004295D0      50              push    eax
004295D1      83EC 1C         sub     esp, 1C
004295D4      A1 14304A00     mov     eax, dword ptr [4A3014]
004295D9      33C5            xor     eax, ebp
004295DB      50              push    eax
004295DC      8D45 F4         lea     eax, dword ptr [ebp-C]
004295DF      64:A3 00000000  mov     dword ptr fs:[0], eax
004295E5      894D E0         mov     dword ptr [ebp-20], ecx
004295E8      6A 01           push    1
004295EA      8B4D E0         mov     ecx, dword ptr [ebp-20]
004295ED      E8 C251FFFF     call    0041E7B4

。。。。。。
0042966B     /74 60           je      short 004296CD
0042966D     |68 FC7C4600     push    00467CFC       ; UNICODE "please input register code"
00429672     |8D4D EC         lea     ecx, dword ptr [ebp-14]
00429675     |FF15 BC484600   call    dword ptr [4648BC]              ; mfc90u.78A35B3B

关键跳转 je      short 004296CD,输入注册码,则不会提示"please input register code"了,跟着je,F7一步步走,一下子跳到
004296CD      8B4D E0         mov     ecx, dword ptr [ebp-20]
004296D0      E8 9BFEFFFF     call    00429570
004296D5      85C0            test    eax, eax
004296D7      75 65           jnz     short 0042973E
004296D9      68 387D4600     push    00467D38     ; UNICODE "register code error, please SMS register"
004296DE      8D4D E4         lea     ecx, dword ptr [ebp-1C]
004296E1      FF15 BC484600   call    dword ptr [4648BC]              ; mfc90u.78A35B3B
哈哈,你以为换成英文我就不认识你了,“register code error, please SMS register”,说明核心的注册码校验就在call    00429570里面,果然插入。

00412C60      56              push    esi
00412C61      8B7424 0C       mov     esi, dword ptr [esp+C]
00412C65      57              push    edi
00412C66      8B7C24 0C       mov     edi, dword ptr [esp+C]
00412C6A      56              push    esi
00412C6B      57              push    edi
00412C6C      E8 2F000000     call    00412CA0
00412C71      83C4 08         add     esp, 8
00412C74      85C0            test    eax, eax
00412C76      75 11           jnz     short 00412C89
00412C78      56              push    esi
00412C79      57              push    edi
00412C7A      E8 D1000000     call    00412D50
00412C7F      83C4 08         add     esp, 8
00412C82      85C0            test    eax, eax
00412C84      75 03           jnz     short 00412C89
00412C86      5F              pop     edi
00412C87      5E              pop     esi
00412C88      C3              retn

call    00412CA0 和  call    00412D50就是关键的两个校验处理函数,跟进去,没走几步ESP里面就指向了我输入的那个从小用到大的注册码“111111”
call    00412CA0
  00412CA0      6A FF           push    -1
   00412CA2      68 22114600     push    00461122
   00412CA7      64:A1 00000000  mov     eax, dword ptr fs:[0]
   00412CAD      50              push    eax
   00412CAE      83EC 08         sub     esp, 8
   00412CB1      56              push    esi

00412CE5      83C4 08         add     esp, 8
00412CE8      8D4C24 08       lea     ecx, dword ptr [esp+8]
00412CEC      FF15 F0484600   call    dword ptr [4648F0]              ; mfc90u.78A87587
这里,注册和注册码都暴露出来,就等着程序算出真的那个注册码了,菩萨保佑不要等于111111
稍微走几步
00412D02      E8 59F6FFFF     call    00412360
00412D07      8B4C24 2C       mov     ecx, dword ptr [esp+2C]
00412D0B      83C4 0C         add     esp, 0C
00412D0E      FF15 D0484600   call    dword ptr [4648D0]              ; mfc90u.78AD873C
经过 call    00412360的运算,真正的注册码出来了。。直接输入这个注册码,程序成功激活。至于程序的壳,留着吧。。。。鄙人硬盘小。。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
再详细一些就好啦,还是灰常感谢~~
楼主的机器在哪儿买的?嘿嘿
2012-3-27 15:25
0
雪    币: 131
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
呵呵 怎么还把人家公司的名字给曝光了啊
2012-3-27 15:40
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
他们的机器我倒没用,纯粹玩软件。
2012-3-27 15:59
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
反正也是曝光了,后续再把破解LONATI公司的制版系统的流程写出来,敬请观赏!
2012-3-27 16:04
0
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
期待后续~~
2012-3-27 17:34
0
游客
登录 | 注册 方可回帖
返回
//