首页
社区
课程
招聘
[求助]自己写的一个crakeme,汗,,,分析不出来算法。。。大侠指教
发表于: 2009-12-26 22:12 5703

[求助]自己写的一个crakeme,汗,,,分析不出来算法。。。大侠指教

2009-12-26 22:12
5703
自己写的一个crakeme,算法超简单的,想以此练习分析注册算法的能力,汗。。。。看了N久也看不出来。。。。本人是一个汇编菜鸟,,,の,望高手帮我分析下算法。。。。。

PS:注释最好写详细点

crakeme见附件:

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 695
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
pediy
05499111
2009-12-26 22:58
0
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
11111
11111111
2009-12-26 23:31
0
雪    币: 92
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
每位注册码和0F进行与运算  再在后面加上111
2009-12-27 00:58
0
雪    币: 215
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
の,我是说希望有人能从帮我具体讲解下算法那里的汇编码,软件自己写的,算法知道的,自己看汇编却怎么也看不懂算法,只能从VC++源码看出来的。。。
2009-12-27 12:39
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
6
在自己的算法处下断点,运行后被断在断点下,然后atl+8看对应的反汇编代码,慢慢看就明白了
2009-12-27 12:53
0
雪    币: 272
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
0040162C   > /8A86 54314000 mov     al, byte ptr [esi+403154]                  ;  按位取 char c=name[i]
00401632   . |8D4C24 10     lea     ecx, dword ptr [esp+10]
00401636   . |24 0F         and     al, 0F                                     ;  c^=0x0F
00401638   . |8886 40314000 mov     byte ptr [esi+403140], al                  ;  truesn[i]=c;
0040163E   . |0FBEC0        movsx   eax, al
00401641   . |50            push    eax
00401642   . |68 48304000   push    00403048                                   ;  %x
00401647   . |51            push    ecx
00401648   . |E8 C9020000   call    <jmp.&MFC42.#2818_CString::Format>         ;  不管了
0040164D   . |83C4 0C       add     esp, 0C
00401650   . |8D5424 10     lea     edx, dword ptr [esp+10]
00401654   . |8D4C24 0C     lea     ecx, dword ptr [esp+C]
00401658   . |52            push    edx
00401659   . |E8 B2020000   call    <jmp.&MFC42.#939_CString::operator+=>
0040165E   . |46            inc     esi
0040165F   . |3BF3          cmp     esi, ebx                                   ;  ebx=strlen(name);
00401661   .^\7C C9         jl      short 0040162C
00401663   >  68 44304000   push    00403044                                   ;  111%x
00401668   .  8D4C24 10     lea     ecx, dword ptr [esp+10]                    ;  此处是转换好的码
0040166C   .  E8 99020000   call    <jmp.&MFC42.#941_CString::operator+=>      ;  连接上111
00401671   .  8B45 64       mov     eax, dword ptr [ebp+64]                    ;  真码
00401674   .  50            push    eax                                        ; /s2
00401675   .  8B4424 10     mov     eax, dword ptr [esp+10]                    ; |
00401679   .  50            push    eax                                        ; |s1
0040167A   .  FF15 CC214000 call    dword ptr [<&MSVCRT._mbscmp>]              ; \_mbscmp

算法是按位与0F,然后字符串再连接上“111”
2009-12-27 14:16
0
雪    币: 215
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
非常感谢楼上的“听听雨吧”,谢谢你的分析。。

顺便问下:我的OD不能显示CString::XX类似的东西呀,怎么设置才能显示MFC42里面的东西呢?
如下:
0040162C   > /8A86 54314000 mov     al, byte ptr [esi+403154]
00401632   . |8D4C24 10     lea     ecx, dword ptr [esp+10]
00401636   . |24 0F         and     al, 0F
00401638   . |8886 40314000 mov     byte ptr [esi+403140], al
0040163E   . |0FBEC0        movsx   eax, al
00401641   . |50            push    eax
00401642   . |68 48304000   push    00403048                         ;  ASCII "%x"
00401647   . |51            push    ecx
00401648   . |E8 C9020000   call    <jmp.&MFC42.#2818>        ;这里怎么不显示CString::Format呢,类似这种情况很多呀
0040164D   . |83C4 0C       add     esp, 0C
00401650   . |8D5424 10     lea     edx, dword ptr [esp+10]
00401654   . |8D4C24 0C     lea     ecx, dword ptr [esp+C]
00401658   . |52            push    edx
00401659   . |E8 B2020000   call    <jmp.&MFC42.#939>
0040165E   . |46            inc     esi
0040165F   . |3BF3          cmp     esi, ebx
00401661   .^\7C C9         jl      short 0040162C
00401663   >  68 44304000   push    00403044                         ;  ASCII "111"
00401668   .  8D4C24 10     lea     ecx, dword ptr [esp+10]
0040166C   .  E8 99020000   call    <jmp.&MFC42.#941>
00401671   .  8B45 64       mov     eax, dword ptr [ebp+64]
00401674   .  50            push    eax                              ; /s2
00401675   .  8B4424 10     mov     eax, dword ptr [esp+10]          ; |
00401679   .  50            push    eax                              ; |s1
0040167A   .  FF15 CC214000 call    dword ptr [<&MSVCRT._mbscmp>]    ; \_mbscmp
00401680   .  83C4 08       add     esp, 8
00401683   .  85C0          test    eax, eax
00401685   .  75 15         jnz     short 0040169C
00401687   .  6A 40         push    40
00401689   .  68 3C304000   push    0040303C
0040168E   .  68 30304000   push    00403030
00401693   .  8BCD          mov     ecx, ebp
00401695   .  E8 6A020000   call    <jmp.&MFC42.#4224>
0040169A   .  EB 0E         jmp     short 004016AA
0040169C   >  6A 00         push    0
0040169E   .  6A 00         push    0
004016A0   .  68 20304000   push    00403020
004016A5   .  E8 78020000   call    <jmp.&MFC42.#1200>
2009-12-27 15:46
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
cfan123
361e123111
2009-12-27 15:51
0
雪    币: 272
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
[QUOTE=abcluoasp;734220]非常感谢楼上的“听听雨吧”,谢谢你的分析。。

顺便问下:我的OD不能显示CString::XX类似的东西呀,怎么设置才能显示MFC42里面的东西呢?
如下:
0040162C   > /8A86 54314000 mov     al, byte ptr [esi+4...[/QUOTE]

OD中选【调试】->【选择导入库】 把附件中的MFC42.LIB和MFC71.LIB添加进去
上传的附件:
2009-12-27 16:17
0
雪    币: 215
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哦,这样啊,呵呵,会了,谢谢。。。
2009-12-28 08:40
0
游客
登录 | 注册 方可回帖
返回