首页
社区
课程
招聘
[旧帖] [原创]某VB制作的KEYGENME的算法分析+注册码 0.00雪花
发表于: 2007-9-8 02:35 4504

[旧帖] [原创]某VB制作的KEYGENME的算法分析+注册码 0.00雪花

2007-9-8 02:35
4504
软件是VB写的程序,用PEID检测无壳,直接OD装之!!!!!!!!!
00402423   .  8BC8          mov     ecx, eax
00402425   .  FF15 50104000 call    dword ptr [<&MSVBVM60.__vbaI2I4>>;  取注册名
0040242B   .  8945 D0       mov     dword ptr [ebp-30], eax
0040242E   .  66:3D 0300    cmp     ax, 3                            ;  注册名必须大于等于3位
00402432   .  0F8C CD010000 jl      00402605                         ;  否则跳就失败
00402438   .  8B0E          mov     ecx, dword ptr [esi]
0040243A   .  56            push    esi
0040243B   .  FF91 0C030000 call    dword ptr [ecx+30C]
00402441   .  50            push    eax
00402442   .  8D55 C4       lea     edx, dword ptr [ebp-3C]
00402445   .  52            push    edx
00402446   .  FF15 30104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
0040244C   .  8BF0          mov     esi, eax
0040244E   .  8B06          mov     eax, dword ptr [esi]
00402450   .  8D4D C8       lea     ecx, dword ptr [ebp-38]
00402453   .  51            push    ecx
00402454   .  56            push    esi
00402455   .  FF90 A0000000 call    dword ptr [eax+A0]
0040245B   .  DBE2          fclex
0040245D   .  3BC3          cmp     eax, ebx
0040245F   .  7D 12         jge     short 00402473
00402461   .  68 A0000000   push    0A0
00402466   .  68 401C4000   push    00401C40
0040246B   .  56            push    esi
0040246C   .  50            push    eax
0040246D   .  FF15 20104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
00402473   >  8B55 C8       mov     edx, dword ptr [ebp-38]          ;  取注册码
00402476   .  895D C8       mov     dword ptr [ebp-38], ebx
00402479   .  8D4D DC       lea     ecx, dword ptr [ebp-24]
0040247C   .  FFD7          call    edi
0040247E   .  8D4D C4       lea     ecx, dword ptr [ebp-3C]
00402481   .  FF15 B0104000 call    dword ptr [<&MSVBVM60.__vbaFreeO>;  MSVBVM60.__vbaFreeObj
00402487   .  8B55 DC       mov     edx, dword ptr [ebp-24]
0040248A   .  52            push    edx
0040248B   .  FF15 08104000 call    dword ptr [<&MSVBVM60.__vbaLenBs>;  MSVBVM60.__vbaLenBstr
00402491   .  8BC8          mov     ecx, eax
00402493   .  FF15 50104000 call    dword ptr [<&MSVBVM60.__vbaI2I4>>;  MSVBVM60.__vbaI2I4
00402499   .  66:3BC3       cmp     ax, bx                           ;  注册码不能为空bx为空,ax为当前注册码位数
0040249C   .  0F84 63010000 je      00402605                         ;  跳了就挂
004024A2   .  BF 01000000   mov     edi, 1
004024A7   .  8BF7          mov     esi, edi
004024A9   .  8B1D 0C104000 mov     ebx, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaFreeVarList
004024AF   >  66:3B75 D0    cmp     si, word ptr [ebp-30]            ;  注册码位数
004024B3   .  0F8F 93000000 jg      0040254C                         ;  比较完则继续向下跳
004024B9   .  C745 BC 01000>mov     dword ptr [ebp-44], 1
004024C0   .  C745 B4 02000>mov     dword ptr [ebp-4C], 2
004024C7   .  8D45 CC       lea     eax, dword ptr [ebp-34]
004024CA   .  8985 7CFFFFFF mov     dword ptr [ebp-84], eax
004024D0   .  C785 74FFFFFF>mov     dword ptr [ebp-8C], 4008
004024DA   .  8D4D B4       lea     ecx, dword ptr [ebp-4C]
004024DD   .  51            push    ecx
004024DE   .  0FBFD6        movsx   edx, si
004024E1   .  52            push    edx
004024E2   .  8D85 74FFFFFF lea     eax, dword ptr [ebp-8C]
004024E8   .  50            push    eax
004024E9   .  8D4D A4       lea     ecx, dword ptr [ebp-5C]
004024EC   .  51            push    ecx
004024ED   .  FF15 44104000 call    dword ptr [<&MSVBVM60.#632>]     ;  MSVBVM60.rtcMidCharVar
004024F3   .  8D55 A4       lea     edx, dword ptr [ebp-5C]
004024F6   .  52            push    edx
004024F7   .  8D45 C8       lea     eax, dword ptr [ebp-38]
004024FA   .  50            push    eax
004024FB   .  FF15 74104000 call    dword ptr [<&MSVBVM60.__vbaStrVa>;  MSVBVM60.__vbaStrVarVal
00402501   .  50            push    eax
00402502   .  FF15 18104000 call    dword ptr [<&MSVBVM60.#516>]     ;  MSVBVM60.rtcAnsiValueBstr
00402508   .  66:0FAFC6     imul    ax, si                           ;  用户名位数第1位*用户名第1位ASCII+用户名位数第2位*用户

名第2位ASCII+用户名位数第3位*用户名第3位ASCII
0040250C   .  0F80 5F010000 jo      00402671                         ;  用户名为中文则跳向失败
00402512   .  0FBFC8        movsx   ecx, ax
00402515   .  03CF          add     ecx, edi                         ;  (1+6C=6D)+(2*6F=DE)(3*6E)
00402517   .  0F80 54010000 jo      00402671
0040251D   .  8BF9          mov     edi, ecx                         ;  6D+DE+14A
0040251F   .  8D4D C8       lea     ecx, dword ptr [ebp-38]
00402522   .  FF15 B4104000 call    dword ptr [<&MSVBVM60.__vbaFreeS>;  MSVBVM60.__vbaFreeStr
00402528   .  8D55 A4       lea     edx, dword ptr [ebp-5C]
0040252B   .  52            push    edx
0040252C   .  8D45 B4       lea     eax, dword ptr [ebp-4C]
0040252F   .  50            push    eax
00402530   .  6A 02         push    2
00402532   .  FFD3          call    ebx
00402534   .  83C4 0C       add     esp, 0C
00402537   .  B8 01000000   mov     eax, 1
0040253C   .  66:03C6       add     ax, si
0040253F   .  0F80 2C010000 jo      00402671
00402545   .  8BF0          mov     esi, eax
00402547   .^ E9 63FFFFFF   jmp     004024AF                         ;  返回 004024AF继续比较注册注册码
0040254C   >  69FF 96740100 imul    edi, edi, 17496                  ;  edi中的当前值与17496相乘
00402552   .  0F80 19010000 jo      00402671
00402558   .  897D D8       mov     dword ptr [ebp-28], edi          ;  结果为16进制
0040255B   .  DB45 D8       fild    dword ptr [ebp-28]               ;  结果转换为10进制的数据为真正的注册码
0040255E   .  DD9D 14FFFFFF fstp    qword ptr [ebp-EC]
00402564   .  8B4D DC       mov     ecx, dword ptr [ebp-24]
00402567   .  51            push    ecx
00402568   .  FF15 80104000 call    dword ptr [<&MSVBVM60.__vbaR8Str>;  MSVBVM60.__vbaR8Str
0040256E   .  DC9D 14FFFFFF fcomp   qword ptr [ebp-EC]
00402574   .  DFE0          fstsw   ax
00402576   .  F6C4 40       test    ah, 40
00402579      0F84 86000000 je      00402605                         ;  若相等则不跳转
0040257F   .  B9 04000280   mov     ecx, 80020004
00402584      894D 8C       mov     dword ptr [ebp-74], ecx
00402587   .  B8 0A000000   mov     eax, 0A
0040258C   .  8945 84       mov     dword ptr [ebp-7C], eax
0040258F   .  894D 9C       mov     dword ptr [ebp-64], ecx
00402592   .  8945 94       mov     dword ptr [ebp-6C], eax
00402595   .  C785 6CFFFFFF>mov     dword ptr [ebp-94], 00401C74     ;  congratulations
0040259F   .  BF 08000000   mov     edi, 8
004025A4   .  89BD 64FFFFFF mov     dword ptr [ebp-9C], edi
004025AA   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
004025B0   .  8D4D A4       lea     ecx, dword ptr [ebp-5C]
004025B3   .  8B35 98104000 mov     esi, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaVarDup
004025B9   .  FFD6          call    esi                              ;  <&MSVBVM60.__vbaVarDup>
004025BB   .  C785 7CFFFFFF>mov     dword ptr [ebp-84], 00401C54     ;  good job,man!(验证成功)

注册名:long
注册码:102344886

注册名:fanyulong
注册码:470042496

注册名:QQ6944455
注册码:235688922

用户名位数第1位*用户名第1位ASCII+用户名位数第2位*用户

名第2位ASCII+用户名位数第3位*用户名第3位ASCII的值*17496的结果转换为10进制就是真正的注册码

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 19
活跃值: (107)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
2
顺便补充一下暴破手的暴破方法

00402579     /0F84 86000000 je      00402605                         ;  若相等则不跳转

将JE改为JNE后保存程序就可以达到暴破的目的
2007-9-8 03:40
0
雪    币: 1355
活跃值: (334)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
3
~~~支持一下~~~
2007-9-8 11:34
0
雪    币: 19
活跃值: (107)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
4
哈哈,第一次写算法分析,写得不好,还请多担待...........
2007-9-8 18:09
0
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
晕,世界上竟然还有如此精彩的文章,看了这篇文章,不枉我此生啊!
2007-9-8 18:50
0
雪    币: 192
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
77109F3A    55              push    ebp
77109F3B    8BEC            mov     ebp, esp
77109F3D    83EC 38         sub     esp, 38
77109F40    53              push    ebx                              ; MSVBVM60.__vbaObjSet
77109F41    8B5D 0C         mov     ebx, dword ptr [ebp+C]
77109F44    56              push    esi
77109F45    8B75 08         mov     esi, dword ptr [ebp+8]
77109F48    57              push    edi
77109F49    0FB70B          movzx   ecx, word ptr [ebx]
77109F4C    0FB706          movzx   eax, word ptr [esi]
77109F4F    BA FF7FFFFF     mov     edx, FFFF7FFF
77109F54    23CA            and     ecx, edx
77109F56    23C2            and     eax, edx
77109F58    83F9 11         cmp     ecx, 11
77109F5B  ^ 0F87 DCF5FFFF   ja      7710953D
77109F61    8D1440          lea     edx, dword ptr [eax+eax*2]
77109F64    8D14D1          lea     edx, dword ptr [ecx+edx*8]
77109F67    81FA 26020000   cmp     edx, 226
77109F6D  ^ 0F87 E6FBFFFF   ja      77109B59
77109F73    0FB692 0C9D1077 movzx   edx, byte ptr [edx+77109D0C]
77109F7A    FF2495 8C9B1077 jmp     dword ptr [edx*4+77109B8C]
77109F81    0FBF43 08       movsx   eax, word ptr [ebx+8]
77109F85    8B76 08         mov     esi, dword ptr [esi+8]
77109F88    3BF0            cmp     esi, eax
77109F8A    7C 11           jl      short 77109F9D
77109F8C    33C9            xor     ecx, ecx
77109F8E    3BF0            cmp     esi, eax
77109F90    0F9FC1          setg    cl
77109F93    41              inc     ecx
77109F94    8BC1            mov     eax, ecx
77109F96    5F              pop     edi
77109F97    5E              pop     esi
77109F98    5B              pop     ebx
77109F99    C9              leave
77109F9A    C2 1000         retn    10
77109F9D    33C0            xor     eax, eax
77109F9F  ^ EB F5           jmp     short 77109F96
77109FA1    83F8 14         cmp     eax, 14
77109FA4    0F84 18080000   je      7710A7C2
77109FAA    EB 40           jmp     short 77109FEC
77109FAC    8D45 E8         lea     eax, dword ptr [ebp-18]
77109FAF    50              push    eax
77109FB0    53              push    ebx
77109FB1    FF76 08         push    dword ptr [esi+8]
77109FB4    E8 96760300     call    7714164F
77109FB9    85C0            test    eax, eax
77109FBB    8945 0C         mov     dword ptr [ebp+C], eax
77109FBE    0F8C D5040000   jl      7710A499
77109FC4    8D75 E8         lea     esi, dword ptr [ebp-18]
77109FC7    E9 E7070000     jmp     7710A7B3
77109FCC    8D45 D8         lea     eax, dword ptr [ebp-28]
77109FCF    50              push    eax
77109FD0    53              push    ebx
77109FD1    FF77 08         push    dword ptr [edi+8]
77109FD4    E8 76760300     call    7714164F
77109FD9    85C0            test    eax, eax
77109FDB    8945 0C         mov     dword ptr [ebp+C], eax
77109FDE    0F8C 9B040000   jl      7710A47F
77109FE4    8D7D D8         lea     edi, dword ptr [ebp-28]
77109FE7    E9 C7070000     jmp     7710A7B3
77109FEC    F6C4 20         test    ah, 20
77109FEF    0F85 83040000   jnz     7710A478
77109FF5    83F8 24         cmp     eax, 24
77109FF8    E9 72040000     jmp     7710A46F
77109FFD    C745 0C 0500028>mov     dword ptr [ebp+C], 80020005
7710A004    E9 90040000     jmp     7710A499
7710A009    33DB            xor     ebx, ebx
7710A00B    43              inc     ebx
7710A00C    E9 EF070000     jmp     7710A800
7710A011    33DB            xor     ebx, ebx
7710A013    43              inc     ebx
7710A014    E9 CC0A0000     jmp     7710AAE5
7710A019    66:8B46 08      mov     ax, word ptr [esi+8]
7710A01D    8B4D 10         mov     ecx, dword ptr [ebp+10]
7710A020    66:8941 08      mov     word ptr [ecx+8], ax

大大帮看下这段,不清楚任何计算,本人刚刚入门的。
2007-12-12 20:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
来学习一下。
2007-12-12 20:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很不错哦,学习下1
2007-12-12 22:02
0
游客
登录 | 注册 方可回帖
返回
//