Magic File Renamer算法分析(注册机没能写出)

来源:互联网 发布:python 私有成员获取值 编辑:程序博客网 时间:2024/05/22 15:29


004AD4B0  |.  F7F9          IDIV    ECX                              ;  假码长度/0x11
004AD4B2  |.  8BF2          MOV     ESI, EDX                         ;  余数赋ESI,mod
004AD4B4  |.  8B45 FC       MOV     EAX, [LOCAL.1]
004AD4B7  |.  E8 0C7BF5FF   CALL    MFR.00404FC8                     ;  再取假码长度keylen
004AD4BC  |.  8BD8          MOV     EBX, EAX
004AD4BE  |.  85DB          TEST    EBX, EBX
004AD4C0  |.  7E 23         JLE     SHORT MFR.004AD4E5               ;  小於等於0则跳走
004AD4C2  |.  B9 01000000   MOV     ECX, 0x1                         ;  下标i
004AD4C7  |>  8B45 FC       /MOV     EAX, [LOCAL.1]                  ;  假码
004AD4CA  |.  0FB64408 FF   |MOVZX   EAX, BYTE PTR DS:[EAX+ECX-0x1]  ;  key[i]
004AD4CF  |.  03F0          |ADD     ESI, EAX                        ;  key[i]+mod
004AD4D1  |.  8BC1          |MOV     EAX, ECX                        ;  下标i
004AD4D3  |.  25 01000080   |AND     EAX, 0x80000001                 ;  变为奇数
004AD4D8  |.  79 05         |JNS     SHORT MFR.004AD4DF              ;  不为负则跳
004AD4DA  |.  48            |DEC     EAX
004AD4DB  |.  83C8 FE       |OR      EAX, 0xFFFFFFFE
004AD4DE  |.  40            |INC     EAX
004AD4DF  |>  03F0          |ADD     ESI, EAX                        ;  mod再加上i,i为奇则是1,为偶则为0
004AD4E1  |.  41            |INC     ECX                             ;  ++i
004AD4E2  |.  4B            |DEC     EBX                             ;  keylen-=1
004AD4E3  |.^ 75 E2         \JNZ     SHORT MFR.004AD4C7
004AD4E5  |>  8B45 FC       MOV     EAX, [LOCAL.1]                   ;  假码
004AD4E8  |.  E8 DB7AF5FF   CALL    MFR.00404FC8                     ;  取假码长度
004AD4ED  |.  8BD8          MOV     EBX, EAX                         ;  kenlen
004AD4EF  |.  85DB          TEST    EBX, EBX
004AD4F1  |.  7E 2F         JLE     SHORT MFR.004AD522               ;  再次判断是否小於或等於0
004AD4F3  |.  B9 01000000   MOV     ECX, 0x1                         ;  下标i
004AD4F8  |>  8B45 FC       /MOV     EAX, [LOCAL.1]                  ;  假码
004AD4FB  |.  0FB64408 FF   |MOVZX   EAX, BYTE PTR DS:[EAX+ECX-0x1]  ;  user[i]
004AD500  |.  BF 06000000   |MOV     EDI, 0x6
004AD505  |.  33D2          |XOR     EDX, EDX                        ;  EDX作为余数
004AD507  |.  F7F7          |DIV     EDI                             ;  user[i]/6
004AD509  |.  42            |INC     EDX                             ;  余数+1
004AD50A  |.  8BC1          |MOV     EAX, ECX                        ;  j=i
004AD50C  |.  25 03000080   |AND     EAX, 0x80000003                 ;  转成j小於3的数
004AD511  |.  79 05         |JNS     SHORT MFR.004AD518
004AD513  |.  48            |DEC     EAX
004AD514  |.  83C8 FC       |OR      EAX, 0xFFFFFFFC
004AD517  |.  40            |INC     EAX
004AD518  |>  40            |INC     EAX                             ;  ++j
004AD519  |.  0FAFD0        |IMUL    EDX, EAX                        ;  k*j
004AD51C  |.  03F2          |ADD     ESI, EDX                        ;  再加上esi,即mod
004AD51E  |.  41            |INC     ECX                             ;  ++i
004AD51F  |.  4B            |DEC     EBX                             ;  keylen-1
004AD520  |.^ 75 D6         \JNZ     SHORT MFR.004AD4F8
004AD522  |>  81FE E3080000 CMP     ESI, 0x8E3                       ;  和是一定要0x8e3


最终计算的值一定要是8e3,但这样不知道怎麽写注册鸡,後面懂了再写。


0 0