飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7984|回复: 10

[原创] Dynamic Auto-Painter PRO 4 算法分析 + 神奇 pyg.dll 应用

  [复制链接]
  • TA的每日心情
    慵懒
    2024-12-4 10:07
  • 签到天数: 444 天

    [LV.9]以坛为家II

    发表于 2014-11-11 09:47:08 | 显示全部楼层 |阅读模式
    本帖最后由 sdnyzjzx 于 2014-11-11 09:49 编辑
    1. 一、算法分析部分
    复制代码
    1. 0053DAC3  |.  8D70 10       LEA     ESI,DWORD PTR [EAX+0x10]         ;  随机生成注册码前10位
    2. 0053DAC6  |.  83C4 04       ADD     ESP,0x4
    3. 0053DAC9  |.  897424 30     MOV     DWORD PTR [ESP+0x30],ESI         ;  ASCII "741230567"
    4. 0053DACD  |.  68 A55C6C00   PUSH    DaPainte.006C5CA5
    5. 0053DAD2  |.  8D4C24 1C     LEA     ECX,DWORD PTR [ESP+0x1C]
    6. 0053DAD6  |.  C64424 50 06  MOV     BYTE PTR [ESP+0x50],0x6
    7. 0053DADB  |.  E8 6047ECFF   CALL    DaPainte.00402240
    8. 0053DAE0  |.  B8 5F5F5F5F   MOV     EAX,0x5F5F5F5F
    9. 0053DAE5  |.  894424 34     MOV     DWORD PTR [ESP+0x34],EAX
    10. 0053DAE9  |.  894424 38     MOV     DWORD PTR [ESP+0x38],EAX
    11. 0053DAED  |.  884424 3C     MOV     BYTE PTR [ESP+0x3C],AL
    12. 0053DAF1  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    13. 0053DAF4  |.  83F8 02       CMP     EAX,0x2
    14. 0053DAF7  |.  C64424 4C 07  MOV     BYTE PTR [ESP+0x4C],0x7
    15. 0053DAFC  |.  7D 0A         JGE     SHORT DaPainte.0053DB08
    16. 0053DAFE  |.  68 57000780   PUSH    0x80070057
    17. 0053DB03  |.  E8 F834ECFF   CALL    DaPainte.00401000
    18. 0053DB08  |>  83F8 02       CMP     EAX,0x2
    19. 0053DB0B  |.  8A56 02       MOV     DL,BYTE PTR [ESI+0x2]            ;  regcode[2]
    20. 0053DB0E  |.  7D 0A         JGE     SHORT DaPainte.0053DB1A
    21. 0053DB10  |.  68 57000780   PUSH    0x80070057
    22. 0053DB15  |.  E8 E634ECFF   CALL    DaPainte.00401000
    23. 0053DB1A  |>  83F8 01       CMP     EAX,0x1
    24. 0053DB1D  |.  7D 0A         JGE     SHORT DaPainte.0053DB29
    25. 0053DB1F  |.  68 57000780   PUSH    0x80070057
    26. 0053DB24  |.  E8 D734ECFF   CALL    DaPainte.00401000
    27. 0053DB29  |>  83F8 01       CMP     EAX,0x1
    28. 0053DB2C  |.  8A4E 01       MOV     CL,BYTE PTR [ESI+0x1]            ;  regcode[1]
    29. 0053DB2F  |.  7D 0A         JGE     SHORT DaPainte.0053DB3B
    30. 0053DB31  |.  68 57000780   PUSH    0x80070057
    31. 0053DB36  |.  E8 C534ECFF   CALL    DaPainte.00401000
    32. 0053DB3B  |>  0FBEC1        MOVSX   EAX,CL                           ;  regcode[1]
    33. 0053DB3E  |.  0FBEDA        MOVSX   EBX,DL                           ;  regcode[2]
    34. 0053DB41  |.  0FBED2        MOVSX   EDX,DL                           ;  regcode[2]
    35. 0053DB44  |.  0FBEC9        MOVSX   ECX,CL                           ;  regcode[1]
    36. 0053DB47  |.  8D0443        LEA     EAX,DWORD PTR [EBX+EAX*2]        ;  regcode[2] + regcode[1]*2
    37. 0053DB4A  |.  03C2          ADD     EAX,EDX                          ;  regcode[2] + regcode[1]*2 + regcode[2]
    38. 0053DB4C  |.  8D1481        LEA     EDX,DWORD PTR [ECX+EAX*4]        ;  regcode[1] + (regcode[2] + regcode[1]*2 + regcode[2])*4
    39. 0053DB4F  |.  52            PUSH    EDX                              ;  35C
    40. 0053DB50  |.  8BCD          MOV     ECX,EBP
    41. 0053DB52  |.  E8 99FFEEFF   CALL    DaPainte.0042DAF0
    42. 0053DB57  |.  884424 34     MOV     BYTE PTR [ESP+0x34],AL           ;  30  <-- 0
    43. 0053DB5B  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    44. 0053DB5E  |.  3BC7          CMP     EAX,EDI
    45. 0053DB60  |.  7D 0A         JGE     SHORT DaPainte.0053DB6C
    46. 0053DB62  |.  68 57000780   PUSH    0x80070057
    47. 0053DB67  |.  E8 9434ECFF   CALL    DaPainte.00401000
    48. 0053DB6C  |>  83F8 01       CMP     EAX,0x1
    49. 0053DB6F  |.  7D 0A         JGE     SHORT DaPainte.0053DB7B
    50. 0053DB71  |.  68 57000780   PUSH    0x80070057
    51. 0053DB76  |.  E8 8534ECFF   CALL    DaPainte.00401000
    52. 0053DB7B  |>  83F8 06       CMP     EAX,0x6
    53. 0053DB7E  |.  8A5E 01       MOV     BL,BYTE PTR [ESI+0x1]            ;  regcode[1]
    54. 0053DB81  |.  7D 0A         JGE     SHORT DaPainte.0053DB8D
    55. 0053DB83  |.  68 57000780   PUSH    0x80070057
    56. 0053DB88  |.  E8 7334ECFF   CALL    DaPainte.00401000
    57. 0053DB8D  |>  83F8 05       CMP     EAX,0x5
    58. 0053DB90  |.  8A56 06       MOV     DL,BYTE PTR [ESI+0x6]            ;  regcode[6]
    59. 0053DB93  |.  7D 0A         JGE     SHORT DaPainte.0053DB9F
    60. 0053DB95  |.  68 57000780   PUSH    0x80070057
    61. 0053DB9A  |.  E8 6134ECFF   CALL    DaPainte.00401000
    62. 0053DB9F  |>  8A4E 05       MOV     CL,BYTE PTR [ESI+0x5]            ;  regcode[5]
    63. 0053DBA2  |.  0FBEC2        MOVSX   EAX,DL                           ;  regcode[6]
    64. 0053DBA5  |.  0FBE16        MOVSX   EDX,BYTE PTR [ESI]               ;  regcode[0]
    65. 0053DBA8  |.  8D0440        LEA     EAX,DWORD PTR [EAX+EAX*2]        ;  regcode[6]*3
    66. 0053DBAB  |.  8D0490        LEA     EAX,DWORD PTR [EAX+EDX*4]        ;  regcode[6]*3 + regcode[0]*4
    67. 0053DBAE  |.  0FBED3        MOVSX   EDX,BL                           ;  regcode[1]
    68. 0053DBB1  |.  0FBEC9        MOVSX   ECX,CL                           ;  regcode[5]
    69. 0053DBB4  |.  03C2          ADD     EAX,EDX                          ;  regcode[6]*3 + regcode[0]*4 + regcode[1]
    70. 0053DBB6  |.  8D1441        LEA     EDX,DWORD PTR [ECX+EAX*2]        ;  regcode[5] + (regcode[6]*3 + regcode[0]*4 + regcode[1])*2
    71. 0053DBB9  |.  52            PUSH    EDX                              ;  38E
    72. 0053DBBA  |.  8BCD          MOV     ECX,EBP
    73. 0053DBBC  |.  E8 2FFFEEFF   CALL    DaPainte.0042DAF0
    74. 0053DBC1  |.  884424 35     MOV     BYTE PTR [ESP+0x35],AL           ;  30
    75. 0053DBC5  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    76. 0053DBC8  |.  83F8 07       CMP     EAX,0x7
    77. 0053DBCB  |.  7D 0A         JGE     SHORT DaPainte.0053DBD7
    78. 0053DBCD  |.  68 57000780   PUSH    0x80070057
    79. 0053DBD2  |.  E8 2934ECFF   CALL    DaPainte.00401000
    80. 0053DBD7  |>  83F8 08       CMP     EAX,0x8
    81. 0053DBDA  |.  7D 0A         JGE     SHORT DaPainte.0053DBE6
    82. 0053DBDC  |.  68 57000780   PUSH    0x80070057
    83. 0053DBE1  |.  E8 1A34ECFF   CALL    DaPainte.00401000
    84. 0053DBE6  |>  83F8 05       CMP     EAX,0x5
    85. 0053DBE9  |.  8A5E 08       MOV     BL,BYTE PTR [ESI+0x8]
    86. 0053DBEC  |.  7D 0A         JGE     SHORT DaPainte.0053DBF8
    87. 0053DBEE  |.  68 57000780   PUSH    0x80070057
    88. 0053DBF3  |.  E8 0834ECFF   CALL    DaPainte.00401000
    89. 0053DBF8  |>  83F8 01       CMP     EAX,0x1
    90. 0053DBFB  |.  8A56 05       MOV     DL,BYTE PTR [ESI+0x5]
    91. 0053DBFE  |.  7D 0A         JGE     SHORT DaPainte.0053DC0A
    92. 0053DC00  |.  68 57000780   PUSH    0x80070057
    93. 0053DC05  |.  E8 F633ECFF   CALL    DaPainte.00401000
    94. 0053DC0A  |>  0FBE46 07     MOVSX   EAX,BYTE PTR [ESI+0x7]
    95. 0053DC0E  |.  8A4E 01       MOV     CL,BYTE PTR [ESI+0x1]
    96. 0053DC11  |.  0FBED2        MOVSX   EDX,DL
    97. 0053DC14  |.  8D0440        LEA     EAX,DWORD PTR [EAX+EAX*2]
    98. 0053DC17  |.  03C2          ADD     EAX,EDX
    99. 0053DC19  |.  8BD0          MOV     EDX,EAX
    100. 0053DC1B  |.  0FBEC3        MOVSX   EAX,BL
    101. 0053DC1E  |.  8D0480        LEA     EAX,DWORD PTR [EAX+EAX*4]
    102. 0053DC21  |.  8D1450        LEA     EDX,DWORD PTR [EAX+EDX*2]
    103. 0053DC24  |.  0FBEC1        MOVSX   EAX,CL
    104. 0053DC27  |.  03D0          ADD     EDX,EAX
    105. 0053DC29  |.  52            PUSH    EDX
    106. 0053DC2A  |.  8BCD          MOV     ECX,EBP
    107. 0053DC2C  |.  E8 BFFEEEFF   CALL    DaPainte.0042DAF0
    108. 0053DC31  |.  884424 36     MOV     BYTE PTR [ESP+0x36],AL           ;  37
    109. 0053DC35  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    110. 0053DC38  |.  83F8 02       CMP     EAX,0x2
    111. 0053DC3B  |.  7D 0A         JGE     SHORT DaPainte.0053DC47
    112. 0053DC3D  |.  68 57000780   PUSH    0x80070057
    113. 0053DC42  |.  E8 B933ECFF   CALL    DaPainte.00401000
    114. 0053DC47  |>  83F8 01       CMP     EAX,0x1
    115. 0053DC4A  |.  8A4E 02       MOV     CL,BYTE PTR [ESI+0x2]            ;  regcode[2]
    116. 0053DC4D  |.  7D 0A         JGE     SHORT DaPainte.0053DC59
    117. 0053DC4F  |.  68 57000780   PUSH    0x80070057
    118. 0053DC54  |.  E8 A733ECFF   CALL    DaPainte.00401000
    119. 0053DC59  |>  3BC7          CMP     EAX,EDI
    120. 0053DC5B  |.  8A5E 01       MOV     BL,BYTE PTR [ESI+0x1]            ;  regcode[1]
    121. 0053DC5E  |.  7D 0A         JGE     SHORT DaPainte.0053DC6A
    122. 0053DC60  |.  68 57000780   PUSH    0x80070057
    123. 0053DC65  |.  E8 9633ECFF   CALL    DaPainte.00401000
    124. 0053DC6A  |>  83F8 02       CMP     EAX,0x2
    125. 0053DC6D  |.  8A16          MOV     DL,BYTE PTR [ESI]                ;  regcode[0]
    126. 0053DC6F  |.  7D 0A         JGE     SHORT DaPainte.0053DC7B
    127. 0053DC71  |.  68 57000780   PUSH    0x80070057
    128. 0053DC76  |.  E8 8533ECFF   CALL    DaPainte.00401000
    129. 0053DC7B  |>  0FBEC1        MOVSX   EAX,CL                           ;  regcode[2]
    130. 0053DC7E  |.  8D3C40        LEA     EDI,DWORD PTR [EAX+EAX*2]        ;  regcode[2]*3
    131. 0053DC81  |.  0FBEC3        MOVSX   EAX,BL                           ;  regcode[1]
    132. 0053DC84  |.  8D1CC5 000000>LEA     EBX,DWORD PTR [EAX*8]            ;  regcode[1]*8
    133. 0053DC8B  |.  2BD8          SUB     EBX,EAX                          ;  regcode[1]*8 - regcode[1]
    134. 0053DC8D  |.  0FBEC9        MOVSX   ECX,CL                           ;  regcode[2]
    135. 0053DC90  |.  03FB          ADD     EDI,EBX                          ;  regcode[2]*3 + (regcode[1]*8 - regcode[1])
    136. 0053DC92  |.  8D04CF        LEA     EAX,DWORD PTR [EDI+ECX*8]        ;  regcode[2]*3 + (regcode[1]*8 - regcode[1]) + regcode[2]*8
    137. 0053DC95  |.  0FBECA        MOVSX   ECX,DL                           ;  regcode[0]
    138. 0053DC98  |.  03C1          ADD     EAX,ECX                          ;  regcode[2]*3 + (regcode[1]*8 - regcode[1]) + regcode[2]*8 + regcode[0]
    139. 0053DC9A  |.  50            PUSH    EAX                              ;  3BE
    140. 0053DC9B  |.  8BCD          MOV     ECX,EBP
    141. 0053DC9D  |.  E8 4EFEEEFF   CALL    DaPainte.0042DAF0
    142. 0053DCA2  |.  884424 37     MOV     BYTE PTR [ESP+0x37],AL           ;  38   <-- 3
    143. 0053DCA6  |.  C64424 38 2D  MOV     BYTE PTR [ESP+0x38],0x2D
    144. 0053DCAB  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    145. 0053DCAE  |.  83F8 07       CMP     EAX,0x7
    146. 0053DCB1  |.  7D 0A         JGE     SHORT DaPainte.0053DCBD
    147. 0053DCB3  |.  68 57000780   PUSH    0x80070057
    148. 0053DCB8  |.  E8 4333ECFF   CALL    DaPainte.00401000
    149. 0053DCBD  |>  83F8 05       CMP     EAX,0x5
    150. 0053DCC0  |.  8A56 07       MOV     DL,BYTE PTR [ESI+0x7]
    151. 0053DCC3  |.  7D 0A         JGE     SHORT DaPainte.0053DCCF
    152. 0053DCC5  |.  68 57000780   PUSH    0x80070057
    153. 0053DCCA  |.  E8 3133ECFF   CALL    DaPainte.00401000
    154. 0053DCCF  |>  83F8 05       CMP     EAX,0x5
    155. 0053DCD2  |.  8A4E 05       MOV     CL,BYTE PTR [ESI+0x5]
    156. 0053DCD5  |.  7D 0A         JGE     SHORT DaPainte.0053DCE1
    157. 0053DCD7  |.  68 57000780   PUSH    0x80070057
    158. 0053DCDC  |.  E8 1F33ECFF   CALL    DaPainte.00401000
    159. 0053DCE1  |>  83F8 02       CMP     EAX,0x2
    160. 0053DCE4  |.  7D 0A         JGE     SHORT DaPainte.0053DCF0
    161. 0053DCE6  |.  68 57000780   PUSH    0x80070057
    162. 0053DCEB  |.  E8 1033ECFF   CALL    DaPainte.00401000
    163. 0053DCF0  |>  0FBE46 02     MOVSX   EAX,BYTE PTR [ESI+0x2]
    164. 0053DCF4  |.  0FBEF9        MOVSX   EDI,CL
    165. 0053DCF7  |.  0FBEC9        MOVSX   ECX,CL
    166. 0053DCFA  |.  0FBED2        MOVSX   EDX,DL
    167. 0053DCFD  |.  03C7          ADD     EAX,EDI
    168. 0053DCFF  |.  03CA          ADD     ECX,EDX
    169. 0053DD01  |.  8D0440        LEA     EAX,DWORD PTR [EAX+EAX*2]
    170. 0053DD04  |.  8D04C8        LEA     EAX,DWORD PTR [EAX+ECX*8]
    171. 0053DD07  |.  50            PUSH    EAX
    172. 0053DD08  |.  8BCD          MOV     ECX,EBP
    173. 0053DD0A  |.  E8 E1FDEEFF   CALL    DaPainte.0042DAF0
    174. 0053DD0F  |.  884424 39     MOV     BYTE PTR [ESP+0x39],AL           ;  -37
    175. 0053DD13  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    176. 0053DD16  |.  83F8 05       CMP     EAX,0x5
    177. 0053DD19  |.  7D 0A         JGE     SHORT DaPainte.0053DD25
    178. 0053DD1B  |.  68 57000780   PUSH    0x80070057
    179. 0053DD20  |.  E8 DB32ECFF   CALL    DaPainte.00401000
    180. 0053DD25  |>  83F8 06       CMP     EAX,0x6
    181. 0053DD28  |.  8A5E 05       MOV     BL,BYTE PTR [ESI+0x5]            ;  regcode[5]
    182. 0053DD2B  |.  7D 0A         JGE     SHORT DaPainte.0053DD37
    183. 0053DD2D  |.  68 57000780   PUSH    0x80070057
    184. 0053DD32  |.  E8 C932ECFF   CALL    DaPainte.00401000
    185. 0053DD37  |>  83F8 01       CMP     EAX,0x1
    186. 0053DD3A  |.  8A56 06       MOV     DL,BYTE PTR [ESI+0x6]            ;  regcode[6]
    187. 0053DD3D  |.  7D 0A         JGE     SHORT DaPainte.0053DD49
    188. 0053DD3F  |.  68 57000780   PUSH    0x80070057
    189. 0053DD44  |.  E8 B732ECFF   CALL    DaPainte.00401000
    190. 0053DD49  |>  83F8 01       CMP     EAX,0x1
    191. 0053DD4C  |.  8A4E 01       MOV     CL,BYTE PTR [ESI+0x1]            ;  regcode[1]
    192. 0053DD4F  |.  7D 0A         JGE     SHORT DaPainte.0053DD5B
    193. 0053DD51  |.  68 57000780   PUSH    0x80070057
    194. 0053DD56  |.  E8 A532ECFF   CALL    DaPainte.00401000
    195. 0053DD5B  |>  0FBEF9        MOVSX   EDI,CL                           ;  regcode[1]
    196. 0053DD5E  |.  0FBEC3        MOVSX   EAX,BL                           ;  regcode[5]
    197. 0053DD61  |.  8D3C87        LEA     EDI,DWORD PTR [EDI+EAX*4]        ;  regcode[1] + regcode[5]*4
    198. 0053DD64  |.  0FBEC1        MOVSX   EAX,CL                           ;  regcode[1]
    199. 0053DD67  |.  0FBED2        MOVSX   EDX,DL                           ;  regcode[6]
    200. 0053DD6A  |.  03FA          ADD     EDI,EDX                          ;  regcode[1] + regcode[5]*4 + regcode[6]
    201. 0053DD6C  |.  8D0440        LEA     EAX,DWORD PTR [EAX+EAX*2]        ;  regcode[1]*3
    202. 0053DD6F  |.  8D0C78        LEA     ECX,DWORD PTR [EAX+EDI*2]        ;  regcode[1]*3 + (regcode[1] + regcode[5]*4 + regcode[6])*2
    203. 0053DD72  |.  51            PUSH    ECX
    204. 0053DD73  |.  8BCD          MOV     ECX,EBP
    205. 0053DD75  |.  E8 76FDEEFF   CALL    DaPainte.0042DAF0
    206. 0053DD7A  |.  884424 3A     MOV     BYTE PTR [ESP+0x3A],AL           ;  30   <-- 6
    207. 0053DD7E  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    208. 0053DD81  |.  83F8 06       CMP     EAX,0x6
    209. 0053DD84  |.  7D 0A         JGE     SHORT DaPainte.0053DD90
    210. 0053DD86  |.  68 57000780   PUSH    0x80070057
    211. 0053DD8B  |.  E8 7032ECFF   CALL    DaPainte.00401000
    212. 0053DD90  |>  83F8 03       CMP     EAX,0x3
    213. 0053DD93  |.  7D 0A         JGE     SHORT DaPainte.0053DD9F
    214. 0053DD95  |.  68 57000780   PUSH    0x80070057
    215. 0053DD9A  |.  E8 6132ECFF   CALL    DaPainte.00401000
    216. 0053DD9F  |>  83F8 08       CMP     EAX,0x8
    217. 0053DDA2  |.  8A5E 03       MOV     BL,BYTE PTR [ESI+0x3]
    218. 0053DDA5  |.  7D 0A         JGE     SHORT DaPainte.0053DDB1
    219. 0053DDA7  |.  68 57000780   PUSH    0x80070057
    220. 0053DDAC  |.  E8 4F32ECFF   CALL    DaPainte.00401000
    221. 0053DDB1  |>  83F8 07       CMP     EAX,0x7
    222. 0053DDB4  |.  8A56 08       MOV     DL,BYTE PTR [ESI+0x8]
    223. 0053DDB7  |.  7D 0A         JGE     SHORT DaPainte.0053DDC3
    224. 0053DDB9  |.  68 57000780   PUSH    0x80070057
    225. 0053DDBE  |.  E8 3D32ECFF   CALL    DaPainte.00401000
    226. 0053DDC3  |>  0FBE7E 06     MOVSX   EDI,BYTE PTR [ESI+0x6]
    227. 0053DDC7  |.  8A4E 07       MOV     CL,BYTE PTR [ESI+0x7]
    228. 0053DDCA  |.  0FBEC3        MOVSX   EAX,BL
    229. 0053DDCD  |.  8D3C87        LEA     EDI,DWORD PTR [EDI+EAX*4]
    230. 0053DDD0  |.  0FBEC2        MOVSX   EAX,DL
    231. 0053DDD3  |.  8D1440        LEA     EDX,DWORD PTR [EAX+EAX*2]
    232. 0053DDD6  |.  0FBEC9        MOVSX   ECX,CL
    233. 0053DDD9  |.  8D047A        LEA     EAX,DWORD PTR [EDX+EDI*2]
    234. 0053DDDC  |.  03C1          ADD     EAX,ECX
    235. 0053DDDE  |.  50            PUSH    EAX
    236. 0053DDDF  |.  8BCD          MOV     ECX,EBP
    237. 0053DDE1  |.  E8 0AFDEEFF   CALL    DaPainte.0042DAF0
    238. 0053DDE6  |.  884424 3B     MOV     BYTE PTR [ESP+0x3B],AL           ;  35
    239. 0053DDEA  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    240. 0053DDED  |.  83F8 05       CMP     EAX,0x5
    241. 0053DDF0  |.  7D 0A         JGE     SHORT DaPainte.0053DDFC
    242. 0053DDF2  |.  68 57000780   PUSH    0x80070057
    243. 0053DDF7  |.  E8 0432ECFF   CALL    DaPainte.00401000
    244. 0053DDFC  |>  83F8 03       CMP     EAX,0x3
    245. 0053DDFF  |.  8A5E 05       MOV     BL,BYTE PTR [ESI+0x5]            ;  regcode[5]
    246. 0053DE02  |.  7D 0A         JGE     SHORT DaPainte.0053DE0E
    247. 0053DE04  |.  68 57000780   PUSH    0x80070057
    248. 0053DE09  |.  E8 F231ECFF   CALL    DaPainte.00401000
    249. 0053DE0E  |>  83F8 07       CMP     EAX,0x7
    250. 0053DE11  |.  8A56 03       MOV     DL,BYTE PTR [ESI+0x3]            ;  regcode[3]
    251. 0053DE14  |.  7D 0A         JGE     SHORT DaPainte.0053DE20
    252. 0053DE16  |.  68 57000780   PUSH    0x80070057
    253. 0053DE1B  |.  E8 E031ECFF   CALL    DaPainte.00401000
    254. 0053DE20  |>  83F8 07       CMP     EAX,0x7
    255. 0053DE23  |.  8A4E 07       MOV     CL,BYTE PTR [ESI+0x7]            ;  regcode[7]
    256. 0053DE26  |.  7D 0A         JGE     SHORT DaPainte.0053DE32
    257. 0053DE28  |.  68 57000780   PUSH    0x80070057
    258. 0053DE2D  |.  E8 CE31ECFF   CALL    DaPainte.00401000
    259. 0053DE32  |>  0FBEC1        MOVSX   EAX,CL                           ;  regcode[7]
    260. 0053DE35  |.  0FBEC9        MOVSX   ECX,CL                           ;  regcode[7]
    261. 0053DE38  |.  8D0440        LEA     EAX,DWORD PTR [EAX+EAX*2]        ;  regcode[7]*3
    262. 0053DE3B  |.  03C1          ADD     EAX,ECX                          ;  regcode[7]*3 + regcode[7]
    263. 0053DE3D  |.  0FBED2        MOVSX   EDX,DL                           ;  regcode[3]
    264. 0053DE40  |.  0FBECB        MOVSX   ECX,BL                           ;  regcode[5]
    265. 0053DE43  |.  03C2          ADD     EAX,EDX                          ;  regcode[7]*3 + regcode[7] + regcode[3]
    266. 0053DE45  |.  8D1441        LEA     EDX,DWORD PTR [ECX+EAX*2]        ;  regcode[5] + (regcode[7]*3 + regcode[7] + regcode[3])*2
    267. 0053DE48  |.  52            PUSH    EDX                              ;  244
    268. 0053DE49  |.  8BCD          MOV     ECX,EBP
    269. 0053DE4B  |.  E8 A0FCEEFF   CALL    DaPainte.0042DAF0
    270. 0053DE50  |.  68 1E050000   PUSH    0x51E
    271. 0053DE55  |.  8BCD          MOV     ECX,EBP
    272. 0053DE57  |.  884424 40     MOV     BYTE PTR [ESP+0x40],AL           ;  30   <-- 8
    273. 0053DE5B  |.  E8 90FCEEFF   CALL    DaPainte.0042DAF0                ;  --------  0078-7050  -----------
    274. 0053DE60  |.  884424 3D     MOV     BYTE PTR [ESP+0x3D],AL           ;  30
    275. 0053DE64  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    276. 0053DE67  |.  83F8 06       CMP     EAX,0x6
    277. 0053DE6A  |.^ 0F8C 3BFBFFFF JL      DaPainte.0053D9AB
    278. 0053DE70  |.  83F8 01       CMP     EAX,0x1
    279. 0053DE73  |.  8A4E 06       MOV     CL,BYTE PTR [ESI+0x6]            ;  regcode[6]
    280. 0053DE76  |.^ 0F8C 2FFBFFFF JL      DaPainte.0053D9AB
    281. 0053DE7C  |.  83F8 06       CMP     EAX,0x6
    282. 0053DE7F  |.  8A56 01       MOV     DL,BYTE PTR [ESI+0x1]            ;  regcode[1]
    283. 0053DE82  |.^ 0F8C 23FBFFFF JL      DaPainte.0053D9AB
    284. 0053DE88  |.  85C0          TEST    EAX,EAX
    285. 0053DE8A  |.^ 0F8C 1BFBFFFF JL      DaPainte.0053D9AB
    286. 0053DE90  |.  0FBE06        MOVSX   EAX,BYTE PTR [ESI]               ;  regcode[0]
    287. 0053DE93  |.  0FBEF9        MOVSX   EDI,CL                           ;  regcode[6]
    288. 0053DE96  |.  03C7          ADD     EAX,EDI                          ;  regcode[0] + regcode[6]
    289. 0053DE98  |.  8D3C80        LEA     EDI,DWORD PTR [EAX+EAX*4]        ;  (regcode[0] + regcode[6])*5
    290. 0053DE9B  |.  0FBEC1        MOVSX   EAX,CL                           ;  regcode[6]
    291. 0053DE9E  |.  0FBECA        MOVSX   ECX,DL                           ;  regcode[1]
    292. 0053DEA1  |.  8D0440        LEA     EAX,DWORD PTR [EAX+EAX*2]        ;  regcode[6]*3
    293. 0053DEA4  |.  03F8          ADD     EDI,EAX                          ;  (regcode[0] + regcode[6])*5 + regcode[6]*3
    294. 0053DEA6  |.  03F9          ADD     EDI,ECX                          ;  (regcode[0] + regcode[6])*5 + regcode[6]*3 + regcode[1]
    295. 0053DEA8  |.  57            PUSH    EDI                              ;  2EF
    296. 0053DEA9  |.  8BCD          MOV     ECX,EBP
    297. 0053DEAB  |.  E8 40FCEEFF   CALL    DaPainte.0042DAF0
    298. 0053DEB0  |.  884424 35     MOV     BYTE PTR [ESP+0x35],AL           ;  31   <-- 1  开始替换1
    299. 0053DEB4  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    300. 0053DEB7  |.  83F8 02       CMP     EAX,0x2
    301. 0053DEBA  |.^ 0F8C EBFAFFFF JL      DaPainte.0053D9AB
    302. 0053DEC0  |.  8A4E 02       MOV     CL,BYTE PTR [ESI+0x2]            ;  regcode[2]
    303. 0053DEC3  |.  85C0          TEST    EAX,EAX
    304. 0053DEC5  |.^ 0F8C E0FAFFFF JL      DaPainte.0053D9AB
    305. 0053DECB  |.  83F8 06       CMP     EAX,0x6
    306. 0053DECE  |.  8A16          MOV     DL,BYTE PTR [ESI]                ;  regcode[0]
    307. 0053DED0  |.^ 0F8C D5FAFFFF JL      DaPainte.0053D9AB
    308. 0053DED6  |.  0FBE46 06     MOVSX   EAX,BYTE PTR [ESI+0x6]           ;  regcode[6]
    309. 0053DEDA  |.  0FBEF9        MOVSX   EDI,CL                           ;  regcode[2]
    310. 0053DEDD  |.  03C7          ADD     EAX,EDI                          ;  regcode[6] + regcode[2]
    311. 0053DEDF  |.  8D3C40        LEA     EDI,DWORD PTR [EAX+EAX*2]        ;  (regcode[6] + regcode[2])*3
    312. 0053DEE2  |.  0FBEC2        MOVSX   EAX,DL                           ;  regcode[0]
    313. 0053DEE5  |.  8D1480        LEA     EDX,DWORD PTR [EAX+EAX*4]        ;  regcode[0]*5
    314. 0053DEE8  |.  0FBEC1        MOVSX   EAX,CL                           ;  regcode[2]
    315. 0053DEEB  |.  03FA          ADD     EDI,EDX                          ;  (regcode[6] + regcode[2])*3 + regcode[0]*5
    316. 0053DEED  |.  8D0C47        LEA     ECX,DWORD PTR [EDI+EAX*2]        ;  (regcode[6] + regcode[2])*3 + regcode[0]*5 + regcode[2]*2
    317. 0053DEF0  |.  51            PUSH    ECX                              ;  2A7
    318. 0053DEF1  |.  8BCD          MOV     ECX,EBP
    319. 0053DEF3  |.  E8 F8FBEEFF   CALL    DaPainte.0042DAF0
    320. 0053DEF8  |.  884424 36     MOV     BYTE PTR [ESP+0x36],AL           ;  39  <-- 2 替换2
    321. 0053DEFC  |.  C64424 38 2D  MOV     BYTE PTR [ESP+0x38],0x2D
    322. 0053DF01  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    323. 0053DF04  |.  83F8 02       CMP     EAX,0x2
    324. 0053DF07  |.^ 0F8C 9EFAFFFF JL      DaPainte.0053D9AB
    325. 0053DF0D  |.  83F8 07       CMP     EAX,0x7
    326. 0053DF10  |.  8A4E 02       MOV     CL,BYTE PTR [ESI+0x2]            ;  regcode[2]
    327. 0053DF13  |.^ 0F8C 92FAFFFF JL      DaPainte.0053D9AB
    328. 0053DF19  |.  83F8 08       CMP     EAX,0x8
    329. 0053DF1C  |.  8A56 07       MOV     DL,BYTE PTR [ESI+0x7]            ;  regcode[7]
    330. 0053DF1F  |.^ 0F8C 86FAFFFF JL      DaPainte.0053D9AB
    331. 0053DF25  |.  0FBE46 08     MOVSX   EAX,BYTE PTR [ESI+0x8]           ;  regcode[8]
    332. 0053DF29  |.  0FBEF9        MOVSX   EDI,CL                           ;  regcode[2]
    333. 0053DF2C  |.  8D0440        LEA     EAX,DWORD PTR [EAX+EAX*2]        ;  regcode[8]*3
    334. 0053DF2F  |.  8D3C78        LEA     EDI,DWORD PTR [EAX+EDI*2]        ;  regcode[8]*3 + regcode[2]*2
    335. 0053DF32  |.  0FBEC2        MOVSX   EAX,DL                           ;  regcode[7]
    336. 0053DF35  |.  0FBEC9        MOVSX   ECX,CL                           ;  regcode[2]
    337. 0053DF38  |.  8D14C5 000000>LEA     EDX,DWORD PTR [EAX*8]            ;  regcode[7]*8
    338. 0053DF3F  |.  03F9          ADD     EDI,ECX                          ;  regcode[8]*3 + regcode[2]*2 + regcode[2]
    339. 0053DF41  |.  2BD0          SUB     EDX,EAX                          ;  regcode[7]*8 - regcode[7]
    340. 0053DF43  |.  8D047A        LEA     EAX,DWORD PTR [EDX+EDI*2]        ;  regcode[7]*8 + (regcode[8]*3 + regcode[2]*2 + regcode[2])*2
    341. 0053DF46  |.  50            PUSH    EAX                              ;  3EA
    342. 0053DF47  |.  8BCD          MOV     ECX,EBP
    343. 0053DF49  |.  E8 A2FBEEFF   CALL    DaPainte.0042DAF0
    344. 0053DF4E  |.  884424 39     MOV     BYTE PTR [ESP+0x39],AL           ;  32   <-- 5  替换3
    345. 0053DF52  |.  8B46 F4       MOV     EAX,DWORD PTR [ESI-0xC]
    346. 0053DF55  |.  83F8 08       CMP     EAX,0x8
    347. 0053DF58  |.^ 0F8C 4DFAFFFF JL      DaPainte.0053D9AB
    348. 0053DF5E  |.  83F8 02       CMP     EAX,0x2
    349. 0053DF61  |.  8A4E 08       MOV     CL,BYTE PTR [ESI+0x8]            ;  regcode[8]
    350. 0053DF64  |.^ 0F8C 41FAFFFF JL      DaPainte.0053D9AB
    351. 0053DF6A  |.  83F8 03       CMP     EAX,0x3
    352. 0053DF6D  |.  8A5E 02       MOV     BL,BYTE PTR [ESI+0x2]            ;  regcode[2]
    353. 0053DF70  |.^ 0F8C 35FAFFFF JL      DaPainte.0053D9AB
    354. 0053DF76  |.  83F8 08       CMP     EAX,0x8
    355. 0053DF79  |.  8A56 03       MOV     DL,BYTE PTR [ESI+0x3]            ;  regcode[3]
    356. 0053DF7C  |.^ 0F8C 29FAFFFF JL      DaPainte.0053D9AB
    357. 0053DF82  |.  0FBEC1        MOVSX   EAX,CL                           ;  regcode[8]
    358. 0053DF85  |.  0FBED2        MOVSX   EDX,DL                           ;  regcode[3]
    359. 0053DF88  |.  03C2          ADD     EAX,EDX                          ;  regcode[8] + regcode[3]
    360. 0053DF8A  |.  8D1440        LEA     EDX,DWORD PTR [EAX+EAX*2]        ;  (regcode[8] + regcode[3])*3
    361. 0053DF8D  |.  0FBEC1        MOVSX   EAX,CL                           ;  regcode[8]
    362. 0053DF90  |.  8D0480        LEA     EAX,DWORD PTR [EAX+EAX*4]        ;  regcode[8]*5
    363. 0053DF93  |.  8D0C50        LEA     ECX,DWORD PTR [EAX+EDX*2]        ;  regcode[8]*5 + (regcode[8] + regcode[3])*3*2
    364. 0053DF96  |.  0FBED3        MOVSX   EDX,BL                           ;  regcode[2]
    365. 0053DF99  |.  03CA          ADD     ECX,EDX                          ;  regcode[8]*5 + (regcode[8] + regcode[3])*3*2 + regcode[2]
    366. 0053DF9B  |.  51            PUSH    ECX                              ;  3BA
    367. 0053DF9C  |.  8BCD          MOV     ECX,EBP
    368. 0053DF9E  |.  E8 4DFBEEFF   CALL    DaPainte.0042DAF0
    369. 0053DFA3  |.  884424 3B     MOV     BYTE PTR [ESP+0x3B],AL           ;  34   <-- 7 替换4
    370. 0053DFA7  |.  8D4424 34     LEA     EAX,DWORD PTR [ESP+0x34]
    371. 0053DFAB  |.  8D48 01       LEA     ECX,DWORD PTR [EAX+0x1]
    372. 0053DFAE  |.  8BFF          MOV     EDI,EDI
    373. 0053DFB0  |>  8A10          /MOV     DL,BYTE PTR [EAX]
    374. 0053DFB2  |.  40            |INC     EAX
    375. 0053DFB3  |.  84D2          |TEST    DL,DL
    376. 0053DFB5  |.^ 75 F9         \JNZ     SHORT DaPainte.0053DFB0
    377. 0053DFB7  |.  2BC1          SUB     EAX,ECX
    378. 0053DFB9  |.  50            PUSH    EAX
    379. 0053DFBA  |.  8D4424 38     LEA     EAX,DWORD PTR [ESP+0x38]
    380. 0053DFBE  |.  50            PUSH    EAX
    381. 0053DFBF  |.  8D4C24 20     LEA     ECX,DWORD PTR [ESP+0x20]
    382. 0053DFC3  |.  E8 883EECFF   CALL    DaPainte.00401E50
    383. 0053DFC8  |.  6A 09         PUSH    0x9
    384. 0053DFCA  |.  8D4C24 24     LEA     ECX,DWORD PTR [ESP+0x24]
    385. 0053DFCE  |.  51            PUSH    ECX
    386. 0053DFCF  |.  8D4C24 20     LEA     ECX,DWORD PTR [ESP+0x20]
    387. 0053DFD3  |.  E8 7866ECFF   CALL    DaPainte.00404650
    388. 0053DFD8  |.  8B08          MOV     ECX,DWORD PTR [EAX]              ;  ASCII "0198-2040"
    复制代码



    纯体力活,没有什么技巧,算法总结如下:
    1.随机生成注册码前10位
    2.然后根据如上代码进行计算,得到第11-19位,其中第15位为 -

    属于注册码自身校验型,第11-19位为校验位。

    注册机源码如下:
    1. 头文件部分:
    2. #include <sstream>
    3. #include <windows.h>
    4. #define NAKED __declspec(naked)

    5. 中间用到一个计算函数,通过内联实现:
    6. DWORD  mECX = 0;
    7. BYTE  mEAX = 0;

    8. void  NAKED jisuan()
    9. {
    10. __asm
    11. {
    12.                 PUSHAD
    13.                 PUSHFD
    14.                 MOV    ECX,mECX
    15.                 MOV     EAX,0x66666667
    16.                 IMUL    ECX
    17.                 SAR     EDX,0x2
    18.                 MOV     EAX,EDX
    19.                 SHR     EAX,0x1F
    20.                 ADD     EAX,EDX
    21.                 MOV     DL,0xA
    22.                 IMUL    DL
    23.                 MOV     DL,AL
    24.                 MOV     AL,CL
    25.                 SUB     AL,DL
    26.                 ADD     AL,0x30
    27.                 MOV    mEAX,AL
    28.                 POPFD
    29.                 POPAD
    30.                 RETN   
    31. }
    32. }

    33. 主要代码部分:
    34. void Cdappro4Dlg::OnBnClickedButton1()
    35. {
    36.         // TODO: 在此添加控件通知处理程序代码
    37.         srand((unsigned)time(NULL)*10);

    38.         unsigned int  i = 0;
    39.         unsigned  char  regcode[19] = {0};
    40.         for (i=0;i<10;i++)
    41.         {
    42.                 regcode[i] = rand() % (0x3A-0x30)  + 0x30;
    43.         }

    44.         mECX =  regcode[1] + (regcode[2] + regcode[1]*2 + regcode[2])*4;
    45.         jisuan();
    46.         regcode[10] = mEAX;

    47.         mECX = (regcode[0] + regcode[6])*5 + regcode[6]*3 + regcode[1];
    48.         jisuan();
    49.         regcode[11] = mEAX;

    50.         mECX = (regcode[6] + regcode[2])*3 + regcode[0]*5 + regcode[2]*2;
    51.         jisuan();
    52.         regcode[12] = mEAX;

    53.         mECX = regcode[2]*3 + (regcode[1]*8 - regcode[1]) + regcode[2]*8 + regcode[0];
    54.         jisuan();
    55.         regcode[13] = mEAX;

    56.         regcode[14] = '-';

    57.         mECX = regcode[7]*7 + (regcode[8]*3 + regcode[2]*2 + regcode[2])*2;
    58.         jisuan();
    59.         regcode[15] = mEAX;

    60.         mECX = regcode[1]*3 + (regcode[1] + regcode[5]*4 + regcode[6])*2;
    61.         jisuan();
    62.         regcode[16] = mEAX;

    63.         mECX = regcode[8]*5 + (regcode[8] + regcode[3])*3*2 + regcode[2];
    64.         jisuan();
    65.         regcode[17] = mEAX;

    66.         mECX = regcode[5] + (regcode[7]*3 + regcode[7] + regcode[3])*2;
    67.         jisuan();
    68.         regcode[18] = mEAX;

    69.         CString  strReg;
    70.         for (i=0 ; i<sizeof(regcode)/sizeof(char) ; i++)
    71.         {
    72.                 strReg += regcode[i] ;
    73.         }

    74.         SetDlgItemText(IDC_REGCODE,strReg);
    75. }
    复制代码
    测试用注册码:
    77299805375490-7934 (用注册机生成)

    二、神奇 pyg.dll 应用
    1. BOOL NsHookDaPai::NsHookData()
    2. {
    3.         PWCHAR szHookData[] = {
    4.                 L"8B 08 8B 11 50 8B 42 04 FF D0 33 C0 8B 4C 24 44",
    5.                 L"8B 08 8B 11 50 8B 42 04 FF D0 B0 01 8B 4C 24 44"
    6.         };

    7.         NsHookWithSignFromModule( szHookData, ARRAYSIZE(szHookData) );

    8.         return TRUE;
    9. }
    复制代码
    仅为作记录用
    pyg.rar (71.41 KB, 下载次数: 77)   在 xp 下测试通过。

    评分

    参与人数 4威望 +60 飘云币 +56 收起 理由
    zbx91 + 4
    lucky_789 + 8 + 8 赞一个!立即就派用场了
    飞天 + 8 + 8 很给力!
    Nisy + 40 + 40 赞~! 建议大家将分析文章和补丁分开发布。

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-11 12:41
  • 签到天数: 161 天

    [LV.7]常住居民III

    发表于 2014-11-11 11:45:25 | 显示全部楼层
    支持兄弟!十分地给力!!!
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2021-2-13 21:10
  • 签到天数: 54 天

    [LV.5]常住居民I

    发表于 2014-11-11 18:20:20 | 显示全部楼层
    虽然看不懂,还是支持一下
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2019-3-25 06:30
  • 签到天数: 1096 天

    [LV.10]以坛为家III

    发表于 2014-11-11 20:45:08 | 显示全部楼层
    破文写得很好,分析也很清楚透彻。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-5-11 14:02
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2014-11-17 20:48:23 | 显示全部楼层
    赞一个了,感谢分享了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-11-25 20:24:53 | 显示全部楼层
    good,太棒了。
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2019-3-1 23:51
  • 签到天数: 559 天

    [LV.9]以坛为家II

    发表于 2015-5-9 10:28:00 | 显示全部楼层
    神奇 pyg.dll 应用?完全没看懂。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 1637 天

    [LV.Master]伴坛终老

    发表于 2016-4-22 21:31:00 | 显示全部楼层
    破文写得很好,分析也很清楚透彻。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-26 21:44
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-7-15 08:26:13 | 显示全部楼层
    #在这里快速回复#破文写得很好
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-26 21:44
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-7-15 08:26:33 | 显示全部楼层
    破文写得很好
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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