首页
社区
课程
招聘
crackme练习
发表于: 2004-11-27 22:25 10739

crackme练习

kyc 活跃值
19
2004-11-27 22:25
10739
收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 323
活跃值: (589)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
2
爆破:
00401101   . /75 12         JNZ SHORT CRACKME1.00401115
修改为:    74 12
2004-11-28 09:12
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
3
我看见算法把 “kyc[DFCG]” 和一堆文字进行比较,便跳出失败了,没有检查我输入的文字,硬件断点也是一样

这是正常的,或是别有内情 ?   
2004-11-28 13:15
0
雪    币:
能力值: (RANK: )
在线值:
发帖
回帖
粉丝
4
004010E9       8D4C24 2C       lea ecx,dword ptr ss:[esp+2C]   //将此处的2C改成08,也显示成功信息,但后来也显示错误信息不知是咋回事。
004010ED    .  51              push ecx                           ; /String2
004010EE    .  68 A8504000     push CRACKME1.004050A8             ; |String1 = "kyc[DFCG]"
004010F3    .  FF15 00404000   call dword ptr ds:[<&KERNEL32.lstr>; \lstrcmpA

好象就是没有处理输入的名字及CODE,最后的比较也莫名其妙,一楼的能不能给大家一点提示什么的?到底能不能写出注册机?是注册机还是补丁?
2004-11-29 17:21
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
5
最初由 cracklover 发布
好象就是没有处理输入的名字及CODE,最后的比较也莫名其妙,一楼的能不能给大家一点提示什么的?到底能不能写出注册机?是注册机还是补丁?

........


看来是补丁机

我在序号字符串, 名字字符串设硬件断点,没有反应
单步走了很多遍也没有反应,在IDA 里也看不见特别的地方,而且 OD 显示是单线程
2004-11-29 19:13
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
W32DASM分析

:0040101D 90                      nop
:0040101E 90                      nop
:0040101F 90                      nop
:00401020 83EC74                  sub esp, 00000074
:00401023 57                      push edi
:00401024 B913000000              mov ecx, 00000013
:00401029 33C0                    xor eax, eax
:0040102B 8D7C2429                lea edi, dword ptr [esp+29]
:0040102F C644242800              mov [esp+28], 00
:00401034 668B15B0504000          mov dx, word ptr [004050B0]
:0040103B F3                      repz
:0040103C AB                      stosd
:0040103D 66AB                    stosw
:0040103F 8B0DAC504000            mov ecx, dword ptr [004050AC]
:00401045 668954240C              mov word ptr [esp+0C], dx
:0040104A AA                      stosb
:0040104B A1A8504000              mov eax, dword ptr [004050A8]
:00401050 894C2408                mov dword ptr [esp+08], ecx
:00401054 89442404                mov dword ptr [esp+04], eax
:00401058 8B842480000000          mov eax, dword ptr [esp+00000080]
:0040105F 2D10010000              sub eax, 00000110
:00401064 66C744240E0000          mov [esp+0E], 0000
:0040106B 0F84D8000000            je 00401149
:00401071 48                      dec eax
:00401072 0F85D1000000            jne 00401149
:00401078 8B842484000000          mov eax, dword ptr [esp+00000084]
:0040107F 663D0100                cmp ax, 0001
:00401083 0F85AD000000            jne 00401136
:00401089 8B7C247C                mov edi, dword ptr [esp+7C]
:0040108D 56                      push esi

* Reference To: USER32.GetDlgItemTextA, Ord:0104h///////--》看来断点应该下GetDlgItemTextA
                                  |
:0040108E 8B35AC404000            mov esi, dword ptr [004040AC]
:00401094 8D442420                lea eax, dword ptr [esp+20]
:00401098 6A0C                    push 0000000C
:0040109A 50                      push eax

* Possible Reference to Dialog: DialogID_0065, CONTROL_ID:03E8, ""
                                  |
:0040109B 68E8030000              push 000003E8
:004010A0 57                      push edi
:004010A1 FFD6                    call esi
:004010A3 8D4C2414                lea ecx, dword ptr [esp+14]   
:004010A7 6800020000              push 00000200
:004010AC 51                      push ecx

* Possible Reference to Dialog: DialogID_0065, CONTROL_ID:03E9, ""
                                  |
:004010AD 68E9030000              push 000003E9
:004010B2 57                      push edi
:004010B3 FFD6                    call esi
:004010B5 33C0                    xor eax, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004010CF(C)
|
:004010B7 8A4C0408                mov cl, byte ptr [esp+eax+08]
:004010BB 8A9030504000            mov dl, byte ptr [eax+00405030]
:004010C1 F6D1                    not cl
:004010C3 22CA                    and cl, dl
:004010C5 02C8                    add cl, al
:004010C7 884C0414                mov byte ptr [esp+eax+14], cl
:004010CB 40                      inc eax
:004010CC 83F80C                  cmp eax, 0000000C
:004010CF 72E6                    jb 004010B7
:004010D1 8D542414                lea edx, dword ptr [esp+14]
:004010D5 8D44242C                lea eax, dword ptr [esp+2C]
:004010D9 52                      push edx

* Possible StringData Ref from Data Obj ->"%ld"
                                  |
:004010DA 68A4504000              push 004050A4
:004010DF 50                      push eax

* Reference To: USER32.wsprintfA, Ord:02ACh
                                  |
:004010E0 FF1598404000            Call dword ptr [00404098]
:004010E6 83C40C                  add esp, 0000000C
:004010E9 8D4C242C                lea ecx, dword ptr [esp+2C]
:004010ED 51                      push ecx

* Possible StringData Ref from Data Obj ->"kyc[DFCG]"
                                  |
:004010EE 68A8504000              push 004050A8

* Reference To: KERNEL32.lstrcmpA, Ord:02FCh
                                  |
:004010F3 FF1500404000            Call dword ptr [00404000]

* Reference To: USER32.MessageBoxA, Ord:01BEh
                                  |
:004010F9 8B359C404000            mov esi, dword ptr [0040409C]
:004010FF 85C0                    test eax, eax
:00401101 7512                    jne 00401115
:00401103 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"你是"
                                  |
:00401105 689C504000              push 0040509C

* Possible StringData Ref from Data Obj ->"高手!"
                                  |
:0040110A 6894504000              push 00405094
:0040110F 6A00                    push 00000000
:00401111 FFD6                    call esi
:00401113 EB08                    jmp 0040111D

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401113(U)
|
:0040111D 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"你"
                                  |
:0040111F 6890504000              push 00405090

* Possible StringData Ref from Data Obj ->"错了!"
-----------------------------------------------------
OD载入,忽略所有异常,命令行下bp GetDlgItemTextA,F9运行,跳出注册窗口
name:encoder
code:123456789
点击ok中断,ctrl+F9返回于此
00401094    .  8D4424 20         lea eax,dword ptr ss:[esp+20]
00401098    .  6A 0C             push 0C                           ; /Count = C (12.)
0040109A    .  50                push eax                          ; |Buffer
0040109B    .  68 E8030000       push 3E8                          ; |ControlID = 3E8 (1000.)
004010A0    .  57                push edi                          ; |hWnd
004010A1    .  FFD6              call esi                          ; \GetDlgItemTextA
004010A3    .  8D4C24 14         lea ecx,dword ptr ss:[esp+14]
004010A7    .  68 00020000       push 200                          ; /Count = 200 (512.)
004010AC    .  51                push ecx                          ; |Buffer
004010AD    .  68 E9030000       push 3E9                          ; |ControlID = 3E9 (1001.)
004010B2    .  57                push edi                          ; |hWnd
004010B3    .  FFD6              call esi                          ; \GetDlgItemTextA
004010B5    .  33C0              xor eax,eax
004010B7    >  8A4C04 08         mov cl,byte ptr ss:[esp+eax+8]    ;依次取kyc[DFCG]
004010BB    .  8A90 30504000     mov dl,byte ptr ds:[eax+405030]   ;\\\
004010C1    .  F6D1              not cl                            ;    运算
004010C3    .  22CA              and cl,dl                         ;
004010C5    .  02C8              add cl,al                         ;///
004010C7    .  884C04 14         mov byte ptr ss:[esp+eax+14],cl
004010CB    .  40                inc eax
004010CC    .  83F8 0C           cmp eax,0C
004010CF    .^ 72 E6             jb short CRACKME1.004010B7
004010D1    .  8D5424 14         lea edx,dword ptr ss:[esp+14]
004010D5    .  8D4424 2C         lea eax,dword ptr ss:[esp+2C]
004010D9    .  52                push edx                          ; /<%ld> = 12FA40 (1243712.)
004010DA    .  68 A4504000       push CRACKME1.004050A4            ; |Format = "%ld"
004010DF    .  50                push eax                          ; |s
004010E0    .  FF15 98404000     call dword ptr ds:[<&USER32.wspri>; \wsprintfA
004010E6    .  83C4 0C           add esp,0C
004010E9    .  8D4C24 2C         lea ecx,dword ptr ss:[esp+2C]
004010ED    .  51                push ecx                          ; /String2=1243712
004010EE    .  68 A8504000       push CRACKME1.004050A8            ; |String1 = "kyc[DFCG]"
004010F3    .  FF15 00404000     call dword ptr ds:[<&KERNEL32.lst>; \lstrcmpA ///比较是否相等
004010F9    .  8B35 9C404000     mov esi,dword ptr ds:[<&USER32.Me>;  USER32.MessageBoxA
004010FF    .  85C0              test eax,eax
00401101    .  75 12             jnz short CRACKME1.00401115       ; 爆破点
00401103    .  6A 00             push 0                            ; /Style = MB_OK|MB_APPLMODAL
00401105    .  68 9C504000       push CRACKME1.0040509C            ; |Title = "你是"
0040110A    .  68 94504000       push CRACKME1.00405094            ; |Text = "高手!"
0040110F    .  6A 00             push 0                            ; |hOwner = NULL
00401111    .  FFD6              call esi                          ; \MessageBoxA
00401113    .  EB 08             jmp short CRACKME1.0040111D
00401115    >  6A 30             push 30                           ; /BeepType = MB_ICONEXCLAMATION
00401117    .  FF15 A0404000     call dword ptr ds:[<&USER32.Messa>; \MessageBeep
0040111D    >  6A 00             push 0
0040111F    .  68 90504000       push CRACKME1.00405090
00401124    .  68 88504000       push CRACKME1.00405088
00401129    .  57                push edi
0040112A    .  FFD6              call esi
0040112C    .  5E                pop esi
0040112D    .  33C0              xor eax,eax
0040112F    .  5F                pop edi
00401130    .  83C4 74           add esp,74
00401133    .  C2 1000           retn 10
00401136    >  66:3D 0200        cmp ax,2
0040113A    .  75 0D             jnz short CRACKME1.00401149
0040113C    .  8B5424 7C         mov edx,dword ptr ss:[esp+7C]
00401140    .  6A 00             push 0                            ; /Result = 0
00401142    .  52                push edx                          ; |hWnd
00401143    .  FF15 A4404000     call dword ptr ds:[<&USER32.EndDi>; \EndDialog
2004-11-30 14:29
0
雪    币: 389
活跃值: (912)
能力值: ( LV9,RANK:770 )
在线值:
发帖
回帖
粉丝
7
不好意思原代码让我改成另一个CRACKME了.
其实破到这个程度可以了。
还有一个CRACKME有兴趣的可以破掉
成功后出现“你是高手”
2004-11-30 21:06
0
雪    币: 216
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不明白为什么要把你错了~~分开呀~~还有你是高手也是~~我只会爆破!!!我只会爆破有弹出错误窗口的
2004-12-2 21:59
0
雪    币: 216
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
为什么我爆破后,
我输入1和1然后弹出高手,
我点确定,然后又弹出
错了!!为什么呀!!
2004-12-2 22:11
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
你继续向下分析就可以知道为什么爆破后还是会出现你错了的对话框了.
2004-12-9 18:31
0
雪    币: 212
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
爆破简单 注册码也不是很难找!:D
2004-12-9 21:38
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这玩意只能爆根本就没有注册码,而且死活都要出现你错的消息.这个CrackMe有问题.
2004-12-10 19:39
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
上面还有一张图片在其中哦.
2004-12-10 19:50
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
到底讨论了个什么啊,上面的不能破????注册码怎么算啊?
我也只分析到了pendan2001 兄弟的那步
2004-12-10 21:18
0
游客
登录 | 注册 方可回帖
返回
//