飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5296|回复: 10

[原创] [P-CODE]cscg-crackme 0.1 算法分析

[复制链接]
  • TA的每日心情
    难过
    2024-4-22 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2007-6-17 09:06:10 | 显示全部楼层 |阅读模式
    【破文标题】[P-CODE]cscg-crackme 0.1 算法分析
    【破文作者】飘云[PYG]
    【作者邮箱】piaoyun04@163.com
    【作者主页】BBS.CHINAPYG.COM
    破解工具】Peid0.94,OllyDbg,VB
    【破解平台】Win9x/NT/2000/XP
    【软件名称】cscg-crackme 0.1
    【软件大小】15kb
    【原版下载】https://www.chinapyg.com/viewthread.php?tid=7727
    【保护方式】用户名+序列号
    【软件简介】cscg-crackme 0.1
    VB P-CODE方式编译
    【破解声明】我是一只菜菜鸟,偶得一点心得,愿与大家分享 !^_^
    ------------------------------------------------------------------------
    【破解过程】
    1. :00405778  0878FF                          FLdPr                      ;[SR]=[LOCAL_0088]
    2. ***********Reference To:[propget]TextBox.Text                                                        //★用户名输入框
    3.                               |
    4. :0040577B  0DA0000000                      VCallHresult               ;Call ptr_00402CB4
    5. :00405780  2834FF0100                      LitVarI2                   ;PushVarInteger 0001                 //★参数:1
    6. :00405785  F505000000                      LitI4                      ;Push 00000005                       //★参数:5
    7. :0040578A  3E74FF                          FLdZeroAd                  ;Push DWORD [LOCAL_008C]; [LOCAL_008C]=0
    8. :0040578D  4654FF                          CVarStr                    ;
    9. :00405790  0414FF                          FLdRfVar                   ;Push LOCAL_00EC
    10. **********Reference To->msvbvm60.rtcMidCharVar                                                       //★截取用户名第5位
    11.                                |
    12. :00405793  0A04001000                      ImpAdCallFPR4              ;Call ptr_00401056; check stack 0010; Push EAX
    13. :00405798  0414FF                          FLdRfVar                   ;Push LOCAL_00EC
    14. :0040579B  FCF6C4FE                        FStVar                     ;
    15. :0040579F  1A78FF                          FFree1Ad                   ;Push [LOCAL_0088]; Call [[[LOCAL_0088]]+8]; [[LOCAL_0088]]=0
    16. :004057A2  36040054FF34FF                  FFreeVar                   ;Free 0004/2 variants
    17. :004057A9  04C4FE                          FLdRfVar                   ;Push LOCAL_013C
    18. ******Possible String Ref To->""
    19.                                |
    20. :004057AC  3A64FF0500                      LitVarStr                  ;PushVarString ptr_00402CF0
    21. :004057B1  5D                              HardType                   ;
    22. :004057B2  FB33                            EqVarBool                  ;
    23. :004057B4  1C5C01                          BranchF                    ;If Pop=0 then ESI=00405808         //★是否为空~~
    24. ******Possible String Ref To->""                                                                    //★这里就间接说明了用户

    25. 名至少为5位!
    26. .
    27. .
    28. .
    29. .
    30. .
    31. .
    32. (省略部分代码)
    33. :00405812  0878FF                          FLdPr                      ;[SR]=[LOCAL_0088]
    34. ***********Reference To:[propget]TextBox.Text                                          //★注册码输入框
    35.                               |
    36. :00405815  0DA0000000                      VCallHresult               ;Call ptr_00402CB4      
    37. :0040581A  2834FF0400                      LitVarI2                   ;PushVarInteger 0004   //★参数:4
    38. :0040581F  F501000000                      LitI4                      ;Push 00000001         //★参数:1
    39. :00405824  3E74FF                          FLdZeroAd                  ;Push DWORD [LOCAL_008C]; [LOCAL_008C]=0
    40. :00405827  4654FF                          CVarStr                    ;
    41. :0040582A  0414FF                          FLdRfVar                   ;Push LOCAL_00EC
    42. **********Reference To->msvbvm60.rtcMidCharVar                                         //★从第1位开始截取4位
    43.                                |
    44. :0040582D  0A04001000                      ImpAdCallFPR4              ;Call ptr_00401056; check stack 0010; Push EAX
    45. :00405832  0414FF                          FLdRfVar                   ;Push LOCAL_00EC
    46. :00405835  FCF6A4FE                        FStVar                     ;
    47. :00405839  1A78FF                          FFree1Ad                   ;Push [LOCAL_0088]; Call [[[LOCAL_0088]]+8]; [[LOCAL_0088]]=0
    48. :0040583C  36040054FF34FF                  FFreeVar                   ;Free 0004/2 variants
    49. :00405843  0474FF                          FLdRfVar                   ;Push LOCAL_008C
    50. :00405846  21                              FLdPrThis                  ;[SR]=[stack2]
    51. :00405847  0F0C03                          VCallAd                    ;Return the control index 05
    52. :0040584A  1978FF                          FStAdFunc                  ;
    53. :0040584D  0878FF                          FLdPr                      ;[SR]=[LOCAL_0088]
    54. ***********Reference To:[propget]TextBox.Text                                          //★注册码输入框
    55.                               |
    56. :00405850  0DA0000000                      VCallHresult               ;Call ptr_00402CB4
    57. :00405855  F506000000                      LitI4                      ;Push 00000006         //★参数:6
    58. :0040585A  3E74FF                          FLdZeroAd                  ;Push DWORD [LOCAL_008C]; [LOCAL_008C]=0
    59. :0040585D  4654FF                          CVarStr                    ;
    60. :00405860  0434FF                          FLdRfVar                   ;Push LOCAL_00CC
    61. **********Reference To->msvbvm60.rtcRightCharVar                                       //★从右边截取6位
    62.                                |
    63. :00405863  0A07000C00                      ImpAdCallFPR4              ;Call ptr_0040105C; check stack 000C; Push EAX
    64. :00405868  0434FF                          FLdRfVar                   ;Push LOCAL_00CC
    65. :0040586B  FCF694FE                        FStVar                     ;
    66. :0040586F  1A78FF                          FFree1Ad                   ;Push [LOCAL_0088]; Call [[[LOCAL_0088]]+8]; [[LOCAL_0088]]=0
    67. :00405872  3554FF                          FFree1Var                  ;Free LOCAL_00AC
    68. :00405875  04A4FE                          FLdRfVar                   ;Push LOCAL_015C
    69. :00405878  0494FE                          FLdRfVar                   ;Push LOCAL_016C
    70. :0040587B  FBEF54FF                        ConcatVar                  ;                      //★连接起来
    71. :0040587F  FCF684FE                        FStVar                     ;
    72. :00405883  0484FE                          FLdRfVar                   ;Push LOCAL_017C
    73. ******Possible String Ref To->"csks[cscg]"                                             //★特征串
    74.                                |
    75. :00405886  3A64FF0800                      LitVarStr                  ;PushVarString ptr_00402D14
    76. :0040588B  5D                              HardType                   ;
    77. :0040588C  FB33                            EqVarBool                  ;
    78. :0040588E  1CA105                          BranchF                    ;If Pop=0 then ESI=00405C4D  //★上面连接之后的字符串是否和特

    79. 征串相同~~~
    80. :00405891  0474FF                          FLdRfVar                   ;Push LOCAL_008C
    81. :00405894  21                              FLdPrThis                  ;[SR]=[stack2]
    82. :00405895  0F1003                          VCallAd                    ;Return the control index 06
    83. :00405898  1978FF                          FStAdFunc                  ;
    84. :0040589B  0878FF                          FLdPr                      ;[SR]=[LOCAL_0088]
    85. ***********Reference To:[propget]TextBox.Text                                                 //★用户名输入框
    86.                               |
    87. :0040589E  0DA0000000                      VCallHresult               ;Call ptr_00402CB4
    88. :004058A3  F503000000                      LitI4                      ;Push 00000003                //★参数:3
    89. :004058A8  3E74FF                          FLdZeroAd                  ;Push DWORD [LOCAL_008C]; [LOCAL_008C]=0
    90. :004058AB  4654FF                          CVarStr                    ;
    91. :004058AE  0434FF                          FLdRfVar                   ;Push LOCAL_00CC
    92. **********Reference To->msvbvm60.rtcRightCharVar                                              //★从用户名右边截取3位
    93.                                |
    94. :004058B1  0A07000C00                      ImpAdCallFPR4              ;Call ptr_0040105C; check stack 000C; Push EAX
    95. :004058B6  0434FF                          FLdRfVar                   ;Push LOCAL_00CC
    96. :004058B9  FCF674FE                        FStVar                     ;
    97. :004058BD  1A78FF                          FFree1Ad                   ;Push [LOCAL_0088]; Call [[[LOCAL_0088]]+8]; [[LOCAL_0088]]=0
    98. :004058C0  3554FF                          FFree1Var                  ;Free LOCAL_00AC
    99. :004058C3  0474FF                          FLdRfVar                   ;Push LOCAL_008C
    100. :004058C6  21                              FLdPrThis                  ;[SR]=[stack2]
    101. :004058C7  0F1003                          VCallAd                    ;Return the control index 06
    102. :004058CA  1978FF                          FStAdFunc                  ;
    103. :004058CD  0878FF                          FLdPr                      ;[SR]=[LOCAL_0088]
    104. ***********Reference To:[propget]TextBox.Text                                                 //★用户名输入框
    105.                               |
    106. :004058D0  0DA0000000                      VCallHresult               ;Call ptr_00402CB4
    107. :004058D5  2834FF0300                      LitVarI2                   ;PushVarInteger 0003          //★参数:3
    108. :004058DA  F501000000                      LitI4                      ;Push 00000001                //★参数:1
    109. :004058DF  3E74FF                          FLdZeroAd                  ;Push DWORD [LOCAL_008C]; [LOCAL_008C]=0
    110. :004058E2  4654FF                          CVarStr                    ;
    111. :004058E5  0414FF                          FLdRfVar                   ;Push LOCAL_00EC
    112. **********Reference To->msvbvm60.rtcMidCharVar                                                //★从用户名第1位开始取3位
    113.                                |
    114. :004058E8  0A04001000                      ImpAdCallFPR4              ;Call ptr_00401056; check stack 0010; Push EAX
    115. :004058ED  0414FF                          FLdRfVar                   ;Push LOCAL_00EC
    116. :004058F0  FCF664FE                        FStVar                     ;
    117. :004058F4  1A78FF                          FFree1Ad                   ;Push [LOCAL_0088]; Call [[[LOCAL_0088]]+8]; [[LOCAL_0088]]=0
    118. :004058F7  36040054FF34FF                  FFreeVar                   ;Free 0004/2 variants
    119. :004058FE  0474FE                          FLdRfVar                   ;Push LOCAL_018C
    120. ******Possible String Ref To->"csks[cscg]"                                                    //★特征串
    121.                                |
    122. :00405901  3A64FF0800                      LitVarStr                  ;PushVarString ptr_00402D14
    123. :00405906  FBEF54FF                        ConcatVar                  ;                             //★连接
    124. :0040590A  0464FE                          FLdRfVar                   ;Push LOCAL_019C
    125. :0040590D  FBEF34FF                        ConcatVar                  ;                             //★连接
    126. :00405911  0474FF                          FLdRfVar                   ;Push LOCAL_008C              
    127. :00405914  21                              FLdPrThis                  ;[SR]=[stack2]
    128. :00405915  0F1003                          VCallAd                    ;Return the control index 06
    129. :00405918  1978FF                          FStAdFunc                  ;
    130. :0040591B  0878FF                          FLdPr                      ;[SR]=[LOCAL_0088]
    131. ***********Reference To:[propget]TextBox.Text                                                 //★用户名输入框            
    132.                               |
    133. :0040591E  0DA0000000                      VCallHresult               ;Call ptr_00402CB4
    134. :00405923  3E74FF                          FLdZeroAd                  ;Push DWORD [LOCAL_008C]; [LOCAL_008C]=0
    135. :00405926  4614FF                          CVarStr                    ;//★和上面的连接之后构成新用户名
    136. :00405929  FBEFF4FE                        ConcatVar                  ;
    137. :0040592D  FCF654FE                        FStVar                     ;
    138. :00405931  1A78FF                          FFree1Ad                   ;Push [LOCAL_0088]; Call [[[LOCAL_0088]]+8]; [[LOCAL_0088]]=0
    139. :00405934  36060054FF34FF14                FFreeVar                   ;Free 0006/2 variants
    140. :0040593D  0454FE                          FLdRfVar                   ;Push LOCAL_01AC
    141. :00405940  FBEB54FF                        FnLenVar                   ;vbaLenVar          //★取新用户名长度
    142. :00405944  FCF644FE                        FStVar                     ;
    143. :00405948  F400                            LitI2_Byte                 ;Push 00            //★初始化 0
    144. :0040594A  703EFE                          FStI2                      ;Pop WORD [LOCAL_01C2]
    145. :0040594D  0454FE                          FLdRfVar                   ;Push LOCAL_01AC
    146. :00405950  FC02                            CStrVar                    ;vbaStrVarCopy
    147. :00405952  3140FE                          FStStr                     ;SysFreeString [LOCAL_01C0]; [LOCAL_01C0]=Pop
    148. :00405955  2824FF0100                      LitVarI2                   ;PushVarInteger 0001
    149. :0040595A  042CFE                          FLdRfVar                   ;Push LOCAL_01D4
    150. :0040595D  6C40FE                          ILdRf                      ;Push DWORD [LOCAL_01C0]
    151. :00405960  4A                              FnLenStr                   ;vbaLenBstr
    152. :00405961  FD6944FF                        CVarI4                     ;
    153. :00405965  FE680CFEED02                    ForVar                     ;                  //★for...(next)
    154. :0040596B  6B3EFE                          FLdI2                      ;Push WORD [LOCAL_01C2]
    155. :0040596E  2754FF                          LitVar                     ;PushVar LOCAL_00AC
    156. :00405971  042CFE                          FLdRfVar                   ;Push LOCAL_01D4
    157. :00405974  FC22                            CI4Var                     ;vbaI4Var
    158. :00405976  6C40FE                          ILdRf                      ;Push DWORD [LOCAL_01C0]
    159. **********Reference To->msvbvm60.rtcMidCharBstr
    160.                                |
    161. :00405979  0B09000C00                      ImpAdCallI2                ;Call ptr_00401062; check stack 000C; Push EAX
    162. :0040597E  2374FF                          FStStrNoPop                ;SysFreeString [LOCAL_008C]; [LOCAL_008C]=[stack]
    163. **********Reference To->msvbvm60.rtcAnsiValueBstr
    164.                                |
    165. :00405981  0B0A000400                      ImpAdCallI2                ;Call ptr_00401068; check stack 0004; Push EAX
    166. :00405986  A9                              AddI2                      ;                  //★累加新用户名ASCII
    167. :00405987  703EFE                          FStI2                      ;Pop WORD [LOCAL_01C2]
    168. :0040598A  2F74FF                          FFree1Str                  ;SysFreeString [LOCAL_008C]; [LOCAL_008C]=0
    169. :0040598D  3554FF                          FFree1Var                  ;Free LOCAL_00AC
    170. :00405990  042CFE                          FLdRfVar                   ;Push LOCAL_01D4
    171. :00405993  FE7E0CFEBF02                    NextStepVar                ;                  //★(for)...next
    172. :00405999  2854FF0100                      LitVarI2                   ;PushVarInteger 0001   //★参数:1
    173. :0040599E  F503000000                      LitI4                      ;Push 00000003         //★参数:3
    174. :004059A3  043EFE                          FLdRfVar                   ;Push LOCAL_01C2      
    175. :004059A6  4D64FF0240                      CVarRef                    ;
    176. :004059AB  0434FF                          FLdRfVar                   ;Push LOCAL_00CC
    177. **********Reference To->msvbvm60.rtcMidCharVar                                         //★取累加和中第3位字符
    178.                                |                                                       //下面就是一个selest case了~~
    179. :004059AE  0A04001000                      ImpAdCallFPR4              ;Call ptr_00401056; check stack 0010; Push EAX
    180. :004059B3  0434FF                          FLdRfVar                   ;Push LOCAL_00CC
    181. :004059B6  FCF6FCFD                        FStVar                     ;
    182. :004059BA  3554FF                          FFree1Var                  ;Free LOCAL_00AC
    183. :004059BD  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    184. :004059C0  2864FF0100                      LitVarI2                   ;PushVarInteger 0001
    185. :004059C5  5D                              HardType                   ;
    186. :004059C6  FB33                            EqVarBool                  ;
    187. :004059C8  1C2B03                          BranchF                    ;If Pop=0 then ESI=004059D7
    188. ******Possible String Ref To->"["
    189.                                |
    190. :004059CB  3A64FF0B00                      LitVarStr                  ;PushVarString ptr_00402D30
    191. :004059D0  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    192. :004059D4  1E1504                          Branch                     ;ESI=00405AC1
    193. :004059D7  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    194. :004059DA  2864FF0200                      LitVarI2                   ;PushVarInteger 0002
    195. :004059DF  5D                              HardType                   ;
    196. :004059E0  FB33                            EqVarBool                  ;
    197. :004059E2  1C4503                          BranchF                    ;If Pop=0 then ESI=004059F1
    198. ******Possible String Ref To->"中"
    199.                                |
    200. :004059E5  3A64FF0C00                      LitVarStr                  ;PushVarString ptr_00402D38
    201. :004059EA  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    202. :004059EE  1E1504                          Branch                     ;ESI=00405AC1
    203. :004059F1  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    204. :004059F4  2864FF0300                      LitVarI2                   ;PushVarInteger 0003
    205. :004059F9  5D                              HardType                   ;
    206. :004059FA  FB33                            EqVarBool                  ;
    207. :004059FC  1C5F03                          BranchF                    ;If Pop=0 then ESI=00405A0B
    208. ******Possible String Ref To->"华"
    209.                                |
    210. :004059FF  3A64FF0D00                      LitVarStr                  ;PushVarString ptr_00402D40
    211. :00405A04  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    212. :00405A08  1E1504                          Branch                     ;ESI=00405AC1
    213. :00405A0B  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    214. :00405A0E  2864FF0400                      LitVarI2                   ;PushVarInteger 0004
    215. :00405A13  5D                              HardType                   ;
    216. :00405A14  FB33                            EqVarBool                  ;
    217. :00405A16  1C7903                          BranchF                    ;If Pop=0 then ESI=00405A25
    218. ******Possible String Ref To->"软"
    219.                                |
    220. :00405A19  3A64FF0E00                      LitVarStr                  ;PushVarString ptr_00402D48
    221. :00405A1E  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    222. :00405A22  1E1504                          Branch                     ;ESI=00405AC1
    223. :00405A25  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    224. :00405A28  2864FF0500                      LitVarI2                   ;PushVarInteger 0005
    225. :00405A2D  5D                              HardType                   ;
    226. :00405A2E  FB33                            EqVarBool                  ;
    227. :00405A30  1C9303                          BranchF                    ;If Pop=0 then ESI=00405A3F
    228. ******Possible String Ref To->"件"
    229.                                |
    230. :00405A33  3A64FF0F00                      LitVarStr                  ;PushVarString ptr_00402D50
    231. :00405A38  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    232. :00405A3C  1E1504                          Branch                     ;ESI=00405AC1
    233. :00405A3F  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    234. :00405A42  2864FF0600                      LitVarI2                   ;PushVarInteger 0006
    235. :00405A47  5D                              HardType                   ;
    236. :00405A48  FB33                            EqVarBool                  ;
    237. :00405A4A  1CAD03                          BranchF                    ;If Pop=0 then ESI=00405A59
    238. ******Possible String Ref To->"解"
    239.                                |
    240. :00405A4D  3A64FF1000                      LitVarStr                  ;PushVarString ptr_00402D58
    241. :00405A52  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    242. :00405A56  1E1504                          Branch                     ;ESI=00405AC1
    243. :00405A59  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    244. :00405A5C  2864FF0700                      LitVarI2                   ;PushVarInteger 0007
    245. :00405A61  5D                              HardType                   ;
    246. :00405A62  FB33                            EqVarBool                  ;
    247. :00405A64  1CC703                          BranchF                    ;If Pop=0 then ESI=00405A73
    248. ******Possible String Ref To->"密"
    249.                                |
    250. :00405A67  3A64FF1100                      LitVarStr                  ;PushVarString ptr_00402D60
    251. :00405A6C  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    252. :00405A70  1E1504                          Branch                     ;ESI=00405AC1
    253. :00405A73  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    254. :00405A76  2864FF0800                      LitVarI2                   ;PushVarInteger 0008
    255. :00405A7B  5D                              HardType                   ;
    256. :00405A7C  FB33                            EqVarBool                  ;
    257. :00405A7E  1CE103                          BranchF                    ;If Pop=0 then ESI=00405A8D
    258. ******Possible String Ref To->"同"
    259.                                |
    260. :00405A81  3A64FF1200                      LitVarStr                  ;PushVarString ptr_00402D68
    261. :00405A86  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    262. :00405A8A  1E1504                          Branch                     ;ESI=00405AC1
    263. :00405A8D  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    264. :00405A90  2864FF0900                      LitVarI2                   ;PushVarInteger 0009
    265. :00405A95  5D                              HardType                   ;
    266. :00405A96  FB33                            EqVarBool                  ;
    267. :00405A98  1CFB03                          BranchF                    ;If Pop=0 then ESI=00405AA7
    268. ******Possible String Ref To->"盟"
    269.                                |
    270. :00405A9B  3A64FF1300                      LitVarStr                  ;PushVarString ptr_00402D70
    271. :00405AA0  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    272. :00405AA4  1E1504                          Branch                     ;ESI=00405AC1
    273. :00405AA7  04FCFD                          FLdRfVar                   ;Push LOCAL_0204
    274. :00405AAA  2864FF0000                      LitVarI2                   ;PushVarInteger 0000
    275. :00405AAF  5D                              HardType                   ;
    276. :00405AB0  FB33                            EqVarBool                  ;
    277. :00405AB2  1C1504                          BranchF                    ;If Pop=0 then ESI=00405AC1
    278. ******Possible String Ref To->"]"
    279.                                |
    280. :00405AB5  3A64FF1400                      LitVarStr                  ;PushVarString ptr_00402D78
    281. :00405ABA  FD00ECFD                        FStVarCopy                 ;[LOCAL_0214]=vbaVarCopy(Pop)
    282. :00405ABE  1E1504                          Branch                     ;ESI=00405AC1
    283. :00405AC1  6B3EFE                          FLdI2                      ;Push WORD [LOCAL_01C2]
    284. :00405AC4  F38019                          LitI2                      ;Push 1980         //★参数:1980(16进制)
    285. :00405AC7  FB12                            XorI4                      ;                  //★和累加值做异或运算
    286. :00405AC9  4464FF                          CVarI2                     ;
    287. :00405ACC  FCF6DCFD                        FStVar                     ;
    288. ******Possible String Ref To->"csks"                                               //★前特征串
    289.                                |
    290. :00405AD0  3A64FF1500                      LitVarStr                  ;PushVarString ptr_00402D80
    291. :00405AD5  04DCFD                          FLdRfVar                   ;Push LOCAL_0224
    292. :00405AD8  0444FE                          FLdRfVar                   ;Push LOCAL_01BC
    293. :00405ADB  FB9C54FF                        SubVar                     ;                  //★累加值-新用户名长度
    294. :00405ADF  FBEF34FF                        ConcatVar                  ;                  //★连接
    295. :00405AE3  04ECFD                          FLdRfVar                   ;Push LOCAL_0214
    296. :00405AE6  FBEF14FF                        ConcatVar                  ;                  //★连接
    297. :00405AEA  6B3EFE                          FLdI2                      ;Push WORD [LOCAL_01C2]
    298. :00405AED  4444FF                          CVarI2                     ;
    299. :00405AF0  0444FE                          FLdRfVar                   ;Push LOCAL_01BC
    300. :00405AF3  FB9CF4FE                        SubVar                     ;                  //★(和累加值做异或运算)的结果-新用户名长


    301. :00405AF7  04DCFD                          FLdRfVar                   ;Push LOCAL_0224
    302. :00405AFA  FB94CCFD                        AddVar                     ;                  //★上面两步的结果相加-新用户名长度
    303. :00405AFE  FBEFBCFD                        ConcatVar                  ;                 //★连接
    304. ******Possible String Ref To->"[cscg]"                                            //★后特征串
    305.                                |
    306. :00405B02  3A24FF1600                      LitVarStr                  ;PushVarString ptr_00402D90
    307. :00405B07  FBEFACFD                        ConcatVar                  ;                 //★OK,第4次连接,这里之后就是真正注册码了


    308. :00405B0B  FCF69CFD                        FStVar                     ;
    309. :00405B0F  36080034FF14FFCC                FFreeVar                   ;Free 0008/2 variants
    310. :00405B1A  2854FF0400                      LitVarI2                   ;PushVarInteger 0004
    311. :00405B1F  F50A000000                      LitI4                      ;Push 0000000A
    312. :00405B24  049CFD                          FLdRfVar                   ;Push LOCAL_0264
    313. :00405B27  0434FF                          FLdRfVar                   ;Push LOCAL_00CC
    314. .
    315. .
    316. .
    317. .
    318. .
    319. .
    320. (省略部分代码)
    复制代码
    ------------------------------------------------------------------------
    【破解总结】1.用户名至少5位

    2.name1=用户名右边3位+"csks[cscg]"+用户名左边3位+用户名   得到新用户名

    3.LenName1=新用户名长度

    4.sum=累加上面的ascii值

    5.str1=Sum转换成字符串,,由第3位决定 取 哪个字符:
          1:[
          2:中
          3:华
          4:软
          5:件
          6:解
          7:密
          8:同
          9:盟
          0:]

    6.Sum1 = Sum xor 0x1980

    7.A=Sum - LenName1

    8.B=Sum1 - LenName1

    9.C = A+B+LenName1


    10.Sn = "csks" & B & Str1 & C & "[cscg]"
    ------------------------------------------------------------------------
    注册机

    1. '为方便阅读,关键变量均和【破解总结】中的一至

    2. Dim Name, Name1 As String
    3. Dim LenName, LenName1 As Integer
    4. Dim Sum, Sum1 As Integer
    5. Dim Str1 As String
    6. Dim A, B, C As Integer
    7. Dim Sn As String
    8. Dim i As Integer


    9. Name = Text1.Text
    10. LenName = Len(Name)

    11. If Name <> "" And LenName >= 5 Then

    12.     Name1 = Right(Name, 3) & "csks[cscg]" & Left(Name, 3) & Name
    13.    
    14.     LenName1 = Len(Name1)
    15.    
    16.     For i = 1 To LenName1
    17.    
    18.         Sum = Sum + Asc(Mid(Name1, i, 1))
    19.         
    20.     Next i
    21.    
    22.     Select Case Mid(Trim(Str(Sum)), 3, 1)
    23.         Case 0
    24.             Str1 = "]"
    25.         Case 1
    26.             Str1 = "["
    27.         Case 2
    28.             Str1 = "中"
    29.         Case 3
    30.             Str1 = "华"
    31.         Case 4
    32.             Str1 = "软"
    33.         Case 5
    34.             Str1 = "件"
    35.         Case 6
    36.             Str1 = "解"
    37.         Case 7
    38.             Str1 = "密"
    39.         Case 8
    40.             Str1 = "同"
    41.         Case 9
    42.             Str1 = "盟"
    43.             
    44.     End Select
    45.    
    46.     Sum1 = Sum Xor &H1980
    47.    
    48.     A = Sum - LenName1

    49.     B = Sum1 - LenName1

    50.     C = A + B + LenName1
    51.    
    52.     Sn = "csks" & B & Str1 & C & "[cscg]"
    53.    
    54.     Text2.Text = Sn
    55.    
    56. Else
    57.    
    58.     Text2.Text = "请输入用户名!"
    59.    
    60. End If
    复制代码

    ------------------------------------------------------------------------
    【版权声明】本文纯属技术交流,转载请注明作者信息并保持文章的完整,谢谢!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-6-17 10:22:03 | 显示全部楼层
    原帖由 飘云
    【破解工具】Peid0.94,OllyDbg,VB
    ...

    一直对P-CODE比较仇视,在OD中调试让人想碰墙
    老大没用VBExplorer和VKTDEBUG吗?

    另外外界流传的飘云修改版QQ不知是否和PYG有关系,我在本论坛没有发现任何链接
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-6-17 17:55:51 | 显示全部楼层
    强悍,学习了
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-6-6 15:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-6-17 18:17:18 | 显示全部楼层
    破文写得好公整啊!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-2-17 18:27
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-8-6 11:46:13 | 显示全部楼层
    老大出手的东东,就是不同凡响,P-CODE的,老大一个静态反编就搞定了,佩服!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-6 21:55:52 | 显示全部楼层
    看了一下,发现这个算法用Delphi写不如用易语言写来的简单(我刚开始学Delphi)
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-7 20:15:49 | 显示全部楼层
    放了那么就,总算1个crackme被完整破解了。恭喜

    我的crackme 0.2试过没有???
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-8 18:17:17 | 显示全部楼层
    向老大学习.算法我还是不懂啊
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2016-4-16 08:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-8-10 21:32:54 | 显示全部楼层
    破文写得好公整啊!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-18 16:47:06 | 显示全部楼层
    这个是用什么工具分析出来的
    是用2楼的兄弟说的那个工具吗??
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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