飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4790|回复: 8

[原创] 某保护专家注册算法分析

[复制链接]
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2011-2-7 02:18:55 | 显示全部楼层 |阅读模式
    本帖最后由 GGLHY 于 2011-2-7 02:25 编辑

    明天凌晨要出远门,短期内没什么机会OD了。反正这时也睡不着,翻了翻硬盘,无意找到这个软件,顺便练练手吧,也和初学者们共同学习下。欢迎大家指正!


    直接来到:
    00541C8B  |.  E8 0C2EECFF   CALL 00404A9C
    00541C90  |.  83F8 14       CMP EAX,14                                           ;  假码长度为20位吗?
    00541C93  |.  0F85 D5000000 JNZ 00541D6E
    00541C99  |.  A0 F01D5400   MOV AL,BYTE PTR DS:[541DF0]              ;  [全局变量?=01]
    00541C9E  |.  50            PUSH EAX
    00541C9F  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
    00541CA2  |.  50            PUSH EAX
    00541CA3  |.  8D55 E0       LEA EDX,DWORD PTR SS:[EBP-20]
    00541CA6  |.  8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]
    00541CAC  |.  E8 9B9FF2FF   CALL 0046BC4C
    00541CB1  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]            ;  机器码
    00541CB4  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
    00541CB7  |.  E8 00F4FFFF   CALL 005410BC                                    ;  算法CALL,F7
    00541CBC  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]            ;  真码!
    00541CBF  |.  B9 081E5400   MOV ECX,00541E08
    00541CC4  |.  BA 141E5400   MOV EDX,00541E14
    00541CC9  |.  E8 D6CCECFF   CALL 0040E9A4
    00541CCE  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
    00541CD1  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
    00541CD4  |.  E8 0F2FECFF   CALL 00404BE8                                   ;  内存注册机,EAX
    00541CD9  |.  0F85 8F000000 JNZ 00541D6E                                   ;  关键跳!
      ...
      (省略部分代码)
      ...
    00541D6E  |> \6A 20         PUSH 20
    00541D70  |.  68 181E5400   PUSH 00541E18
    00541D75  |.  68 641E5400   PUSH 00541E64
    00541D7A  |.  8BC3          MOV EAX,EBX
    00541D7C  |.  E8 FB07F3FF   CALL 0047257C
    00541D81  |.  50            PUSH EAX                                 ; |hOwner
    00541D82  |.  E8 D55BECFF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA    ///出错啦!
    00541D87  |>  33C0          XOR EAX,EAX







    ==========================================================我们F7进去:
    005410BC  /$  55            PUSH EBP
    005410BD  |.  8BEC          MOV EBP,ESP
    005410BF  |.  B9 14000000   MOV ECX,14
    005410C4  |>  6A 00         /PUSH 0
    005410C6  |.  6A 00         |PUSH 0
    005410C8  |.  49            |DEC ECX
    005410C9  |.^ 75 F9         \JNZ SHORT 005410C4
    005410CB  |.  53            PUSH EBX
    005410CC  |.  56            PUSH ESI
    005410CD  |.  57            PUSH EDI
    005410CE  |.  8BFA          MOV EDI,EDX
    005410D0  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
    005410D3  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]                 ;  机器码
    005410D6  |.  E8 B13BECFF   CALL 00404C8C
    005410DB  |.  33C0          XOR EAX,EAX
    005410DD  |.  55            PUSH EBP
    005410DE  |.  68 FC155400   PUSH 005415FC
    005410E3  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    005410E6  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    005410E9  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    005410EC  |.  BA 14165400   MOV EDX,00541614                                   ;  固定字符串1(表1)ASCII "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    005410F1  |.  E8 6E37ECFF   CALL 00404864
    005410F6  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
    005410F9  |.  BA 44165400   MOV EDX,00541644                                   ;  固定字符串2(表1)ASCII "T9OP1QWVUZCD37FGHLAIJM0K4Y5EN6B82XRS"
    005410FE  |.  E8 6137ECFF   CALL 00404864
    00541103  |.  A0 6C165400   MOV AL,BYTE PTR DS:[54166C]                  ;  又一个?
    00541108  |.  50            PUSH EAX
    00541109  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
    0054110C  |.  50            PUSH EAX
    0054110D  |.  33C9          XOR ECX,ECX
    0054110F  |.  BA 78165400   MOV EDX,00541678
    00541114  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]                  ;  机器码
    00541117  |.  E8 88D8ECFF   CALL 0040E9A4
    0054111C  |.  8B55 EC       MOV EDX,DWORD PTR SS:[EBP-14]                ;  去掉其中的“-”,下面说的机器码都是去掉“-“后的
    0054111F  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
    00541122  |.  E8 3D37ECFF   CALL 00404864
    00541127  |.  33F6          XOR ESI,ESI
    00541129  |.  BB 01000000   MOV EBX,1                                             ;  EBX=1
    0054112E  |>  8B45 FC       /MOV EAX,DWORD PTR SS:[EBP-4]               ;  去掉其中的“-”后的机器码
    00541131  |.  8A4418 FF     |MOV AL,BYTE PTR DS:[EAX+EBX-1]            ;  依次ASC
    00541135  |.  04 D0         |ADD AL,0D0                                                ;  +0D0
    00541137  |.  2C 0A         |SUB AL,0A                                                  ;  -0A
    00541139  |.  73 1D         |JNB SHORT 00541158                                  ;  不低于(0?)则跳
    0054113B  |.  8D45 E8       |LEA EAX,DWORD PTR SS:[EBP-18]
    0054113E  |.  50            |PUSH EAX
    0054113F  |.  B9 01000000   |MOV ECX,1
    00541144  |.  8BD3          |MOV EDX,EBX
    00541146  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
    00541149  |.  E8 AE3BECFF   |CALL 00404CFC
    0054114E  |.  8B45 E8       |MOV EAX,DWORD PTR SS:[EBP-18]
    00541151  |.  E8 B282ECFF   |CALL 00409408
    00541156  |.  03F0          |ADD ESI,EAX                                               ;  (+D0-0A后)不跳的话,即机器码的数字值直接累加
    00541158  |>  43            |INC EBX
    00541159  |.  83FB 11       |CMP EBX,11                                               ;  16位取完了吗?(EBX初始为1)
    0054115C  |.^ 75 D0         \JNZ SHORT 0054112E
    0054115E  |.  8BC6          MOV EAX,ESI                                                ;  机器码中(数字)累加的结果
    00541160  |.  B9 24000000   MOV ECX,24                                              ;  ECX=24
    00541165  |.  99            CDQ
    00541166  |.  F7F9          IDIV ECX                                                      ;  /24
    00541168  |.  8BF2          MOV ESI,EDX                                                ;  余数到ESI
    0054116A  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    0054116D  |.  50            PUSH EAX
    0054116E  |.  B9 01000000   MOV ECX,1                                                ; 注意这个参数,即要取的字符长度
    00541173  |.  8BD6          MOV EDX,ESI                                                ;  余数到EDI
    00541175  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]                    ;  固定字符串1:1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
    00541178  |.  E8 7F3BECFF   CALL 00404CFC                                          ;  这个CALL实质是根据余数来查表
    0054117D  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]                   ;  本例余数20H,查表得到字符“V”(长度mov ECX,1决定)
    00541180  |.  50            PUSH EAX
    00541181  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    00541184  |.  50            PUSH EAX
    00541185  |.  B9 01000000   MOV ECX,1                                               ;  这里,意味着取的长度
    0054118A  |.  BA 03000000   MOV EDX,3                                               ;  注意这里的参数3
    0054118F  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]                   ;  去掉其中的“-”后的机器码
    00541192  |.  E8 653BECFF   CALL 00404CFC
    00541197  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]                 ;  呵呵,机器码第3位的ASC
    0054119A  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]                  ;  固定字符串1:1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
    0054119D  |.  E8 3E3CECFF   CALL 00404DE0
    005411A2  |.  8BD0          MOV EDX,EAX                                             ;  机器码第3位在固定字符串1中的位置值
    005411A4  |.  B9 01000000   MOV ECX,1
    005411A9  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]                 ;  固定字符串2:T9OP1QWVUZCD37FGHLAIJM0K4Y5EN6B82XRS
    005411AC  |.  E8 4B3BECFF   CALL 00404CFC
    005411B1  |.  8B55 E4       MOV EDX,DWORD PTR SS:[EBP-1C]                ;  所取机器码查表得到的位置值来取固定字符串2中的字符(的ASC)
    005411B4  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005411B7  |.  E8 E838ECFF   CALL 00404AA4
    005411BC  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
    005411BF  |.  50            PUSH EAX
    005411C0  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
    005411C3  |.  50            PUSH EAX
    005411C4  |.  B9 01000000   MOV ECX,1                                            ;  取的长度
    005411C9  |.  BA 01000000   MOV EDX,1                                            ;  参数意味着是取机器码第一位,即取的起点
    005411CE  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]                ;  去掉其中的“-”后的机器码
    005411D1  |.  E8 263BECFF   CALL 00404CFC
    005411D6  |.  8B45 D8       MOV EAX,DWORD PTR SS:[EBP-28]              ;  机器码第1位
    005411D9  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]                ;  固定字符串1
    005411DC  |.  E8 FF3BECFF   CALL 00404DE0
    005411E1  |.  8BD0          MOV EDX,EAX                                           ;  机器码第1位在固定字符串1中的位置值
    005411E3  |.  B9 01000000   MOV ECX,1
    005411E8  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]               ;  固定字符串2:T9OP1QWVUZCD37FGHLAIJM0K4Y5EN6B82XRS
    005411EB  |.  E8 0C3BECFF   CALL 00404CFC
    005411F0  |.  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]             ;  按该位置值在字符串2中取字符(R)
    005411F3  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005411F6  |.  E8 A938ECFF   CALL 00404AA4
    005411FB  |.  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
    005411FE  |.  50            PUSH EAX
    005411FF  |.  8D45 D0       LEA EAX,DWORD PTR SS:[EBP-30]
    00541202  |.  50            PUSH EAX
    00541203  |.  B9 01000000   MOV ECX,1                                          ;  取的长度
    00541208  |.  BA 08000000   MOV EDX,8                                         ;  取的起点(机器码第8位)
    0054120D  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  去掉其中的“-”后的机器码
    00541210  |.  E8 E73AECFF   CALL 00404CFC
    00541215  |.  8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]            ;  机器码第8位(G)
    00541218  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]              ;  固定字符串1
    0054121B  |.  E8 C03BECFF   CALL 00404DE0
    00541220  |.  8BD0          MOV EDX,EAX                                         ;  机器码第8位(G)在固定字符串1中的位置值
    00541222  |.  B9 01000000   MOV ECX,1
    00541227  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  固定注意地址[EBP-C],字符串2:T9OP1QWVUZCD37FGHLAIJM0K4Y5EN6B82XRS
    0054122A  |.  E8 CD3AECFF   CALL 00404CFC
    0054122F  |.  8B55 D4       MOV EDX,DWORD PTR SS:[EBP-2C]            ;  按该位置值在字符串2中取字符(H)
    00541232  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    00541235  |.  E8 6A38ECFF   CALL 00404AA4
    0054123A  |.  8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
    0054123D  |.  50            PUSH EAX
    0054123E  |.  8D45 C8       LEA EAX,DWORD PTR SS:[EBP-38]
    00541241  |.  50            PUSH EAX
    00541242  |.  B9 01000000   MOV ECX,1                                         ;  取的长度为1
    00541247  |.  BA 02000000   MOV EDX,2                                         ;  取的起点为2
    0054124C  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  去掉其中的“-”后的机器码
    0054124F  |.  E8 A83AECFF   CALL 00404CFC
    00541254  |.  8B45 C8       MOV EAX,DWORD PTR SS:[EBP-38]            ;  机器码第2位(Q)asc
    00541257  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]              ;  固定字符串1
    0054125A  |.  E8 813BECFF   CALL 00404DE0
    0054125F  |.  8BD0          MOV EDX,EAX                                          ;  机器码第二位在固定字符串1中的位置值
    00541261  |.  B9 02000000   MOV ECX,2                                          ;  注意这里的ECX=2,意味着这里取2位
    00541266  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  固定字符串2
    00541269  |.  E8 8E3AECFF   CALL 00404CFC
    0054126E  |.  8B55 CC       MOV EDX,DWORD PTR SS:[EBP-34]            ;  “5E”(固定字符串2的)第27位为5第28位为E。(ECX=2决定)
    00541271  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    00541274  |.  E8 2B38ECFF   CALL 00404AA4
    00541279  |.  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
    0054127C  |.  50            PUSH EAX
    0054127D  |.  8D45 C0       LEA EAX,DWORD PTR SS:[EBP-40]
    00541280  |.  50            PUSH EAX
    00541281  |.  B9 01000000   MOV ECX,1                                          ;  取的长度为1
    00541286  |.  BA 0E000000   MOV EDX,0E                                        ;  起点为第14位
    0054128B  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]              ;  去掉其中的“-”后的机器码
    0054128E  |.  E8 693AECFF   CALL 00404CFC
    00541293  |.  8B45 C0       MOV EAX,DWORD PTR SS:[EBP-40]            ;  (Q)
    00541296  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    00541299  |.  E8 423BECFF   CALL 00404DE0
    0054129E  |.  8BD0          MOV EDX,EAX
    005412A0  |.  B9 02000000   MOV ECX,2                                          ;  注意这里=2
    005412A5  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    005412A8  |.  E8 4F3AECFF   CALL 00404CFC
    005412AD  |.  8B55 C4       MOV EDX,DWORD PTR SS:[EBP-3C]            ;  查表2得到的“5E”
    005412B0  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005412B3  |.  E8 EC37ECFF   CALL 00404AA4
    005412B8  |.  8D45 BC       LEA EAX,DWORD PTR SS:[EBP-44]
    005412BB  |.  50            PUSH EAX
    005412BC  |.  8D45 B8       LEA EAX,DWORD PTR SS:[EBP-48]
    005412BF  |.  50            PUSH EAX
    005412C0  |.  B9 01000000   MOV ECX,1                                         ;  取的长度为1
    005412C5  |.  BA 04000000   MOV EDX,4                                         ;  起点为第4位
    005412CA  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  去掉其中的“-”后的机器码
    005412CD  |.  E8 2A3AECFF   CALL 00404CFC
    005412D2  |.  8B45 B8       MOV EAX,DWORD PTR SS:[EBP-48]            ;  机器码第4位(4)
    005412D5  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    005412D8  |.  E8 033BECFF   CALL 00404DE0
    005412DD  |.  8BD0          MOV EDX,EAX
    005412DF  |.  B9 01000000   MOV ECX,1                                         ;  取1位
    005412E4  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    005412E7  |.  E8 103AECFF   CALL 00404CFC
    005412EC  |.  8B55 BC       MOV EDX,DWORD PTR SS:[EBP-44]            ;  查表2得到的"P"
    005412EF  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005412F2  |.  E8 AD37ECFF   CALL 00404AA4
    005412F7  |.  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
    005412FA  |.  50            PUSH EAX
    005412FB  |.  8D45 B0       LEA EAX,DWORD PTR SS:[EBP-50]
    005412FE  |.  50            PUSH EAX
    005412FF  |.  B9 01000000   MOV ECX,1
    00541304  |.  BA 05000000   MOV EDX,5                                         ;  起点为第5位
    00541309  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0054130C  |.  E8 EB39ECFF   CALL 00404CFC
    00541311  |.  8B45 B0       MOV EAX,DWORD PTR SS:[EBP-50]            ;  机器码的5的ASC
    00541314  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    00541317  |.  E8 C43AECFF   CALL 00404DE0
    0054131C  |.  8BD0          MOV EDX,EAX
    0054131E  |.  B9 01000000   MOV ECX,1
    00541323  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    00541326  |.  E8 D139ECFF   CALL 00404CFC
    0054132B  |.  8B55 B4       MOV EDX,DWORD PTR SS:[EBP-4C]            ;  查表2得到的"1"
    0054132E  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    00541331  |.  E8 6E37ECFF   CALL 00404AA4
    00541336  |.  8D45 AC       LEA EAX,DWORD PTR SS:[EBP-54]
    00541339  |.  50            PUSH EAX
    0054133A  |.  8D45 A8       LEA EAX,DWORD PTR SS:[EBP-58]
    0054133D  |.  50            PUSH EAX
    0054133E  |.  B9 01000000   MOV ECX,1                                          ;  取的长度为1
    00541343  |.  BA 10000000   MOV EDX,10                                        ;  起点第16位
    00541348  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0054134B  |.  E8 AC39ECFF   CALL 00404CFC
    00541350  |.  8B45 A8       MOV EAX,DWORD PTR SS:[EBP-58]            ;  机器码中的B(第16位)
    00541353  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    00541356  |.  E8 853AECFF   CALL 00404DE0
    0054135B  |.  8BD0          MOV EDX,EAX
    0054135D  |.  B9 01000000   MOV ECX,1
    00541362  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    00541365  |.  E8 9239ECFF   CALL 00404CFC
    0054136A  |.  8B55 AC       MOV EDX,DWORD PTR SS:[EBP-54]            ;  查表2得到的“D”
    0054136D  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    00541370  |.  E8 2F37ECFF   CALL 00404AA4
    00541375  |.  8D45 A4       LEA EAX,DWORD PTR SS:[EBP-5C]
    00541378  |.  50            PUSH EAX
    00541379  |.  8D45 A0       LEA EAX,DWORD PTR SS:[EBP-60]
    0054137C  |.  50            PUSH EAX
    0054137D  |.  B9 01000000   MOV ECX,1                                         ;  取的长度为1
    00541382  |.  BA 07000000   MOV EDX,7                                         ;  起点第7位
    00541387  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0054138A  |.  E8 6D39ECFF   CALL 00404CFC
    0054138F  |.  8B45 A0       MOV EAX,DWORD PTR SS:[EBP-60]            ;  去掉其中的“-”后的机器码的第7位5
    00541392  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    00541395  |.  E8 463AECFF   CALL 00404DE0
    0054139A  |.  8BD0          MOV EDX,EAX
    0054139C  |.  B9 01000000   MOV ECX,1
    005413A1  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    005413A4  |.  E8 5339ECFF   CALL 00404CFC
    005413A9  |.  8B55 A4       MOV EDX,DWORD PTR SS:[EBP-5C]            ;  查表2得到的“1”
    005413AC  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005413AF  |.  E8 F036ECFF   CALL 00404AA4
    005413B4  |.  8D45 9C       LEA EAX,DWORD PTR SS:[EBP-64]
    005413B7  |.  50            PUSH EAX
    005413B8  |.  8D45 98       LEA EAX,DWORD PTR SS:[EBP-68]
    005413BB  |.  50            PUSH EAX
    005413BC  |.  B9 01000000   MOV ECX,1                                          ;  取的长度为1
    005413C1  |.  BA 09000000   MOV EDX,9                                         ;  起点第9位
    005413C6  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  去掉其中的“-”后的机器码
    005413C9  |.  E8 2E39ECFF   CALL 00404CFC
    005413CE  |.  8B45 98       MOV EAX,DWORD PTR SS:[EBP-68]            ;  去掉其中的“-”后的机器码的第9位(6)
    005413D1  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    005413D4  |.  E8 073AECFF   CALL 00404DE0
    005413D9  |.  8BD0          MOV EDX,EAX
    005413DB  |.  B9 02000000   MOV ECX,2                                         ;  这里ECX=2表示会取2位
    005413E0  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    005413E3  |.  E8 1439ECFF   CALL 00404CFC
    005413E8  |.  8B55 9C       MOV EDX,DWORD PTR SS:[EBP-64]            ;  查表2得到的"QW"
    005413EB  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005413EE  |.  E8 B136ECFF   CALL 00404AA4
    005413F3  |.  8D45 94       LEA EAX,DWORD PTR SS:[EBP-6C]
    005413F6  |.  50            PUSH EAX
    005413F7  |.  8D45 90       LEA EAX,DWORD PTR SS:[EBP-70]
    005413FA  |.  50            PUSH EAX
    005413FB  |.  B9 01000000   MOV ECX,1
    00541400  |.  BA 0B000000   MOV EDX,0B                                       ;  注意参数,第11位
    00541405  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  去掉其中的“-”后的机器码
    00541408  |.  E8 EF38ECFF   CALL 00404CFC
    0054140D  |.  8B45 90       MOV EAX,DWORD PTR SS:[EBP-70]            ;  第11位B
    00541410  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    00541413  |.  E8 C839ECFF   CALL 00404DE0
    00541418  |.  8BD0          MOV EDX,EAX
    0054141A  |.  B9 01000000   MOV ECX,1
    0054141F  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    00541422  |.  E8 D538ECFF   CALL 00404CFC
    00541427  |.  8B55 94       MOV EDX,DWORD PTR SS:[EBP-6C]            ;  查表2得到的“D”
    0054142A  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    0054142D  |.  E8 7236ECFF   CALL 00404AA4
    00541432  |.  8D45 8C       LEA EAX,DWORD PTR SS:[EBP-74]
    00541435  |.  50            PUSH EAX
    00541436  |.  8D45 88       LEA EAX,DWORD PTR SS:[EBP-78]
    00541439  |.  50            PUSH EAX
    0054143A  |.  B9 01000000   MOV ECX,1                                         ;  取的长度为1
    0054143F  |.  BA 0C000000   MOV EDX,0C                                       ;  第12位
    00541444  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    00541447  |.  E8 B038ECFF   CALL 00404CFC
    0054144C  |.  8B45 88       MOV EAX,DWORD PTR SS:[EBP-78]            ;  第12位的Y
    0054144F  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    00541452  |.  E8 8939ECFF   CALL 00404DE0
    00541457  |.  8BD0          MOV EDX,EAX
    00541459  |.  B9 01000000   MOV ECX,1
    0054145E  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    00541461  |.  E8 9638ECFF   CALL 00404CFC
    00541466  |.  8B55 8C       MOV EDX,DWORD PTR SS:[EBP-74]            ;  查表2得到的“R”
    00541469  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    0054146C  |.  E8 3336ECFF   CALL 00404AA4
    00541471  |.  8D45 84       LEA EAX,DWORD PTR SS:[EBP-7C]
    00541474  |.  50            PUSH EAX
    00541475  |.  8D45 80       LEA EAX,DWORD PTR SS:[EBP-80]
    00541478  |.  50            PUSH EAX
    00541479  |.  B9 01000000   MOV ECX,1                                          ;  取的长度为1
    0054147E  |.  BA 06000000   MOV EDX,6                                          ;  起点第6位
    00541483  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    00541486  |.  E8 7138ECFF   CALL 00404CFC
    0054148B  |.  8B45 80       MOV EAX,DWORD PTR SS:[EBP-80]
    0054148E  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    00541491  |.  E8 4A39ECFF   CALL 00404DE0
    00541496  |.  8BD0          MOV EDX,EAX
    00541498  |.  B9 01000000   MOV ECX,1
    0054149D  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    005414A0  |.  E8 5738ECFF   CALL 00404CFC
    005414A5  |.  8B55 84       MOV EDX,DWORD PTR SS:[EBP-7C]            ;  查表2得到的“1”
    005414A8  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005414AB  |.  E8 F435ECFF   CALL 00404AA4
    005414B0  |.  8D85 7CFFFFFF LEA EAX,DWORD PTR SS:[EBP-84]
    005414B6  |.  50            PUSH EAX
    005414B7  |.  8D85 78FFFFFF LEA EAX,DWORD PTR SS:[EBP-88]
    005414BD  |.  50            PUSH EAX
    005414BE  |.  B9 01000000   MOV ECX,1
    005414C3  |.  BA 0D000000   MOV EDX,0D                                       ;  起点第13位
    005414C8  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005414CB  |.  E8 2C38ECFF   CALL 00404CFC
    005414D0  |.  8B85 78FFFFFF MOV EAX,DWORD PTR SS:[EBP-88]
    005414D6  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    005414D9  |.  E8 0239ECFF   CALL 00404DE0
    005414DE  |.  8BD0          MOV EDX,EAX
    005414E0  |.  B9 01000000   MOV ECX,1
    005414E5  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    005414E8  |.  E8 0F38ECFF   CALL 00404CFC
    005414ED  |.  8B95 7CFFFFFF MOV EDX,DWORD PTR SS:[EBP-84]            ;  查表2得到的“B”
    005414F3  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005414F6  |.  E8 A935ECFF   CALL 00404AA4
    005414FB  |.  8D85 74FFFFFF LEA EAX,DWORD PTR SS:[EBP-8C]
    00541501  |.  50            PUSH EAX
    00541502  |.  8D85 70FFFFFF LEA EAX,DWORD PTR SS:[EBP-90]
    00541508  |.  50            PUSH EAX
    00541509  |.  B9 01000000   MOV ECX,1                                             ;  取的长度为1
    0054150E  |.  BA 0F000000   MOV EDX,0F                                            ;  第15
    00541513  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    00541516  |.  E8 E137ECFF   CALL 00404CFC
    0054151B  |.  8B85 70FFFFFF MOV EAX,DWORD PTR SS:[EBP-90]
    00541521  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    00541524  |.  E8 B738ECFF   CALL 00404DE0
    00541529  |.  8BD0          MOV EDX,EAX
    0054152B  |.  B9 01000000   MOV ECX,1
    00541530  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    00541533  |.  E8 C437ECFF   CALL 00404CFC
    00541538  |.  8B95 74FFFFFF MOV EDX,DWORD PTR SS:[EBP-8C]            ;  查表2得到的“F”
    0054153E  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    00541541  |.  E8 5E35ECFF   CALL 00404AA4
    00541546  |.  8D85 6CFFFFFF LEA EAX,DWORD PTR SS:[EBP-94]
    0054154C  |.  50            PUSH EAX
    0054154D  |.  8D85 68FFFFFF LEA EAX,DWORD PTR SS:[EBP-98]
    00541553  |.  50            PUSH EAX
    00541554  |.  B9 01000000   MOV ECX,1                                             ;  取的长度为1
    00541559  |.  BA 0A000000   MOV EDX,0A                                           ;  起点第10位
    0054155E  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    00541561  |.  E8 9637ECFF   CALL 00404CFC
    00541566  |.  8B85 68FFFFFF MOV EAX,DWORD PTR SS:[EBP-98]
    0054156C  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    0054156F  |.  E8 6C38ECFF   CALL 00404DE0
    00541574  |.  8BD0          MOV EDX,EAX                                             ;  在固定字符串1中的位置值
    00541576  |.  B9 01000000   MOV ECX,1
    0054157B  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    0054157E  |.  E8 7937ECFF   CALL 00404CFC                                       ;  该位置值在固定字符串2中对应的字符,
    00541583  |.  8B95 6CFFFFFF MOV EDX,DWORD PTR SS:[EBP-94]            ;  查表2得到的“F”
    00541589  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    0054158C  |.  E8 1335ECFF   CALL 00404AA4
    00541591  |.  8D95 60FFFFFF LEA EDX,DWORD PTR SS:[EBP-A0]
    00541597  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]                ;  得到个字符串,(注意第一位)
    0054159A  |.  E8 F5F0FFFF   CALL 00540694
    0054159F  |.  8B85 60FFFFFF MOV EAX,DWORD PTR SS:[EBP-A0]            ;  得到的字符串的MD5大写,设为S1
    005415A5  |.  8D95 64FFFFFF LEA EDX,DWORD PTR SS:[EBP-9C]             ;  得到的字符串
    005415AB  |.  E8 6479ECFF   CALL 00408F14
    005415B0  |.  8B95 64FFFFFF MOV EDX,DWORD PTR SS:[EBP-9C]            ;  S1
    005415B6  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005415B9  |.  E8 A632ECFF   CALL 00404864
    005415BE  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    005415C1  |.  50            PUSH EAX
    005415C2  |.  B9 14000000   MOV ECX,14                                           ;  要取的长度,14H=20
    005415C7  |.  BA 04000000   MOV EDX,4                                            ;  意味着从第4位起取20位
    005415CC  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]               ;  S1
    005415CF  |.  E8 2837ECFF   CALL 00404CFC
    005415D4  |.  8BC7          MOV EAX,EDI
    005415D6  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]                ;  S1从第4位起取20位
    005415D9  |.  E8 4232ECFF   CALL 00404820
    005415DE  |.  33C0          XOR EAX,EAX
    005415E0  |.  5A            POP EDX
    005415E1  |.  59            POP ECX
    005415E2  |.  59            POP ECX
    005415E3  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    005415E6  |.  68 03165400   PUSH 00541603
    005415EB  |>  8D85 60FFFFFF LEA EAX,DWORD PTR SS:[EBP-A0]
    005415F1  |.  BA 28000000   MOV EDX,28
    005415F6  |.  E8 F531ECFF   CALL 004047F0
    005415FB  \.  C3            RETN
    005415FC   .^ E9 0F2BECFF   JMP 00404110
    00541601   .^ EB E8         JMP SHORT 005415EB
    00541603   .  5F            POP EDI
    00541604   .  5E            POP ESI
    00541605   .  5B            POP EBX
    00541606   .  8BE5          MOV ESP,EBP
    00541608   .  5D            POP EBP
    00541609   .  C3            RETN




    /////////////////////////////////////////////////////////////////////////////////////////////////////////
    算法总结:
    1.机器码中的数字直接累加,其和除以24H,以余数查表,得到一位字符;
    2.机器码按以下顺序运算:
      取机器码的顺序为:3   1   8   2     14      4   5  16  7  9  11  12   6   13  15  10
                                (取2位)(取2位)              (取2位)
          依次取机器码的字符查表1,得到位置值,按其位置值查表2,得到字符,直至机器码取完,得到字符串;
    3.第一步得到的字符与第2步得到的字符串相连,取MD5值(大写),设为S1;
    4.取S1的4-23位即为注册码。
    --------------------------------------------------------------------------------------------
    附 表1:1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
        表2:T9OP1QWVUZCD37FGHLAIJM0K4Y5EN6B82XRS
    ---------------------------------------------------------------------------------------------
    以本机为例
    0.机器码为:YQ74-555G-6EBY-UQEB
    1.机器码中的数字作为数值累加,即7+4+5+5+5+6=32,即16进制的20
        20H / 24H(=36) ,余数为20H,在表1中查得为字符“V”
    取机器码第3位,为“7”,查它在表1中的位置,得到位置值7,再在表2中查位置为7的字符,得到“W”,
    以此类推,但注意第2、第14、第11位时,在表2中查得字符要取2位。得到字符串"WRH5E5EP1D1QWDR1BFF"
    2.将“V”与 "WRH5E5EP1D1QWDR1BFF"相连,得到"VWRH5E5EP1D1QWDR1BFF",
      然后取MD5(大写),得到:"FF02CE5F1C559DF46972066C8BA8EA66"
    3.取"FF02CE5F1C559DF46972066C8BA8EA66"的第4到23位为止即“2CE5F1C559DF46972066”为注册码。



    注册信息保存在:
    HKEY_LOCAL_MACHINE\SOFTWARE\*******Soft
    "key"="2CE5F1C559DF46972066"
    删除变为未注册版!
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////


    ok.GIF

    对比.GIF

    评分

    参与人数 1飘云币 +40 收起 理由
    月之精灵 + 40 感谢您发布的原创作品!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

     楼主| 发表于 2011-2-7 02:20:05 | 显示全部楼层
    论坛的排版真头疼,呵呵/:001
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2011-2-9 21:10:31 | 显示全部楼层
    哈哈,学习学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2011-2-9 23:25:31 | 显示全部楼层
    这么详细的分析真的很少见了 顶一个
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 1098 天

    [LV.10]以坛为家III

    发表于 2011-2-13 12:58:42 | 显示全部楼层
    回复 4# loway


        嗯,G兄一直独领风骚/:012
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2019-3-25 06:30
  • 签到天数: 1096 天

    [LV.10]以坛为家III

    发表于 2011-2-13 19:40:09 | 显示全部楼层
    分析得不错,期待有新的破解作品出来。
    PYG19周年生日快乐!
  • TA的每日心情

    2016-8-3 07:23
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-3-14 14:44:39 | 显示全部楼层
    好东东..
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-2-2 13:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2011-3-15 16:54:07 | 显示全部楼层
    /:013学习  谢谢分享
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-3-28 00:16
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2011-4-13 06:55:50 | 显示全部楼层
    怎么可以成为G兄呢?我看应该是LHY兄,直接称Y兄比较好!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表