飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5637|回复: 7

lhl-crackme简单算法分析+VB注册机源码

[复制链接]
  • TA的每日心情
    奋斗
    2016-10-21 20:30
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2006-5-22 00:53:50 | 显示全部楼层 |阅读模式

    1. 【破文标题】lhl-crackme简单算法分析+VB注册机源码
    2. 破解作者】hrbx
    3. 【作者主页】hrbx.ys168.com
    4. 【作者邮箱】[email protected]
    5. 【破解平台】WinXP
    6. 【使用工具】flyOD1.10、Peid
    7. 【破解日期】2006-05-21
    8. 【软件名称】lhl-crackme
    9. 【软件大小】28.0KB
    10. 【下载地址】见附件
    11. 【加壳方式】无
    12. 【软件简介】lhl-crackme
    13. -----------------------------------------------------------------------------------------------
    14. 【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    15. -----------------------------------------------------------------------------------------------
    16. 【破解过程】
    17. 1.查壳。用Peid扫描脱壳后的程序,显示为:Microsoft Visual Basic 5.0 / 6.0,无壳。
    18. 2.试运行。输入注册码,当注册码长度大于等于7位时弹出提示"通过第一关",但"确定"按钮仍为灰色。
    19. 3.追出算法。OD载入CrackMe,用OD的ApiBreak插件下 Point H 断点,利用粘贴的方式输入注册信息:
    20. ===================
    21. 注册码:9876543210
    22. ===================

    23. 立即中断:

    24. 77D29303     F3:A5         rep movs dword ptr es:[edi],dword ptr ds:[esi]      ; 断点在这里
    25. 77D29305     8BC8          mov ecx,eax
    26. 77D29307     83E1 03       and ecx,3
    27. 77D2930A     F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[esi]
    28. 77D2930C     E8 04F9FFFF   call USER32.77D28C15
    29. 77D29311     5F            pop edi
    30. 77D29312     5E            pop esi

    31. 中断后取消断点,F8直到返回程序领空:

    32. 004032AD    .  FF91 A00000>call dword ptr ds:[ecx+A0]
    33. 004032B3    .  3BC6        cmp eax,esi                                         ;  返回来到这里
    34. 004032B5    .  DBE2        fclex
    35. 004032B7    .  7D 12       jge short lhl-crac.004032CB

    36. 向上查找,来到004031A0处F2下断,F9运行,重新输入注册信息,中断后来到:

    37. 004031A0    > \55             push ebp                                         ;  F2在此下断,中断后F8往下走
    38. 004031A1    .  8BEC           mov ebp,esp
    39. 004031A3    .  83EC 0C        sub esp,0C

    40. .......................................................

    41.                      省略部分代码

    42. .......................................................

    43. 004032AA    .  57             push edi
    44. 004032AB    .  8B0F           mov ecx,dword ptr ds:[edi]
    45. 004032AD    .  FF91 A0000000  call dword ptr ds:[ecx+A0]
    46. 004032B3    .  3BC6           cmp eax,esi                                      ;  返回来到这里
    47. 004032B5    .  DBE2           fclex
    48. 004032B7    .  7D 12          jge short lhl-crac.004032CB
    49. 004032B9    .  68 A0000000    push 0A0
    50. 004032BE    .  68 D8254000    push lhl-crac.004025D8
    51. 004032C3    .  57             push edi
    52. 004032C4    .  50             push eax
    53. 004032C5    .  FF15 34104000  call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>
    54. 004032CB    >  8B45 A8        mov eax,dword ptr ss:[ebp-58]                    ;  假码"9876543210"
    55. 004032CE    .  50             push eax
    56. 004032CF    .  FF15 18104000  call dword ptr ds:[<&MSVBVM60.__vbaLenBstr>]     ;  获取注册码长度,EAX=A
    57. 004032D5    .  8B3D 0C104000  mov edi,dword ptr ds:[<&MSVBVM60.__vbaVarMove>]  
    58. 004032DB    .  8D95 A4FEFFFF  lea edx,dword ptr ss:[ebp-15C]
    59. 004032E1    .  8D4D DC        lea ecx,dword ptr ss:[ebp-24]
    60. 004032E4    .  8985 ACFEFFFF  mov dword ptr ss:[ebp-154],eax                   ;  注册码长度保存
    61. 004032EA    .  C785 A4FEFFFF >mov dword ptr ss:[ebp-15C],3
    62. 004032F4    .  FFD7           call edi                                         
    63. 004032F6    .  8D4D A8        lea ecx,dword ptr ss:[ebp-58]
    64. 004032F9    .  FF15 EC104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>]   
    65. 004032FF    .  8D4D 94        lea ecx,dword ptr ss:[ebp-6C]
    66. 00403302    .  FF15 F0104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>]   
    67. 00403308    .  8D4D DC        lea ecx,dword ptr ss:[ebp-24]
    68. 0040330B    .  8D95 A4FEFFFF  lea edx,dword ptr ss:[ebp-15C]
    69. 00403311    .  51             push ecx
    70. 00403312    .  52             push edx
    71. 00403313    .  C785 ACFEFFFF >mov dword ptr ss:[ebp-154],7                     ;  常数,7
    72. 0040331D    .  C785 A4FEFFFF >mov dword ptr ss:[ebp-15C],8002
    73. 00403327    .  FF15 CC104000  call dword ptr ds:[<&MSVBVM60.__vbaVarTstGe>]    ;  比较注册码长度是否大于7
    74. 0040332D    .  66:85C0        test ax,ax
    75. 00403330    .  8B03           mov eax,dword ptr ds:[ebx]
    76. 00403332    .  53             push ebx
    77. 00403333    .  0F84 70090000  je lhl-crac.00403CA9                             ;  注册码长度不大于则Over,暴破点1,Nop掉
    78. 00403339    .  FF90 00030000  call dword ptr ds:[eax+300]
    79. 0040333F    .  8D4D 94        lea ecx,dword ptr ss:[ebp-6C]
    80. 00403342    .  50             push eax
    81. 00403343    .  51             push ecx
    82. 00403344    .  FF15 40104000  call dword ptr ds:[<&MSVBVM60.__vbaObjSet>]      
    83. 0040334A    .  8B10           mov edx,dword ptr ds:[eax]
    84. 0040334C    .  8D4D A8        lea ecx,dword ptr ss:[ebp-58]
    85. 0040334F    .  51             push ecx
    86. 00403350    .  50             push eax
    87. 00403351    .  8985 10FEFFFF  mov dword ptr ss:[ebp-1F0],eax
    88. 00403357    .  FF92 A0000000  call dword ptr ds:[edx+A0]
    89. 0040335D    .  3BC6           cmp eax,esi
    90. 0040335F    .  DBE2           fclex
    91. 00403361    .  7D 18          jge short lhl-crac.0040337B
    92. 00403363    .  8B95 10FEFFFF  mov edx,dword ptr ss:[ebp-1F0]
    93. 00403369    .  68 A0000000    push 0A0
    94. 0040336E    .  68 D8254000    push lhl-crac.004025D8
    95. 00403373    .  52             push edx
    96. 00403374    .  50             push eax
    97. 00403375    .  FF15 34104000  call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>
    98. 0040337B    >  8B45 A8        mov eax,dword ptr ss:[ebp-58]                    ;  假码"9876543210"
    99. 0040337E    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    100. 00403381    .  8D4D CC        lea ecx,dword ptr ss:[ebp-34]
    101. 00403384    .  8975 A8        mov dword ptr ss:[ebp-58],esi
    102. 00403387    .  8945 8C        mov dword ptr ss:[ebp-74],eax
    103. 0040338A    .  C745 84 080000>mov dword ptr ss:[ebp-7C],8
    104. 00403391    .  FFD7           call edi
    105. 00403393    .  8D4D 94        lea ecx,dword ptr ss:[ebp-6C]
    106. 00403396    .  FF15 F0104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>]     
    107. 0040339C    .  8B35 94104000  mov esi,dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>>
    108. 004033A2    .  8D45 CC        lea eax,dword ptr ss:[ebp-34]
    109. 004033A5    .  6A 07          push 7                                           ;  常数,7
    110. 004033A7    .  8D4D A8        lea ecx,dword ptr ss:[ebp-58]
    111. 004033AA    .  50             push eax
    112. 004033AB    .  51             push ecx
    113. 004033AC    .  FFD6           call esi                                         ;  __vbaStrVarVal,注册码转为字符串
    114. 004033AE    .  50             push eax                                         ;  假码"9876543210"
    115. 004033AF    .  FF15 D0104000  call dword ptr ds:[<&MSVBVM60.#616>]             ;  rtcLeftCharBstr,取假码左边7位字符
    116. 004033B5    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    117. 004033B8    .  8D4D BC        lea ecx,dword ptr ss:[ebp-44]
    118. 004033BB    .  8945 8C        mov dword ptr ss:[ebp-74],eax                    ;  注册码左边7位字符"9876543"
    119. 004033BE    .  C745 84 080000>mov dword ptr ss:[ebp-7C],8
    120. 004033C5    .  FFD7           call edi
    121. 004033C7    .  8D4D A8        lea ecx,dword ptr ss:[ebp-58]
    122. 004033CA    .  FF15 EC104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>]     
    123. 004033D0    .  8D55 CC        lea edx,dword ptr ss:[ebp-34]
    124. 004033D3    .  6A 07          push 7                                           ;  常数,7
    125. 004033D5    .  8D45 A8        lea eax,dword ptr ss:[ebp-58]
    126. 004033D8    .  52             push edx
    127. 004033D9    .  50             push eax
    128. 004033DA    .  FFD6           call esi                                         ;  __vbaStrVarVal,注册码转为字符串
    129. 004033DC    .  50             push eax                                         ;  假码"9876543210"
    130. 004033DD    .  FF15 DC104000  call dword ptr ds:[<&MSVBVM60.#618>]             ;  rtcRightCharBstr,取假码右边7位字符
    131. 004033E3    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    132. 004033E6    .  8D4D AC        lea ecx,dword ptr ss:[ebp-54]
    133. 004033E9    .  8945 8C        mov dword ptr ss:[ebp-74],eax                    ;  注册码右边7位字符"6543210"
    134. 004033EC    .  C745 84 080000>mov dword ptr ss:[ebp-7C],8
    135. 004033F3    .  FFD7           call edi
    136. 004033F5    .  8D4D A8        lea ecx,dword ptr ss:[ebp-58]
    137. 004033F8    .  FF15 EC104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>]     
    138. 004033FE    .  8B35 C8104000  mov esi,dword ptr ds:[<&MSVBVM60.__vbaVarMod>]   
    139. 00403404    .  B8 03000000    mov eax,3
    140. 00403409    .  8D4D BC        lea ecx,dword ptr ss:[ebp-44]
    141. 0040340C    .  8985 94FEFFFF  mov dword ptr ss:[ebp-16C],eax
    142. 00403412    .  8985 34FEFFFF  mov dword ptr ss:[ebp-1CC],eax
    143. 00403418    .  8985 14FEFFFF  mov dword ptr ss:[ebp-1EC],eax
    144. 0040341E    .  8D95 A4FEFFFF  lea edx,dword ptr ss:[ebp-15C]
    145. 00403424    .  51             push ecx
    146. 00403425    .  8D45 84        lea eax,dword ptr ss:[ebp-7C]
    147. 00403428    .  BF 02000000    mov edi,2
    148. 0040342D    .  52             push edx
    149. 0040342E    .  50             push eax
    150. 0040342F    .  C785 ACFEFFFF >mov dword ptr ss:[ebp-154],42                    ;  常数1-0x42
    151. 00403439    .  89BD A4FEFFFF  mov dword ptr ss:[ebp-15C],edi
    152. 0040343F    .  C785 9CFEFFFF >mov dword ptr ss:[ebp-164],186A0                 ;  常数2-0x186A0
    153. 00403449    .  C785 8CFEFFFF >mov dword ptr ss:[ebp-174],12                    ;  常数3-0x12
    154. 00403453    .  89BD 84FEFFFF  mov dword ptr ss:[ebp-17C],edi
    155. 00403459    .  C785 7CFEFFFF >mov dword ptr ss:[ebp-184],3E8                   ;  常数4-0x3E8
    156. 00403463    .  89BD 74FEFFFF  mov dword ptr ss:[ebp-18C],edi
    157. 00403469    .  C785 6CFEFFFF >mov dword ptr ss:[ebp-194],63                    ;  常数5-0x63
    158. 00403473    .  89BD 64FEFFFF  mov dword ptr ss:[ebp-19C],edi
    159. 00403479    .  89BD 5CFEFFFF  mov dword ptr ss:[ebp-1A4],edi
    160. 0040347F    .  89BD 54FEFFFF  mov dword ptr ss:[ebp-1AC],edi
    161. 00403485    .  C785 4CFEFFFF >mov dword ptr ss:[ebp-1B4],5                     ;  常数6-0x5
    162. 0040348F    .  89BD 44FEFFFF  mov dword ptr ss:[ebp-1BC],edi
    163. 00403495    .  C785 3CFEFFFF >mov dword ptr ss:[ebp-1C4],80000007              ;  常数7-0x80000007
    164. 0040349F    .  C785 2CFEFFFF >mov dword ptr ss:[ebp-1D4],9                     ;  常数8-0x9
    165. 004034A9    .  89BD 24FEFFFF  mov dword ptr ss:[ebp-1DC],edi
    166. 004034AF    .  C785 1CFEFFFF >mov dword ptr ss:[ebp-1E4],6390F22               ;  常数9-0x6390F22
    167. 004034B9    .  FFD6           call esi                                         ;  注册码左边七位转为16进制数 Mod 常数1
    168. 004034BB    .  8D8D 94FEFFFF  lea ecx,dword ptr ss:[ebp-16C]                   ;  0x96B43F(9876543) Mod 0x42=0x27
    169. 004034C1    .  50             push eax
    170. 004034C2    .  8D95 74FFFFFF  lea edx,dword ptr ss:[ebp-8C]
    171. 004034C8    .  51             push ecx
    172. 004034C9    .  52             push edx
    173. 004034CA    .  FF15 7C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMul>]      ;  Mod 结果乘以常数2
    174. 004034D0    .  50             push eax                                         ;  0x27*0x186A0=0x3B8260
    175. 004034D1    .  8D45 BC        lea eax,dword ptr ss:[ebp-44]
    176. 004034D4    .  8D8D 84FEFFFF  lea ecx,dword ptr ss:[ebp-17C]
    177. 004034DA    .  50             push eax
    178. 004034DB    .  51             push ecx
    179. 004034DC    .  8D95 64FFFFFF  lea edx,dword ptr ss:[ebp-9C]
    180. 004034E2    .  52             push edx
    181. 004034E3    .  FFD6           call esi                                         ;  注册码左边七位转为16进制数 Mod 常数3
    182. 004034E5    .  50             push eax                                         ;  0x96B43F(9876543) Mod 0x12=0xF
    183. 004034E6    .  8D85 74FEFFFF  lea eax,dword ptr ss:[ebp-18C]
    184. 004034EC    .  8D8D 54FFFFFF  lea ecx,dword ptr ss:[ebp-AC]
    185. 004034F2    .  50             push eax
    186. 004034F3    .  51             push ecx
    187. 004034F4    .  FF15 7C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMul>]      ;  第2次Mod 结果乘以常数4
    188. 004034FA    .  8B35 C0104000  mov esi,dword ptr ds:[<&MSVBVM60.__vbaVarAdd>]   ;  0xF*0x3E8=0x3A98
    189. 00403500    .  8D95 44FFFFFF  lea edx,dword ptr ss:[ebp-BC]
    190. 00403506    .  50             push eax
    191. 00403507    .  52             push edx
    192. 00403508    .  FFD6           call esi                                         ;  两次Mod结果相加
    193. 0040350A    .  50             push eax                                         ;  0x3B8260+0x3A98=0x3BBCF8
    194. 0040350B    .  8D45 BC        lea eax,dword ptr ss:[ebp-44]
    195. 0040350E    .  8D8D 64FEFFFF  lea ecx,dword ptr ss:[ebp-19C]
    196. 00403514    .  50             push eax
    197. 00403515    .  8D95 34FFFFFF  lea edx,dword ptr ss:[ebp-CC]
    198. 0040351B    .  51             push ecx
    199. 0040351C    .  52             push edx
    200. 0040351D    .  FF15 C8104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMod>]      ;  注册码左边七位转为16进制数 Mod 常数5
    201. 00403523    .  50             push eax                                         ;  0x96B43F(9876543) Mod 0x63=0x6
    202. 00403524    .  8D85 54FEFFFF  lea eax,dword ptr ss:[ebp-1AC]
    203. 0040352A    .  8D8D 24FFFFFF  lea ecx,dword ptr ss:[ebp-DC]
    204. 00403530    .  50             push eax
    205. 00403531    .  51             push ecx
    206. 00403532    .  FF15 7C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMul>]      ;  第3次Mod 结果乘以2
    207. 00403538    .  50             push eax                                         ;  0x6*2=0xC
    208. 00403539    .  8D95 44FEFFFF  lea edx,dword ptr ss:[ebp-1BC]
    209. 0040353F    .  8D85 14FFFFFF  lea eax,dword ptr ss:[ebp-EC]
    210. 00403545    .  52             push edx
    211. 00403546    .  50             push eax
    212. 00403547    .  FF15 7C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMul>]      ;  乘以2后再乘以常数6
    213. 0040354D    .  8D8D 04FFFFFF  lea ecx,dword ptr ss:[ebp-FC]                    ;  0xC*5=0x3C
    214. 00403553    .  50             push eax
    215. 00403554    .  51             push ecx
    216. 00403555    .  FFD6           call esi                                         ;  3次Mod结果相加
    217. 00403557    .  50             push eax                                         ;  0x3BBCF8+0x3C=0x03BBD34
    218. 00403558    .  8D55 BC        lea edx,dword ptr ss:[ebp-44]
    219. 0040355B    .  8D85 34FEFFFF  lea eax,dword ptr ss:[ebp-1CC]
    220. 00403561    .  52             push edx
    221. 00403562    .  8D8D F4FEFFFF  lea ecx,dword ptr ss:[ebp-10C]
    222. 00403568    .  50             push eax
    223. 00403569    .  51             push ecx
    224. 0040356A    .  FF15 74104000  call dword ptr ds:[<&MSVBVM60.__vbaVarAnd>]      ;  注册码左边七位转为16进制数 And 常数7
    225. 00403570    .  8D95 E4FEFFFF  lea edx,dword ptr ss:[ebp-11C]                   ;  0x96B43F(9876543) And 0x80000007=0x7
    226. 00403576    .  50             push eax
    227. 00403577    .  52             push edx
    228. 00403578    .  FFD6           call esi                                         ;  And 结果加上前面3次Mod结果
    229. 0040357A    .  50             push eax                                         ;  0x03BBD34+0x7=0x3BBD3B
    230. 0040357B    .  8D85 24FEFFFF  lea eax,dword ptr ss:[ebp-1DC]
    231. 00403581    .  8D8D D4FEFFFF  lea ecx,dword ptr ss:[ebp-12C]
    232. 00403587    .  50             push eax
    233. 00403588    .  51             push ecx
    234. 00403589    .  FFD6           call esi                                         ;  上面加法结果再加上常数8
    235. 0040358B    .  50             push eax                                         ;  0x03BBD3B+0x9=0x3BBD44
    236. 0040358C    .  8D95 14FEFFFF  lea edx,dword ptr ss:[ebp-1EC]
    237. 00403592    .  8D85 C4FEFFFF  lea eax,dword ptr ss:[ebp-13C]
    238. 00403598    .  52             push edx
    239. 00403599    .  50             push eax
    240. 0040359A    .  FFD6           call esi                                         ;  加法结果继续加上常数9
    241. 0040359C    .  8BD0           mov edx,eax                                      ;  0x03BBD44+0x6390F22=0x674CC66
    242. 0040359E    .  8D4B 44        lea ecx,dword ptr ds:[ebx+44]                    ;  将加法结果用10进制表示转为字符串,记为str1
    243. 004035A1    .  FF15 0C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMove>]     ;  0x674CC66(108317798)-->"108317798"
    244. 004035A7    .  8D8D C4FEFFFF  lea ecx,dword ptr ss:[ebp-13C]
    245. 004035AD    .  8D95 D4FEFFFF  lea edx,dword ptr ss:[ebp-12C]
    246. 004035B3    .  51             push ecx
    247. 004035B4    .  8D85 E4FEFFFF  lea eax,dword ptr ss:[ebp-11C]
    248. 004035BA    .  52             push edx
    249. 004035BB    .  8D8D 04FFFFFF  lea ecx,dword ptr ss:[ebp-FC]
    250. 004035C1    .  50             push eax
    251. 004035C2    .  8D95 44FFFFFF  lea edx,dword ptr ss:[ebp-BC]
    252. 004035C8    .  51             push ecx
    253. 004035C9    .  52             push edx
    254. 004035CA    .  6A 05          push 5
    255. 004035CC    .  FF15 1C104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeVarList>]
    256. 004035D2    .  83C4 18        add esp,18
    257. 004035D5    .  C785 ACFEFFFF >mov dword ptr ss:[ebp-154],42                    ;  常数1-0x42
    258. 004035DF    .  89BD A4FEFFFF  mov dword ptr ss:[ebp-15C],edi
    259. 004035E5    .  C785 9CFEFFFF >mov dword ptr ss:[ebp-164],186A0                 ;  常数2-0x186A0
    260. 004035EF    .  B8 03000000    mov eax,3
    261. 004035F4    .  8D8D A4FEFFFF  lea ecx,dword ptr ss:[ebp-15C]
    262. 004035FA    .  8985 94FEFFFF  mov dword ptr ss:[ebp-16C],eax
    263. 00403600    .  8985 34FEFFFF  mov dword ptr ss:[ebp-1CC],eax
    264. 00403606    .  8985 14FEFFFF  mov dword ptr ss:[ebp-1EC],eax
    265. 0040360C    .  8D45 BC        lea eax,dword ptr ss:[ebp-44]
    266. 0040360F    .  50             push eax
    267. 00403610    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    268. 00403613    .  51             push ecx
    269. 00403614    .  52             push edx
    270. 00403615    .  C785 8CFEFFFF >mov dword ptr ss:[ebp-174],12                    ;  常数3-0x12
    271. 0040361F    .  89BD 84FEFFFF  mov dword ptr ss:[ebp-17C],edi
    272. 00403625    .  C785 7CFEFFFF >mov dword ptr ss:[ebp-184],3E8                   ;  常数4-0x3E8
    273. 0040362F    .  89BD 74FEFFFF  mov dword ptr ss:[ebp-18C],edi
    274. 00403635    .  C785 6CFEFFFF >mov dword ptr ss:[ebp-194],63                    ;  常数5-0x63
    275. 0040363F    .  89BD 64FEFFFF  mov dword ptr ss:[ebp-19C],edi
    276. 00403645    .  89BD 5CFEFFFF  mov dword ptr ss:[ebp-1A4],edi
    277. 0040364B    .  89BD 54FEFFFF  mov dword ptr ss:[ebp-1AC],edi
    278. 00403651    .  C785 4CFEFFFF >mov dword ptr ss:[ebp-1B4],5                     ;  常数6-0x5
    279. 0040365B    .  89BD 44FEFFFF  mov dword ptr ss:[ebp-1BC],edi
    280. 00403661    .  C785 3CFEFFFF >mov dword ptr ss:[ebp-1C4],80000007              ;  常数7-0x80000007
    281. 0040366B    .  C785 2CFEFFFF >mov dword ptr ss:[ebp-1D4],9                     ;  常数8-0x9
    282. 00403675    .  89BD 24FEFFFF  mov dword ptr ss:[ebp-1DC],edi
    283. 0040367B    .  C785 1CFEFFFF >mov dword ptr ss:[ebp-1E4],37FEDD                ;  常数10-0x37FEDD
    284. 00403685    .  FF15 C8104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMod>]      ;  以下运算部分,除常数10不同外,与上面相同,

    285. 分析略
    286. 0040368B    .  50             push eax
    287. 0040368C    .  8D85 94FEFFFF  lea eax,dword ptr ss:[ebp-16C]
    288. 00403692    .  8D8D 74FFFFFF  lea ecx,dword ptr ss:[ebp-8C]
    289. 00403698    .  50             push eax
    290. 00403699    .  51             push ecx
    291. 0040369A    .  FF15 7C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMul>]      ;  MSVBVM60.__vbaVarMul
    292. 004036A0    .  50             push eax
    293. 004036A1    .  8D55 BC        lea edx,dword ptr ss:[ebp-44]
    294. 004036A4    .  8D85 84FEFFFF  lea eax,dword ptr ss:[ebp-17C]
    295. 004036AA    .  52             push edx
    296. 004036AB    .  8D8D 64FFFFFF  lea ecx,dword ptr ss:[ebp-9C]
    297. 004036B1    .  50             push eax
    298. 004036B2    .  51             push ecx
    299. 004036B3    .  FF15 C8104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMod>]      ;  MSVBVM60.__vbaVarMod
    300. 004036B9    .  50             push eax
    301. 004036BA    .  8D95 74FEFFFF  lea edx,dword ptr ss:[ebp-18C]
    302. 004036C0    .  8D85 54FFFFFF  lea eax,dword ptr ss:[ebp-AC]
    303. 004036C6    .  52             push edx
    304. 004036C7    .  50             push eax
    305. 004036C8    .  FF15 7C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMul>]      ;  MSVBVM60.__vbaVarMul
    306. 004036CE    .  8D8D 44FFFFFF  lea ecx,dword ptr ss:[ebp-BC]
    307. 004036D4    .  50             push eax
    308. 004036D5    .  51             push ecx
    309. 004036D6    .  FFD6           call esi                                         ;  <&MSVBVM60.__vbaVarAdd>
    310. 004036D8    .  50             push eax
    311. 004036D9    .  8D55 BC        lea edx,dword ptr ss:[ebp-44]
    312. 004036DC    .  8D85 64FEFFFF  lea eax,dword ptr ss:[ebp-19C]
    313. 004036E2    .  52             push edx
    314. 004036E3    .  8D8D 34FFFFFF  lea ecx,dword ptr ss:[ebp-CC]
    315. 004036E9    .  50             push eax
    316. 004036EA    .  51             push ecx
    317. 004036EB    .  FF15 C8104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMod>]      ;  MSVBVM60.__vbaVarMod
    318. 004036F1    .  50             push eax
    319. 004036F2    .  8D95 54FEFFFF  lea edx,dword ptr ss:[ebp-1AC]
    320. 004036F8    .  8D85 24FFFFFF  lea eax,dword ptr ss:[ebp-DC]
    321. 004036FE    .  52             push edx
    322. 004036FF    .  50             push eax
    323. 00403700    .  FF15 7C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMul>]      ;  MSVBVM60.__vbaVarMul
    324. 00403706    .  8D8D 44FEFFFF  lea ecx,dword ptr ss:[ebp-1BC]
    325. 0040370C    .  50             push eax
    326. 0040370D    .  8D95 14FFFFFF  lea edx,dword ptr ss:[ebp-EC]
    327. 00403713    .  51             push ecx
    328. 00403714    .  52             push edx
    329. 00403715    .  FF15 7C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMul>]      ;  MSVBVM60.__vbaVarMul
    330. 0040371B    .  50             push eax
    331. 0040371C    .  8D85 04FFFFFF  lea eax,dword ptr ss:[ebp-FC]
    332. 00403722    .  50             push eax
    333. 00403723    .  FFD6           call esi                                         ;  <&MSVBVM60.__vbaVarAdd>
    334. 00403725    .  8D4D BC        lea ecx,dword ptr ss:[ebp-44]
    335. 00403728    .  50             push eax
    336. 00403729    .  8D95 34FEFFFF  lea edx,dword ptr ss:[ebp-1CC]
    337. 0040372F    .  51             push ecx
    338. 00403730    .  8D85 F4FEFFFF  lea eax,dword ptr ss:[ebp-10C]
    339. 00403736    .  52             push edx
    340. 00403737    .  50             push eax
    341. 00403738    .  FF15 74104000  call dword ptr ds:[<&MSVBVM60.__vbaVarAnd>]      ;  MSVBVM60.__vbaVarAnd
    342. 0040373E    .  8D8D E4FEFFFF  lea ecx,dword ptr ss:[ebp-11C]
    343. 00403744    .  50             push eax
    344. 00403745    .  51             push ecx
    345. 00403746    .  FFD6           call esi                                         ;  <&MSVBVM60.__vbaVarAdd>
    346. 00403748    .  50             push eax
    347. 00403749    .  8D95 24FEFFFF  lea edx,dword ptr ss:[ebp-1DC]
    348. 0040374F    .  8D85 D4FEFFFF  lea eax,dword ptr ss:[ebp-12C]
    349. 00403755    .  52             push edx
    350. 00403756    .  50             push eax
    351. 00403757    .  FFD6           call esi                                         ;  <&MSVBVM60.__vbaVarAdd>
    352. 00403759    .  8D8D 14FEFFFF  lea ecx,dword ptr ss:[ebp-1EC]
    353. 0040375F    .  50             push eax
    354. 00403760    .  8D95 C4FEFFFF  lea edx,dword ptr ss:[ebp-13C]
    355. 00403766    .  51             push ecx
    356. 00403767    .  52             push edx
    357. 00403768    .  FFD6           call esi                                         ;  加法结果继续加上常数10
    358. 0040376A    .  50             push eax                                         ;  0x03BBD44+0x37FEDD=0x73BC21
    359. 0040376B    .  8D85 B4FEFFFF  lea eax,dword ptr ss:[ebp-14C]
    360. 00403771    .  50             push eax
    361. 00403772    .  FF15 AC104000  call dword ptr ds:[<&MSVBVM60.#573>]             ;  加法结果以16进制表示转为字符串,记为str2
    362. 00403778    .  8D4B 34        lea ecx,dword ptr ds:[ebx+34]                    ;  0x73BC21-->"73BC21"
    363. 0040377B    .  8D95 B4FEFFFF  lea edx,dword ptr ss:[ebp-14C]
    364. 00403781    .  FF15 0C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMove>]     
    365. 00403787    .  8D8D B4FEFFFF  lea ecx,dword ptr ss:[ebp-14C]
    366. 0040378D    .  8B35 1C104000  mov esi,dword ptr ds:[<&MSVBVM60.__vbaFreeVarLis>
    367. 00403793    .  8D95 C4FEFFFF  lea edx,dword ptr ss:[ebp-13C]
    368. 00403799    .  51             push ecx
    369. 0040379A    .  8D85 D4FEFFFF  lea eax,dword ptr ss:[ebp-12C]
    370. 004037A0    .  52             push edx
    371. 004037A1    .  8D8D E4FEFFFF  lea ecx,dword ptr ss:[ebp-11C]
    372. 004037A7    .  50             push eax
    373. 004037A8    .  8D95 04FFFFFF  lea edx,dword ptr ss:[ebp-FC]
    374. 004037AE    .  51             push ecx
    375. 004037AF    .  8D85 44FFFFFF  lea eax,dword ptr ss:[ebp-BC]
    376. 004037B5    .  52             push edx
    377. 004037B6    .  50             push eax
    378. 004037B7    .  6A 06          push 6
    379. 004037B9    .  FFD6           call esi                                       
    380. 004037BB    .  83C4 1C        add esp,1C
    381. 004037BE    .  8D95 A4FEFFFF  lea edx,dword ptr ss:[ebp-15C]
    382. 004037C4    .  8D4D 84        lea ecx,dword ptr ss:[ebp-7C]
    383. 004037C7       C785 ACFEFFFF >mov dword ptr ss:[ebp-154],lhl-crac.004025EC     ;  固定字符串1-"pyg"
    384. 004037D1    .  C785 A4FEFFFF >mov dword ptr ss:[ebp-15C],8
    385. 004037DB    .  FF15 C4104000  call dword ptr ds:[<&MSVBVM60.__vbaVarDup>]      
    386. 004037E1    .  8B0B           mov ecx,dword ptr ds:[ebx]
    387. 004037E3    .  8D95 74FFFFFF  lea edx,dword ptr ss:[ebp-8C]
    388. 004037E9    .  8D45 84        lea eax,dword ptr ss:[ebp-7C]
    389. 004037EC    .  52             push edx
    390. 004037ED    .  50             push eax
    391. 004037EE    .  53             push ebx
    392. 004037EF    .  FF91 FC060000  call dword ptr ds:[ecx+6FC]                      ;  此CALL将"pyg"每位字符的ASCII值的16进制形式

    393. 连接成字符串
    394. 004037F5    .  8D4B 54        lea ecx,dword ptr ds:[ebx+54]                    ;  'p'->0x70,'y'->79,'g'->67  ==>"707967",记为

    395. str3
    396. 004037F8    .  8D95 74FFFFFF  lea edx,dword ptr ss:[ebp-8C]
    397. 004037FE    .  FF15 0C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMove>]   
    398. 00403804    .  8D8D 74FFFFFF  lea ecx,dword ptr ss:[ebp-8C]
    399. 0040380A    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    400. 0040380D    .  51             push ecx
    401. 0040380E    .  52             push edx
    402. 0040380F    .  57             push edi
    403. 00403810    .  FFD6           call esi                                       
    404. 00403812    .  83C4 0C        add esp,0C
    405. 00403815    .  8D95 A4FEFFFF  lea edx,dword ptr ss:[ebp-15C]
    406. 0040381B    .  8D4D 84        lea ecx,dword ptr ss:[ebp-7C]
    407. 0040381E    .  C785 ACFEFFFF >mov dword ptr ss:[ebp-154],lhl-crac.004025F8     ;  固定字符串2-"lhl"
    408. 00403828    .  C785 A4FEFFFF >mov dword ptr ss:[ebp-15C],8
    409. 00403832    .  FF15 C4104000  call dword ptr ds:[<&MSVBVM60.__vbaVarDup>]     
    410. 00403838    .  8B03           mov eax,dword ptr ds:[ebx]
    411. 0040383A    .  8D8D 74FFFFFF  lea ecx,dword ptr ss:[ebp-8C]
    412. 00403840    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    413. 00403843    .  51             push ecx
    414. 00403844    .  52             push edx
    415. 00403845    .  53             push ebx
    416. 00403846    .  FF90 F8060000  call dword ptr ds:[eax+6F8]                      ;  同上面CALL,"lhl"--->"108104108",记为str4
    417. 0040384C    .  8D4B 64        lea ecx,dword ptr ds:[ebx+64]
    418. 0040384F    .  8D95 74FFFFFF  lea edx,dword ptr ss:[ebp-8C]
    419. 00403855    .  FF15 0C104000  call dword ptr ds:[<&MSVBVM60.__vbaVarMove>]   
    420. 0040385B    .  8D85 74FFFFFF  lea eax,dword ptr ss:[ebp-8C]
    421. 00403861    .  8D4D 84        lea ecx,dword ptr ss:[ebp-7C]
    422. 00403864    .  50             push eax
    423. 00403865    .  51             push ecx
    424. 00403866    .  57             push edi
    425. 00403867    .  FFD6           call esi                                       
    426. 00403869    .  83C4 0C        add esp,0C
    427. 0040386C    .  8D95 74FFFFFF  lea edx,dword ptr ss:[ebp-8C]
    428. 00403872    .  8D43 64        lea eax,dword ptr ds:[ebx+64]
    429. 00403875    .  C785 7CFFFFFF >mov dword ptr ss:[ebp-84],1
    430. 0040387F    .  52             push edx
    431. 00403880    .  6A 05          push 5                                           ;  常数,5
    432. 00403882    .  50             push eax
    433. 00403883    .  8D45 A0        lea eax,dword ptr ss:[ebp-60]
    434. 00403886    .  50             push eax
    435. 00403887    .  89BD 74FFFFFF  mov dword ptr ss:[ebp-8C],edi
    436. 0040388D    .  FF15 94104000  call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>]  
    437. 00403893    .  50             push eax                                         ;  字符串str4--"108104108"
    438. 00403894    .  FF15 50104000  call dword ptr ds:[<&MSVBVM60.#631>]             ;  rtcMidCharBstr,取字符串str4第5位字符
    439. 0040389A    .  8BD0           mov edx,eax                                      ;  d EAX=0x30('0')
    440. 0040389C    .  8D4D 98        lea ecx,dword ptr ss:[ebp-68]
    441. 0040389F    .  FF15 D8104000  call dword ptr ds:[<&MSVBVM60.__vbaStrMove>]   
    442. 004038A5    .  8B4D 98        mov ecx,dword ptr ss:[ebp-68]
    443. 004038A8    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    444. 004038AB    .  52             push edx
    445. 004038AC    .  8D43 44        lea eax,dword ptr ds:[ebx+44]
    446. 004038AF    .  6A 05          push 5
    447. 004038B1    .  50             push eax
    448. 004038B2    .  8D45 A8        lea eax,dword ptr ss:[ebp-58]
    449. 004038B5    .  C745 8C 010000>mov dword ptr ss:[ebp-74],1
    450. 004038BC    .  50             push eax
    451. 004038BD    .  897D 84        mov dword ptr ss:[ebp-7C],edi
    452. 004038C0    .  898D FCFDFFFF  mov dword ptr ss:[ebp-204],ecx
    453. 004038C6    .  C745 98 000000>mov dword ptr ss:[ebp-68],0
    454. 004038CD    .  FF15 94104000  call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>]   
    455. 004038D3    .  50             push eax                                         ;  字符串str1--"108317798"
    456. 004038D4    .  FF15 50104000  call dword ptr ds:[<&MSVBVM60.#631>]             ;  rtcMidCharBstr,取字符串str1第5位字符
    457. 004038DA    .  8BD0           mov edx,eax                                      ;  d EAX=0x31('1')
    458. 004038DC    .  8D4D A4        lea ecx,dword ptr ss:[ebp-5C]
    459. 004038DF    .  FF15 D8104000  call dword ptr ds:[<&MSVBVM60.__vbaStrMove>]   
    460. 004038E5    .  50             push eax
    461. 004038E6    .  FF15 9C104000  call dword ptr ds:[<&MSVBVM60.__vbaR8Str>]       ;  字符串转为浮点数,'1'-->1.0
    462. 004038EC    .  8B95 FCFDFFFF  mov edx,dword ptr ss:[ebp-204]
    463. 004038F2    .  8D4D 9C        lea ecx,dword ptr ss:[ebp-64]
    464. 004038F5    .  DD9D F4FDFFFF  fstp qword ptr ss:[ebp-20C]
    465. 004038FB    .  FF15 D8104000  call dword ptr ds:[<&MSVBVM60.__vbaStrMove>]   
    466. 00403901    .  50             push eax
    467. 00403902    .  FF15 9C104000  call dword ptr ds:[<&MSVBVM60.__vbaR8Str>]       ;  字符串转为浮点数,'0'-->0.0
    468. 00403908    .  DC9D F4FDFFFF  fcomp qword ptr ss:[ebp-20C]                     ;  比较两个值是否相等
    469. 0040390E    .  C785 F0FDFFFF >mov dword ptr ss:[ebp-210],1
    470. 00403918    .  DFE0           fstsw ax
    471. 0040391A    .  F6C4 40        test ah,40
    472. 0040391D    .  75 0A          jnz short lhl-crac.00403929
    473. 0040391F    .  C785 F0FDFFFF >mov dword ptr ss:[ebp-210],0
    474. 00403929    >  8D4D 98        lea ecx,dword ptr ss:[ebp-68]
    475. 0040392C    .  8D55 9C        lea edx,dword ptr ss:[ebp-64]
    476. 0040392F    .  51             push ecx
    477. 00403930    .  8D45 A0        lea eax,dword ptr ss:[ebp-60]
    478. 00403933    .  52             push edx
    479. 00403934    .  8D4D A4        lea ecx,dword ptr ss:[ebp-5C]
    480. 00403937    .  50             push eax
    481. 00403938    .  8D55 A8        lea edx,dword ptr ss:[ebp-58]
    482. 0040393B    .  51             push ecx
    483. 0040393C    .  52             push edx
    484. 0040393D    .  6A 05          push 5
    485. 0040393F    .  FF15 B0104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeStrList>]
    486. 00403945    .  8D85 74FFFFFF  lea eax,dword ptr ss:[ebp-8C]
    487. 0040394B    .  8D4D 84        lea ecx,dword ptr ss:[ebp-7C]
    488. 0040394E    .  50             push eax
    489. 0040394F    .  51             push ecx
    490. 00403950    .  57             push edi
    491. 00403951    .  FFD6           call esi
    492. 00403953    .  8B85 F0FDFFFF  mov eax,dword ptr ss:[ebp-210]
    493. 00403959    .  83C4 24        add esp,24
    494. 0040395C    .  F7D8           neg eax
    495. 0040395E    .  66:85C0        test ax,ax
    496. 00403961       0F84 6A020000  je lhl-crac.00403BD1                             ;  不等则Over,暴破点2,Nop掉
    497. 00403967    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    498. 0040396A    .  8D43 34        lea eax,dword ptr ds:[ebx+34]
    499. 0040396D    .  52             push edx
    500. 0040396E    .  6A 05          push 5
    501. 00403970    .  50             push eax
    502. 00403971    .  8D45 A8        lea eax,dword ptr ss:[ebp-58]
    503. 00403974    .  50             push eax
    504. 00403975    .  897D 8C        mov dword ptr ss:[ebp-74],edi
    505. 00403978    .  897D 84        mov dword ptr ss:[ebp-7C],edi
    506. 0040397B    .  89BD 7CFFFFFF  mov dword ptr ss:[ebp-84],edi
    507. 00403981    .  89BD 74FFFFFF  mov dword ptr ss:[ebp-8C],edi
    508. 00403987    .  FF15 94104000  call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>]  
    509. 0040398D    .  50             push eax                                         ;  字符串str2--"73BC21"
    510. 0040398E    .  FF15 50104000  call dword ptr ds:[<&MSVBVM60.#631>]             ;  rtcMidCharBstr,从字符串str2第5位开始取字符

    511. 至结束
    512. 00403994    .  8BD0           mov edx,eax                                      ;  得到字符串"21"
    513. 00403996    .  8D4D A0        lea ecx,dword ptr ss:[ebp-60]
    514. 00403999    .  FF15 D8104000  call dword ptr ds:[<&MSVBVM60.__vbaStrMove>]   
    515. 0040399F    .  8D8D 74FFFFFF  lea ecx,dword ptr ss:[ebp-8C]
    516. 004039A5    .  50             push eax
    517. 004039A6    .  51             push ecx
    518. 004039A7    .  8D43 54        lea eax,dword ptr ds:[ebx+54]
    519. 004039AA    .  6A 05          push 5
    520. 004039AC    .  8D55 A4        lea edx,dword ptr ss:[ebp-5C]
    521. 004039AF    .  50             push eax
    522. 004039B0    .  52             push edx
    523. 004039B1    .  FF15 94104000  call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>]   
    524. 004039B7    .  50             push eax                                         ;  字符串str3--"707967"
    525. 004039B8    .  FF15 50104000  call dword ptr ds:[<&MSVBVM60.#631>]             ;  rtcMidCharBstr,从字符串str3第5位开始取字符

    526. 至结束
    527. 004039BE    .  8BD0           mov edx,eax                                      ;  得到字符串"67"
    528. 004039C0    .  8D4D 9C        lea ecx,dword ptr ss:[ebp-64]
    529. 004039C3    .  FF15 D8104000  call dword ptr ds:[<&MSVBVM60.__vbaStrMove>]   
    530. 004039C9    .  50             push eax
    531. 004039CA    .  FF15 5C104000  call dword ptr ds:[<&MSVBVM60.__vbaStrCmp>]      ;  比较取出的两个字符串是否相等
    532. 004039D0    .  F7D8           neg eax
    533. 004039D2    .  1BC0           sbb eax,eax
    534. 004039D4    .  8D4D A0        lea ecx,dword ptr ss:[ebp-60]
    535. 004039D7    .  40             inc eax
    536. 004039D8    .  8D55 A4        lea edx,dword ptr ss:[ebp-5C]
    537. 004039DB    .  F7D8           neg eax
    538. 004039DD    .  66:8985 10FEFF>mov word ptr ss:[ebp-1F0],ax
    539. 004039E4    .  8D45 9C        lea eax,dword ptr ss:[ebp-64]
    540. 004039E7    .  50             push eax
    541. 004039E8    .  51             push ecx
    542. 004039E9    .  8D45 A8        lea eax,dword ptr ss:[ebp-58]
    543. 004039EC    .  52             push edx
    544. 004039ED    .  50             push eax
    545. 004039EE    .  6A 04          push 4
    546. 004039F0    .  FF15 B0104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeStrList>]
    547. 004039F6    .  8D8D 74FFFFFF  lea ecx,dword ptr ss:[ebp-8C]
    548. 004039FC    .  8D55 84        lea edx,dword ptr ss:[ebp-7C]
    549. 004039FF    .  51             push ecx
    550. 00403A00    .  52             push edx
    551. 00403A01    .  57             push edi
    552. 00403A02    .  FFD6           call esi
    553. 00403A04    .  83C4 20        add esp,20
    554. 00403A07    .  66:83BD 10FEFF>cmp word ptr ss:[ebp-1F0],0
    555. 00403A0F      /0F84 DB000000  je lhl-crac.00403AF0                             ;  不等则Over,暴破点3,Nop掉
    556. 00403A15    . |8B03           mov eax,dword ptr ds:[ebx]
    557. 00403A17    . |53             push ebx
    558. 00403A18    . |FF90 FC020000  call dword ptr ds:[eax+2FC]
    559. 00403A1E    . |8D4D 94        lea ecx,dword ptr ss:[ebp-6C]
    560. 00403A21    . |50             push eax
    561. 00403A22    . |51             push ecx
    562. 00403A23    . |FF15 40104000  call dword ptr ds:[<&MSVBVM60.__vbaObjSet>]      
    563. 00403A29    . |8BF8           mov edi,eax
    564. 00403A2B    . |6A FF          push -1
    565. 00403A2D    . |57             push edi
    566. 00403A2E    . |8B17           mov edx,dword ptr ds:[edi]
    567. 00403A30    . |FF92 8C000000  call dword ptr ds:[edx+8C]
    568. 00403A36    . |85C0           test eax,eax
    569. 00403A38    . |DBE2           fclex
    570. 00403A3A    . |7D 12          jge short lhl-crac.00403A4E
    571. 00403A3C    . |68 8C000000    push 8C
    572. 00403A41    . |68 00264000    push lhl-crac.00402600
    573. 00403A46    . |57             push edi
    574. 00403A47    . |50             push eax
    575. 00403A48    . |FF15 34104000  call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>
    576. 00403A4E    > |8D4D 94        lea ecx,dword ptr ss:[ebp-6C]
    577. 00403A51    . |FF15 F0104000  call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>]     
    578. 00403A57    . |B9 04000280    mov ecx,80020004
    579. 00403A5C    . |B8 0A000000    mov eax,0A
    580. 00403A61    . |898D 5CFFFFFF  mov dword ptr ss:[ebp-A4],ecx
    581. 00403A67    . |898D 6CFFFFFF  mov dword ptr ss:[ebp-94],ecx
    582. 00403A6D    . |898D 7CFFFFFF  mov dword ptr ss:[ebp-84],ecx
    583. 00403A73    . |8D95 A4FEFFFF  lea edx,dword ptr ss:[ebp-15C]
    584. 00403A79    . |8D4D 84        lea ecx,dword ptr ss:[ebp-7C]
    585. 00403A7C    . |8985 54FFFFFF  mov dword ptr ss:[ebp-AC],eax
    586. 00403A82    . |8985 64FFFFFF  mov dword ptr ss:[ebp-9C],eax
    587. 00403A88    . |8985 74FFFFFF  mov dword ptr ss:[ebp-8C],eax
    588. 00403A8E    . |C785 ACFEFFFF >mov dword ptr ss:[ebp-154],lhl-crac.00402614
    589. 00403A98    . |C785 A4FEFFFF >mov dword ptr ss:[ebp-15C],8
    590. 00403AA2    . |FF15 C4104000  call dword ptr ds:[<&MSVBVM60.__vbaVarDup>]   
    591. 00403AA8    . |8D85 54FFFFFF  lea eax,dword ptr ss:[ebp-AC]
    592. 00403AAE    . |8D8D 64FFFFFF  lea ecx,dword ptr ss:[ebp-9C]
    593. 00403AB4    . |50             push eax
    594. 00403AB5    . |8D95 74FFFFFF  lea edx,dword ptr ss:[ebp-8C]
    595. 00403ABB    . |51             push ecx
    596. 00403ABC    . |52             push edx
    597. 00403ABD    . |8D45 84        lea eax,dword ptr ss:[ebp-7C]
    598. 00403AC0    . |6A 00          push 0
    599. 00403AC2    . |50             push eax
    600. 00403AC3    . |FF15 3C104000  call dword ptr ds:[<&MSVBVM60.#595>]             ;  rtcMsgBox,弹出"通过第3关"提示
    601. 00403AC9    . |8D8D 54FFFFFF  lea ecx,dword ptr ss:[ebp-AC]
    602. 00403ACF    . |8D95 64FFFFFF  lea edx,dword ptr ss:[ebp-9C]
    603. 00403AD5    . |51             push ecx
    604. 00403AD6    . |8D85 74FFFFFF  lea eax,dword ptr ss:[ebp-8C]
    605. 00403ADC    . |52             push edx

    606. 弹出"通过第3关"提示后,"确定"按钮也变为可点击,点击按钮弹出"你比我菜!"提示。
    607. 命令栏输入:bp rtcMsgBox,回车,点击"确定"按钮,中断:

    608. 660DC5F3 M>  55               push ebp
    609. 660DC5F4     8BEC             mov ebp,esp
    610. 660DC5F6     83EC 4C          sub esp,4C
    611. 660DC5F9     8B4D 14          mov ecx,dword ptr ss:[ebp+14]

    612. 观察堆栈友好提示:

    613. 0012F3C8    00403023   返回到 lhl-crac.00403023 来自 MSVBVM60.rtcMsgBox
    614. 0012F3CC    0012F464

    615. Alt+F9返回,点击提示窗口中的"确定"按钮,来到:

    616. 00403023    .  8D45 AC        lea eax,dword ptr ss:[ebp-54]                    ;  Alt+F9返回来到这里
    617. 00403026    .  8D4D BC        lea ecx,dword ptr ss:[ebp-44]
    618. 00403029    .  50             push eax
    619. 0040302A    .  8D55 CC        lea edx,dword ptr ss:[ebp-34]
    620. 0040302D    .  51             push ecx

    621. 向上查找,来到00402F20处F2下断,再次点击"确定"按钮,立即中断:

    622. 00402F20    > \55             push ebp                                         ;  F2在此下断,中断后F8往下走
    623. 00402F21    .  8BEC           mov ebp,esp
    624. 00402F23    .  83EC 0C        sub esp,0C
    625. 00402F26    .  68 56114000    push <jmp.&MSVBVM60.__vbaExceptHandler>         
    626. 00402F2B    .  64:A1 00000000 mov eax,dword ptr fs:[0]
    627. 00402F31    .  50             push eax
    628. 00402F32    .  64:8925 000000>mov dword ptr fs:[0],esp
    629. 00402F39    .  81EC 88000000  sub esp,88
    630. 00402F3F    .  53             push ebx
    631. 00402F40    .  56             push esi
    632. 00402F41    .  57             push edi
    633. 00402F42    .  8965 F4        mov dword ptr ss:[ebp-C],esp
    634. 00402F45    .  C745 F8 181140>mov dword ptr ss:[ebp-8],lhl-crac.00401118
    635. 00402F4C    .  8B75 08        mov esi,dword ptr ss:[ebp+8]
    636. 00402F4F    .  8BC6           mov eax,esi
    637. 00402F51    .  83E0 01        and eax,1
    638. 00402F54    .  8945 FC        mov dword ptr ss:[ebp-4],eax
    639. 00402F57    .  83E6 FE        and esi,FFFFFFFE
    640. 00402F5A    .  56             push esi
    641. 00402F5B    .  8975 08        mov dword ptr ss:[ebp+8],esi
    642. 00402F5E    .  8B0E           mov ecx,dword ptr ds:[esi]
    643. 00402F60    .  FF51 04        call dword ptr ds:[ecx+4]
    644. 00402F63    .  8D56 64        lea edx,dword ptr ds:[esi+64]
    645. 00402F66    .  33FF           xor edi,edi
    646. 00402F68    .  52             push edx
    647. 00402F69    .  897D DC        mov dword ptr ss:[ebp-24],edi
    648. 00402F6C    .  897D CC        mov dword ptr ss:[ebp-34],edi
    649. 00402F6F    .  897D BC        mov dword ptr ss:[ebp-44],edi
    650. 00402F72    .  897D AC        mov dword ptr ss:[ebp-54],edi
    651. 00402F75    .  897D 9C        mov dword ptr ss:[ebp-64],edi
    652. 00402F78    .  FF15 8C104000  call dword ptr ds:[<&MSVBVM60.__vbaR8ErrVar>]   
    653. 00402F7E    .  8B1D 60104000  mov ebx,dword ptr ds:[<&MSVBVM60.__vbaVarTstEq>]
    654. 00402F84    .  8D46 44        lea eax,dword ptr ds:[esi+44]                    ;  字符串str4"108104108"转为浮点数
    655. 00402F87    .  DD5D A4        fstp qword ptr ss:[ebp-5C]                       ;  st=108104108.00000000000
    656. 00402F8A    .  8D4D 9C        lea ecx,dword ptr ss:[ebp-64]
    657. 00402F8D    .  50             push eax
    658. 00402F8E    .  51             push ecx
    659. 00402F8F    .  C745 9C 058000>mov dword ptr ss:[ebp-64],8005                   ;  字符串str1"108317798"-->108317798.0
    660. 00402F96    .  FFD3           call ebx                                         ;  __vbaVarTstEq,与字符串str1表示的浮点数比较
    661. 00402F98    .  66:85C0        test ax,ax
    662. 00402F9B    .  74 39          je short lhl-crac.00402FD6                       ;  不等则Over,暴破点4,Nop掉
    663. 00402F9D    .  8D56 54        lea edx,dword ptr ds:[esi+54]
    664. 00402FA0    .  52             push edx
    665. 00402FA1    .  FF15 8C104000  call dword ptr ds:[<&MSVBVM60.__vbaR8ErrVar>]   
    666. 00402FA7    .  DD5D A4        fstp qword ptr ss:[ebp-5C]                       ;  字符串str3"707967"转为浮点数
    667. 00402FAA    .  8D46 34        lea eax,dword ptr ds:[esi+34]                    ;  st=707967.0
    668. 00402FAD    .  8D4D 9C        lea ecx,dword ptr ss:[ebp-64]
    669. 00402FB0    .  50             push eax
    670. 00402FB1    .  51             push ecx
    671. 00402FB2    .  C745 9C 058000>mov dword ptr ss:[ebp-64],8005                   ;  字符串str2"73BC21"-->7584801.0
    672. 00402FB9    .  FFD3           call ebx                                         ;  __vbaVarTstEq,与字符串str2表示的浮点数比较
    673. 00402FBB    .  66:85C0        test ax,ax
    674. 00402FBE    .  74 7E          je short lhl-crac.0040303E                       ;  不等则Over,暴破点5,Nop掉
    675. 00402FC0    .  68 68254000    push lhl-crac.00402568
    676. 00402FC5    .  56             push esi
    677. 00402FC6    .  68 7C254000    push lhl-crac.0040257C

    678. -----------------------------------------------------------------------------------------------
    679. 【破解总结】
    680. 1.注册码长度应大于等于7位, 则通过第一关。
    681. 2.取注册码前7位进行2次运算,每次运算用到9个常数。2次运算过程中除最后一个常数不同外,其它常数
    682. 及运算过程相同,第一次运算结果用10进制整数表示转为字符串,记为str1;第二次运算结果用16进制整数表示转为字符串,记为str2.
    683. 3.内置两个固定字符串,"pyg","lhl",分别依次取两个固定字符串每位字符的ASCII值用16进制数表示转为字符串,记为str3,str4.
    684. 4.取字符串str1和str4的第5位字符,相等则通过第二关。
    685. 5.从取字符串str2和str3第5位字符开始取直到字符串结束,相等则通过第三关。
    686. 6.将字符串str1和str4,str2和str3转为浮点数分别比较,相等则通过第四关。
    687. 一组可用注册码:
    688. ===================
    689. 注册码:1000135
    690. ===================

    691. 暴破更改以下位置:

    692. 00403333             je lhl-crac.00403CA9                             ;  je===>Nop
    693. 00403961             je lhl-crac.00403BD1                             ;  je===>Nop
    694. 00403A0F             je lhl-crac.00403AF0                             ;  je===>Nop
    695. 00402F9B             je short lhl-crac.00402FD6                       ;  je===>Nop
    696. 00402FBE             je short lhl-crac.0040303E                       ;  je===>Nop

    697. 【VB注册机源码】

    698. Private Sub Generate_Click()

    699. On Error Resume Next

    700. Dim i As Long
    701. Dim n1 As Long
    702. Dim n2 As Long
    703. Dim num1 As Long
    704. Dim num2 As Long
    705. Dim num3 As Long
    706. Dim num4 As Long
    707. Dim temp As Long

    708. temp = (9999999 - 1000000) * Rnd() + 1000000

    709. For i = temp To 9999999
    710.     num1 = (i Mod &H42) * &H186A0
    711.     num2 = (i Mod &H12) * &H3E8
    712.     num3 = (i Mod &H63) * 5 * 2
    713.     num4 = i And &H80000007
    714.     n1 = num1 + num2 + num3 + num4 + 9 + &H6390F22
    715.     n2 = num1 + num2 + num3 + num4 + 9 + &H37FEDD
    716.    
    717.     If (n1 = 108104108) And (n2 = 7371111) Then GoTo done  '0x707969= 7371111
    718. Next i
    719.       
    720. done:
    721.   
    722.   Text1 = i

    723. End Sub

    724. -----------------------------------------------------------------------------------------------
    725. 【版权声明】本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    复制代码

    [ 本帖最后由 hrbx 于 2006-5-22 12:59 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 15:35
  • 签到天数: 1637 天

    [LV.Master]伴坛终老

    发表于 2006-5-22 08:58:26 | 显示全部楼层
    呵呵,讲的真是不错。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-22 09:17:33 | 显示全部楼层
    hrbx兄厉害。佩服!!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-5-22 21:57:27 | 显示全部楼层
    原帖由 lhl8730 于 2006-5-22 09:17 发表
    hrbx兄厉害。佩服!!!!

    :victory::victory:
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-23 12:00:31 | 显示全部楼层
    hrbx兄做个动画演示出来让大家学习一下。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-5-23 12:19:00 | 显示全部楼层
    原帖由 lhl8730 于 2006-5-23 12:00 发表
    hrbx兄做个动画演示出来让大家学习一下。


    那我们菜鸟们就有福啦。。。

    伸长着脖子等待ing... :L :L


    ++++++++++++++++++++++

    建议使用录像专家 V6.0 来录制。

    录制的时候动作慢点。语音讲解最爽。。。不然猫会看睡觉去的。。。

    录的文件大,上传到FTP服务器吧。
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-10-21 20:30
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2006-5-23 14:19:04 | 显示全部楼层
    呵呵,写破文勉强可以,做动画就留给论坛上的其他兄弟吧。。。:P
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-6-20 07:54
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 2006-5-26 07:17:48 | 显示全部楼层
    請問大大 中断后取消断点,F8直到返回程序领空:
    我一直按f8 數十次還是無法返回到你所講的
    004032B3    .  3BC6        cmp eax,esi                                         ;  返回来到这里
    正確的作法應該是怎樣做才有辦法返回



    004032AD    .  FF91 A00000>call dword ptr ds:[ecx+A0]
    004032B3    .  3BC6        cmp eax,esi                                         ;  返回来到这里
    004032B5    .  DBE2        fclex
    004032B7    .  7D 12       jge short lhl-crac.004032CB
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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