首页
社区
课程
招聘
[旧帖] 求助!新手的第一次正式破解碰钉子了…… 0.00雪花
发表于: 2006-11-24 21:45 4414

[旧帖] 求助!新手的第一次正式破解碰钉子了…… 0.00雪花

2006-11-24 21:45
4414
麻烦各位看一下这个软件,是智狐超级智力游戏集,是一个共享软件,未注册版本的限制是运行软件两分钟后游戏界面被黑屏替代,且弹出注册框,注册失败会弹出提示:错误的序列号。
麻烦各位帮忙破解一下,指点一下我到底哪里想错了。
软件的下载地址:(我没权限上传,对不起了,不过不大,不到一分钟可以下下来,就麻烦各位下一下了)
http://www.newhua.com/soft/42100.htm

我的思路:
1、从注册码破解入手,用w32找到“错误的序列号”消息的地址,再用od打开找到对应地址,在MessageBoxA函数前有一段代码:
004A47C5  /$  8B4424 08     mov     eax, [esp+8]
004A47C9  |.  56            push    esi
004A47CA  |.  85C0          test    eax, eax
004A47CC  |.  8BF1          mov     esi, ecx
004A47CE  |.  75 08         jnz     short 004A47D8
004A47D0  |.  E8 E2760000   call    004ABEB7
004A47D5  |.  8B40 10       mov     eax, [eax+10]
004A47D8  |>  85F6          test    esi, esi
004A47DA  |.  74 04         je      short 004A47E0
004A47DC  |.  33C9          xor     ecx, ecx
004A47DE  |.  EB 03         jmp     short 004A47E3
004A47E0  |>  8B4E 1C       mov     ecx, [esi+1C]
004A47E3  |>  FF7424 10     push    dword ptr [esp+10]               ; /Style
004A47E7  |.  50            push    eax                              ; |Title
004A47E8  |.  FF7424 10     push    dword ptr [esp+10]               ; |Text
004A47EC  |.  51            push    ecx                              ; |hOwner
004A47ED  |.  FF15 08654B00 call    [<&USER32.MessageBoxA>]          ; \MessageBoxA
004A47F3  |.  5E            pop     esi
004A47F4  \.  C2 0C00       retn    0C

虽然可以看的懂MessageBoxA,但是前面那里那么多的跳转就不知道是做什么的了。我想把到MessageBoxA的跳转都改成跳过,但是没成功。

后来想只要把记时停了大概就好了,于是继续找,找到了settimer()函数和一个InvalidateRect()函数
0045C24D   > \8B57 1C       mov     edx, [edi+1C]
0045C250   .  6A 01         push    1                                ; /Erase = TRUE
0045C252   .  6A 00         push    0                                ; |pRect = NULL
0045C254   .  52            push    edx                              ; |hWnd
0045C255   .  C787 C0000000>mov     dword ptr [edi+C0], 0            ; |
0045C25F      FF15 20664B00 call    [<&USER32.InvalidateRect>]       ;  USER32.InvalidateRect
0045C265   .  8B47 1C       mov     eax, [edi+1C]
0045C268   .  6A 00         push    0                                ; /Timerproc = NULL
0045C26A   .  68 F4010000   push    1F4                              ; |Timeout = 500. ms
0045C26F   .  6A 01         push    1                                ; |TimerID = 1
0045C271   .  50            push    eax                              ; |hWnd
0045C272      FF15 24664B00 call    [<&USER32.SetTimer>]             ;  USER32.SetTimer
0045C278   >  5F            pop     edi
0045C279   .  5E            pop     esi
0045C27A   .  5B            pop     ebx
0045C27B   .  C2 0C00       retn    0C

我以为settimer是记时器,InvalidateRect是控制到时间后弹出Nag的函数,但是把他们都NOP掉以后问题还是不变

而且最开始还用到了SoftICE在MessageBoxA上设置断点,在“序列号错误”警告画面出现之前拦截到了,但是之后就跳到一个77d504ea的陌生的地址,和OD中设置断点拦截再运行后跳到的地址相同,也不知道那个地址是做什么的。

我的第一次破解就这样了……
弄了我好久了,真的不行了,麻烦各位指点一下,谢谢了~~~~

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
00490D46  |> /66:0FB60F     /movzx   cx, byte ptr [edi]
00490D4A  |. |0FB6C1        |movzx   eax, cl
00490D4D  |. |47            |inc     edi
00490D4E  |. |894D 0C       |mov     dword ptr [ebp+C], ecx
00490D51  |. |F680 61444E00>|test    byte ptr [eax+4E4461], 4
00490D58  |. |74 16         |je      short 00490D70
00490D5A  |. |8A07          |mov     al, byte ptr [edi]
00490D5C  |. |84C0          |test    al, al
00490D5E  |. |75 06         |jnz     short 00490D66
00490D60  |. |8365 0C 00    |and     dword ptr [ebp+C], 0
00490D64  |. |EB 0A         |jmp     short 00490D70
00490D66  |> |33D2          |xor     edx, edx
00490D68  |. |47            |inc     edi
00490D69  |. |8AF1          |mov     dh, cl
00490D6B  |. |8AD0          |mov     dl, al
00490D6D  |. |8955 0C       |mov     dword ptr [ebp+C], edx
00490D70  |> |66:0FB61E     |movzx   bx, byte ptr [esi]
00490D74  |. |0FB6C3        |movzx   eax, bl
00490D77  |. |46            |inc     esi
00490D78  |. |F680 61444E00>|test    byte ptr [eax+4E4461], 4
00490D7F  |. |74 13         |je      short 00490D94
00490D81  |. |8A06          |mov     al, byte ptr [esi]
00490D83  |. |84C0          |test    al, al
00490D85  |. |75 04         |jnz     short 00490D8B
00490D87  |. |33DB          |xor     ebx, ebx
00490D89  |. |EB 09         |jmp     short 00490D94
00490D8B  |> |33C9          |xor     ecx, ecx
00490D8D  |. |46            |inc     esi
00490D8E  |. |8AEB          |mov     ch, bl
00490D90  |. |8AC8          |mov     cl, al
00490D92  |. |8BD9          |mov     ebx, ecx
00490D94  |> |66:395D 0C    |cmp     word ptr [ebp+C], bx
00490D98  |. |75 09         |jnz     short 00490DA3
00490D9A  |. |66:837D 0C 00 |cmp     word ptr [ebp+C], 0
00490D9F  |. |74 16         |je      short 00490DB7
00490DA1  |.^\EB A3         \jmp     short 00490D46

这里是算法.
2006-11-24 22:26
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
0047011C   .  E8 7F620300   call    004A63A0
00470121   .  84DB          test    bl, bl
00470123      75 0A         jz     short 0047012F  //爆破点
00470125   .  C786 BC010000>mov     dword ptr [esi+1BC], 1
2006-11-26 22:31
0
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢,正在对着研究~~~~~到时候有不懂的再来问:)
呵呵,很烦的是不知道为什么你可以追踪到那里,但是我却始终找不到啊……找到的都是些无关紧要的地方

请问一下是怎么追踪的啊,以前虽然做了几个crackme,但是好象那些都比较基础,顺着messagebox向上找点点就到了,可是这些怎么都偏了那么远啊……
2006-11-26 23:55
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
软件是否只有这个限制。

未注册版本的限制是运行软件两分钟后游戏界面被黑屏替代
2006-11-27 11:31
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
查找字符串"序列号"
2006-11-27 12:14
0
雪    币: 333
活跃值: (116)
能力值: ( LV9,RANK:570 )
在线值:
发帖
回帖
粉丝
7
最初由 jiegou 发布
软件是否只有这个限制


004487EC   .  85C9                 TEST ECX,ECX
004487EE      75 1A                JNZ SHORT SuperGam.0044880A     ;  必须跳转!
004487F0   .  6A 30                PUSH 30
004487F2   .  68 4C754D00          PUSH SuperGam.004D754C          ;  立体图片
004487F7   .  68 2C754D00          PUSH SuperGam.004D752C          ;  只有注册用户才能看下一幅图片
004487FC   .  8BCE                 MOV ECX,ESI
004487FE   .  E8 C2BF0500          CALL SuperGam.004A47C5
00448803   .  5E                   POP ESI
00448804   .  83C4 10              ADD ESP,10
00448807   .  C2 0C00              RETN 0C

其它没发现了!
2006-11-29 22:58
0
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我玩的也只注意到楼上的那个
而且黑屏是有两种:一种是开启软件后一定时间没任何动作,自动跳出注册框;另外一种就是玩游戏时跳出了
2006-11-30 01:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
call    __mbscmp
add     esp, 10h
lea     ecx, [esp+14h+var_4]
test    eax, eax
setz    bl
call    sub_4A63A0
test    bl, bl
jz      loc_45C5F1

这应该是比较注册码的地方 为0 通过注册 不为0没有注册成功 说你序列号不符合  我修改 jz      loc_45C5F1 为 90 90 90 90 90
后 进行注册虽然没有提示成功 但是也没有提示 不成功
用老虎机的游戏测试后 30分钟没有出现过注册提示
2006-11-30 15:11
0
游客
登录 | 注册 方可回帖
返回
//