飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1657|回复: 0

申请加入[PYG]破文3

[复制链接]

该用户从未签到

发表于 2005-9-3 17:31:13 | 显示全部楼层 |阅读模式
【破文标题】 <<Access 2000解密v2.1.1>>算法分析+注册机

【使用工具】 PEiD,P32Dasm1.6,WinXP

【破文作者】 N-klen[BCG]

【软件名称】 Access 2000解密v2.1.1

【编译方式】 P-CODE

【软件简介】 提取Access 2000密码的东东

破解过程】
用P32Dasm载入!
先找到关键的比较部分:

  1. Form1 4.2 Command1.Click() ----
  2. 000057A4:  08   FLdPr param_8
  3. 000057A7:  89   MemLdI2
  4. 000057AA:  F4   LitI2_Byte: 5 0x5
  5. 000057AC:  DA   GtI2 >
  6. 000057AD:  1C   BranchF   000057E3
  7. 000057B0:  27   LitVar_Missing
  8. 000057B3:  27   LitVar_Missing
  9. 000057B6:  3A   LitVarStr: "注???
  10. 000057BB:  4E   FStVarCopyObj var_C4
  11. 000057BE:  04   FLdRfVar var_C4
  12. 000057C1:  F5   LitI4: 0 0x0
  13. 000057C6:  3A   LitVarStr: "您???豬豑?用户!"
  14. 000057CB:  4E   FStVarCopyObj var_A4
  15. 000057CE:  04   FLdRfVar var_A4
  16. 000057D1:  0A   ImpAdCallFPR4 MsgBox()
  17. 000057D6:  36   FFreeVar var_A4 var_C4 var_E4 var_104
  18. 000057E1:  FCC8 End End
  19. 000057E3: loc_000057AD                           ;此处是关键
  20. 000057E3:  27   LitVar_Missing
  21. 000057E6:  0B   ImpAdCallI2 FreeFile()
  22. 000057EB:  08   FLdPr param_8
  23. 000057EE:  8E   MemStI2
  24. 000057F1:  35   FFree1Var var_A4
  25. 000057F4:  76   ImpAdLdI4
  26. 000057F7:  08   FLdPr param_8
  27. 000057FA:  89   MemLdI2
  28. 000057FD:  F4   LitI2_Byte: 255 0xFF (True)
  29. 000057FF:  FE5D OpenFile
  30. 00005803:  08   FLdPr param_8
  31. 00005806:  89   MemLdI2
  32. 00005809:  F5   LitI4: 1314 0x522
  33. 0000580E:  08   FLdPr param_8
  34. 00005811:  06   MemLdRfVar param_34
  35. 00005814:  F5   LitI4: 4 0x4
  36. 00005819:  FC76 GetRec4
  37. 0000581B:  04   FLdRfVar var_10C
  38. 0000581E:  21   FLdPrThis
  39. 0000581F:  0F   VCallAd
  40. 00005822:  19   FStAdFunc var_108
  41. 00005825:  08   FLdPr var_108
  42. 00005828:  0D   VCallHresult TextBox.Get_Text();取文本框的数据
  43. 0000582D:  6C   ILdRf var_10C
  44. 00005830:  08   FLdPr param_8
  45. 00005833:  8A   MemLdStr
  46. 00005836:  F5   LitI4: 987654321 0x3ADE68B1;将取得的数据XOR987654321
  47. 0000583B:  FB13 XorI4
  48. 0000583D:  FBFE CStrI4
  49. 0000583F:  23   FStStrNoPop var_110
  50. 00005842:  FB30 EqStr =                 ;处理后的数据比较
  51. 00005844:  32   FFreeStr var_10C var_110
  52. 0000584B:  1A   FFree1Ad var_108
  53. 0000584E:  1C   BranchF   000058A5   ;不相等则跳走,出错!
  54. 00005851:  F4   LitI2_Byte: 255 0xFF (True)
  55. 00005853:  7A   ImpAdStI2 param_6
  56. 00005856:  27   LitVar_Missing
  57. 00005859:  25   PopAdLdVar
  58. 0000585A:  27   LitVar_Missing
  59. 0000585D:  25   PopAdLdVar
  60. 0000585E:  05   ImpAdLdRf
  61. 00005861:  24   NewIfNullPr
  62. 00005864:  0D   VCallHresult Form._Show(Modal As Variant, OwnerForm As Variant)
  63. 00005869:  05   ImpAdLdRf
  64. 0000586C:  24   NewIfNullPr
  65. 0000586F:  0D   VCallHresult Form._Hide()
  66. 00005874:  F4   LitI2_Byte: 0 0x0 (False)
  67. 00005876:  05   ImpAdLdRf
  68. 00005879:  24   NewIfNullPr
  69. 0000587C:  0F   VCallAd
  70. 0000587F:  19   FStAdFunc var_108
  71. 00005882:  08   FLdPr var_108
  72. 00005885:  0D   VCallHresult CommandButton.Set_Visible()
  73. 0000588A:  1A   FFree1Ad var_108
  74. 0000588D:  08   FLdPr param_8
  75. 00005890:  89   MemLdI2
  76. 00005893:  F5   LitI4: 1024 0x400
  77. 00005898:  05   ImpAdLdRf
  78. 0000589B:  F5   LitI4: 2 0x2
  79. 000058A0:  FC78 PutRec4
  80. 000058A2:  1E   Branch   000058D6
  81. 000058A5: loc_0000584E
  82. 000058A5:  27   LitVar_Missing
  83. 000058A8:  27   LitVar_Missing
  84. 000058AB:  3A   LitVarStr: "注???
  85. 000058B0:  4E   FStVarCopyObj var_C4
  86. 000058B3:  04   FLdRfVar var_C4
  87. 000058B6:  F5   LitI4: 0 0x0
  88. 000058BB:  3A   LitVarStr: "注册册ā??误???????!"
  89. 000058C0:  4E   FStVarCopyObj var_A4
  90. 000058C3:  04   FLdRfVar var_A4
  91. 000058C6:  0A   ImpAdCallFPR4 MsgBox()
  92. 000058CB:  36   FFreeVar var_A4 var_C4 var_E4 var_104
  93. 000058D6: loc_000058A2
  94. 000058D6:  08   FLdPr param_8
  95. 000058D9:  89   MemLdI2
  96. 000058DC:  FD3D Close
  97. 000058DE:  08   FLdPr param_8
  98. 000058E1:  89   MemLdI2
  99. 000058E4:  F4   LitI2_Byte: 1 0x1
  100. 000058E6:  A9   AddI2 +
  101. 000058E7:  08   FLdPr param_8
  102. 000058EA:  8E   MemStI2
  103. 000058ED:  13   ExitProcHresult

  104. 再找机器码处理部分!

  105. Form1 4.4 Form.Load() ----
  106. 000051B0:  1B   LitStr: "c:"
  107. 000051B3:  43   FStStrCopy var_8C
  108. 000051B6:  F5   LitI4: 255 0xFF
  109. 000051BB:  0B   ImpAdCallI2 Space$()
  110. 000051C0:  31   FStStr var_90
  111. 000051C3:  F5   LitI4: 255 0xFF
  112. 000051C8:  0B   ImpAdCallI2 Space$()
  113. 000051CD:  31   FStStr var_A0
  114. 000051D0:  6C   ILdRf var_A0
  115. 000051D3:  4A   FnLenStr Len()
  116. 000051D4:  6C   ILdRf var_A0
  117. 000051D7:  04   FLdRfVar var_D4
  118. 000051DA:  34   CStr2Ansi
  119. 000051DB:  6C   ILdRf var_D4
  120. 000051DE:  04   FLdRfVar var_B4
  121. 000051E1:  FC22 CI4Var
  122. 000051E3:  59   PopTmpLdAdStr var_C0
  123. 000051E6:  04   FLdRfVar var_98
  124. 000051E9:  04   FLdRfVar var_94
  125. 000051EC:  6C   ILdRf var_90
  126. 000051EF:  4A   FnLenStr Len()
  127. 000051F0:  6C   ILdRf var_90
  128. 000051F3:  04   FLdRfVar var_BC
  129. 000051F6:  34   CStr2Ansi
  130. 000051F7:  6C   ILdRf var_BC
  131. 000051FA:  6C   ILdRf var_8C
  132. 000051FD:  04   FLdRfVar var_B8
  133. 00005200:  34   CStr2Ansi
  134. 00005201:  6C   ILdRf var_B8
  135. 00005204:  5E   ImpAdCallI4 KERNEL32.GetVolumeInformationA  ;取WINDOWS版本号
  136. 00005209:  71   FStR4 var_D8
  137. 0000520C:  3C   SetLastSystemError
  138. 0000520D:  6C   ILdRf var_B8
  139. 00005210:  04   FLdRfVar var_8C
  140. 00005213:  FC58 CStr2Uni
  141. 00005215:  6C   ILdRf var_BC
  142. 00005218:  04   FLdRfVar var_90
  143. 0000521B:  FC58 CStr2Uni
  144. 0000521D:  6C   ILdRf var_C0
  145. 00005220:  FD69 CVarI4 var_D0
  146. 00005224:  FD00 FStVarCopy
  147. 00005228:  6C   ILdRf var_D4
  148. 0000522B:  04   FLdRfVar var_A0
  149. 0000522E:  FC58 CStr2Uni
  150. 00005230:  6C   ILdRf var_D8
  151. 00005233:  71   FStR4 var_88
  152. 00005236:  32   FFreeStr var_B8 var_BC var_D4
  153. 0000523F:  6C   ILdRf var_94
  154. 00005242:  FBFE CStrI4
  155. 00005244:  23   FStStrNoPop var_B8
  156. 00005247:  21   FLdPrThis
  157. 00005248:  0F   VCallAd
  158. 0000524B:  19   FStAdFunc var_DC
  159. 0000524E:  08   FLdPr var_DC
  160. 00005251:  0D   VCallHresult TextBox.Set_Text()  ;以上代码是取得操作系统的版本号得到机器码
  161. 00005256:  2F   FFree1Str var_B8              ;再去掉点和空格
  162. 00005259:  1A   FFree1Ad var_DC                      ;将版本号放到机器码文本框
  163. 0000525C:  6C   ILdRf var_94
  164. 0000525F:  F5   LitI4: 123456789 0x75BCD15       ;机器码XOR123456789
  165. 00005264:  FB13 XorI4
  166. 00005266:  F5   LitI4: 888888888 0x34FB5E38      ;再XOR888888888
  167. 0000526B:  FB13 XorI4
  168. 0000526D:  08   FLdPr param_8
  169. 00005270:  8F   MemStI4
  170. 00005273:  27   LitVar_Missing
  171. 00005276:  0B   ImpAdCallI2 FreeFile()
  172. 0000527B:  08   FLdPr param_8
  173. 0000527E:  8E   MemStI2
  174. 00005281:  35   FFree1Var var_EC
  175. 00005284:  76   ImpAdLdI4
  176. 00005287:  08   FLdPr param_8
  177. 0000528A:  89   MemLdI2
  178. 0000528D:  F4   LitI2_Byte: 255 0xFF (True)
  179. 0000528F:  FE5D OpenFile
  180. 00005293:  08   FLdPr param_8
  181. 00005296:  89   MemLdI2
  182. 00005299:  F5   LitI4: 1314 0x522
  183. 0000529E:  08   FLdPr param_8
  184. 000052A1:  06   MemLdRfVar param_34
  185. 000052A4:  F5   LitI4: 4 0x4
  186. 000052A9:  FC78 PutRec4
  187. 000052AB:  08   FLdPr param_8
  188. 000052AE:  89   MemLdI2
  189. 000052B1:  FD3D Close
  190. 000052B3:  13   ExitProcHresult
复制代码

【写注册机】
因为XOR算法是可逆的,所以注册算法就是:
机器码 XOR 123456789 XOR 888888888 XOR 987654321
很简单!
Private Sub Command1_Click()
Dim a, b, c
a = Text1.Text
If Len(a) > 0 Then
a = a Xor 123456789
a = a Xor 888888888
a = a Xor 987654321
b = CStr(a)
Text2.Text = b
Else
MsgBox "请输入机器码"
End If
End Sub
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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