飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4552|回复: 5

elance's crackme.NO3 算法分析

[复制链接]
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-7-22 18:15:56 | 显示全部楼层 |阅读模式
    破解日期】 2006年7月22日
    【破解作者】 冷血书生
    【作者邮箱】 [email protected]
    【作者主页】 http://bbs.126sohu.com
    【使用工具】 OD
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 elance's crackme.NO3
    【下载地址】 本地
    【软件大小】 180K
    【加壳方式】 无
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    1. 搜索找到"http://bbs.crsky.com",来到下面:

    2. 004297F2    68 60804200      push crackme_.00428060                       ; UNICODE "http://bbs.crsky.com"  /// 找到这里
    3. 004297F7    52               push edx
    4. 004297F8    FFD6             call esi
    5. 004297FA    50               push eax
    6. 004297FB    8D45 E8          lea eax,dword ptr ss:[ebp-18]
    7. 004297FE    68 50804200      push crackme_.00428050                       ; UNICODE "open"
    8. 00429803    50               push eax
    9. 00429804    FFD6             call esi
    10. 00429806    8B4D E0          mov ecx,dword ptr ss:[ebp-20]
    11. 00429809    50               push eax
    12. 0042980A    51               push ecx
    13. 0042980B    E8 9CE6FFFF      call crackme_.00427EAC                       /// NOP掉即可
    14. 00429810    FF15 2C104000    call dword ptr ds:[<&MSVBVM60.__vbaSetSystem>; MSVBVM60.__vbaSetSystemError

    15. 搜索发现有两处,经测试,只要NOP掉第一处即可

    16. ////////////////////////////////////////////////////////////////////////////////////////////
    17. ////////////////////////////////////////////////////////////////////////////////////////////


    18. 00429940    C785 14FFFFFF C8>mov dword ptr ss:[ebp-EC],crackme_.004280C8  ; UNICODE "This is my third crackme for crack learning,i hope you could enjoy it!"
    19. 0042994A    899D 0CFFFFFF    mov dword ptr ss:[ebp-F4],ebx
    20. 00429950    FFD7             call edi

    21. …………省略部分…………

    22. 00429A03    50               push eax
    23. 00429A04    FF15 40104000    call dword ptr ds:[<&MSVBVM60.#595>]         ; MSVBVM60.rtcMsgBox   /// NOP掉这里即可
    24. 00429A0A    8D95 1CFFFFFF    lea edx,dword ptr ss:[ebp-E4]

    25. ////////////////////////////////////////////////////////////////////////////////////////////


    26. 0042A09E    C785 00FFFFFF C8>mov dword ptr ss:[ebp-100],crackme_.004280C8 ; UNICODE "This is my third crackme for crack learning,i hope you could enjoy it!"
    27. 0042A0A8    899D F8FEFFFF    mov dword ptr ss:[ebp-108],ebx
    28. 0042A0AE    FFD6             call esi

    29. …………省略部分…………

    30. 0042A165    50               push eax
    31. 0042A166    FF15 40104000    call dword ptr ds:[<&MSVBVM60.#595>]         ; MSVBVM60.rtcMsgBox   /// NOP掉这里即可
    32. 0042A16C    8D95 08FFFFFF    lea edx,dword ptr ss:[ebp-F8]


    33. ////////////////////////////////////////////////////////////////////////////////////////////
    34. ////////////////////////////////////////////////////////////////////////////////////////////


    35. 搜索"Congratulations,u've done it!",往上找个适当的地方下断点,代码如下:

    36. 00429F59    8946 48          mov dword ptr ds:[esi+48],eax
    37. 00429F5C    C746 4C 01000000 mov dword ptr ds:[esi+4C],1
    38. 00429F63    8B56 48          mov edx,dword ptr ds:[esi+48]                ; 运算后的注册码
    39. 00429F66    8B4E 4C          mov ecx,dword ptr ds:[esi+4C]                ; 运算后的用户名
    40. 00429F69    3BD1             cmp edx,ecx                                  ; 比较
    41. 00429F6B    0F85 EF000000    jnz crackme_.0042A060                        ; 不相等就注册失败
    42. 00429F71    83EC 10          sub esp,10

    43. ////////////////////////////////////////////////////////////////////////////////////////////

    44. 很有意思,竟然有点像加密后的样子(通过key.ini可发现),注册就是加密后的用户名和注册码的ASCII
    45. 值相等就可以注册成功了,继续分析,搜索第一个“SN”,往上找个适当的地方下断点,来到下面:


    46. 00429212    66:3B85 28FFFFFF cmp ax,word ptr ss:[ebp-D8]
    47. 00429219    0F8F C8000000    jg crackme_.004292E7
    48. 0042921F    0FBFC0           movsx eax,ax
    49. 00429222    8D55 AC          lea edx,dword ptr ss:[ebp-54]
    50. 00429225    8D8D 6CFFFFFF    lea ecx,dword ptr ss:[ebp-94]
    51. 0042922B    52               push edx
    52. 0042922C    50               push eax
    53. 0042922D    8D55 9C          lea edx,dword ptr ss:[ebp-64]
    54. 00429230    51               push ecx
    55. 00429231    52               push edx
    56. 00429232    C745 B4 01000000 mov dword ptr ss:[ebp-4C],1
    57. 00429239    C745 AC 02000000 mov dword ptr ss:[ebp-54],2
    58. 00429240    89BD 74FFFFFF    mov dword ptr ss:[ebp-8C],edi
    59. 00429246    C785 6CFFFFFF 08>mov dword ptr ss:[ebp-94],4008
    60. 00429250    FF15 50104000    call dword ptr ds:[<&MSVBVM60.#632>]         ; MSVBVM60.rtcMidCharVar
    61. 00429256    8D45 9C          lea eax,dword ptr ss:[ebp-64]
    62. 00429259    8D4D CC          lea ecx,dword ptr ss:[ebp-34]
    63. 0042925C    50               push eax
    64. 0042925D    51               push ecx
    65. 0042925E    FF15 94104000    call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>; MSVBVM60.__vbaStrVarVal
    66. 00429264    50               push eax
    67. 00429265    FF15 20104000    call dword ptr ds:[<&MSVBVM60.#516>]         ; MSVBVM60.rtcAnsiValueBstr
    68. 0042926B    66:0346 58       add ax,word ptr ds:[esi+58]                  ; 用户名第一位+1,第二位+2,如此类推
    69. 0042926F    0F80 D0040000    jo crackme_.00429745
    70. 00429275    0FBFD0           movsx edx,ax                                 ; 加密后的结果
    71. 00429278    8D45 8C          lea eax,dword ptr ss:[ebp-74]
    72. 0042927B    52               push edx
    73. 0042927C    50               push eax
    74. 0042927D    FF15 8C104000    call dword ptr ds:[<&MSVBVM60.#608>]         ; MSVBVM60.rtcVarBstrFromAnsi
    75. 00429283    0FBF4E 58        movsx ecx,word ptr ds:[esi+58]
    76. 00429287    57               push edi
    77. 00429288    51               push ecx
    78. 00429289    8D55 8C          lea edx,dword ptr ss:[ebp-74]
    79. 0042928C    6A 01            push 1
    80. 0042928E    52               push edx
    81. 0042928F    FF15 10104000    call dword ptr ds:[<&MSVBVM60.__vbaStrVarMov>; MSVBVM60.__vbaStrVarMove
    82. 00429295    8BD0             mov edx,eax
    83. 00429297    8D4D C8          lea ecx,dword ptr ss:[ebp-38]
    84. 0042929A    FF15 D8104000    call dword ptr ds:[<&MSVBVM60.__vbaStrMove>] ; MSVBVM60.__vbaStrMove
    85. 004292A0    50               push eax
    86. 004292A1    6A 00            push 0
    87. 004292A3    FF15 EC104000    call dword ptr ds:[<&MSVBVM60.__vbaMidStmtBs>; MSVBVM60.__vbaMidStmtBstr
    88. 004292A9    8D45 C8          lea eax,dword ptr ss:[ebp-38]
    89. 004292AC    8D4D CC          lea ecx,dword ptr ss:[ebp-34]
    90. 004292AF    50               push eax
    91. 004292B0    51               push ecx
    92. 004292B1    6A 02            push 2
    93. 004292B3    FF15 B0104000    call dword ptr ds:[<&MSVBVM60.__vbaFreeStrLi>; MSVBVM60.__vbaFreeStrList
    94. 004292B9    8D55 8C          lea edx,dword ptr ss:[ebp-74]
    95. 004292BC    8D45 9C          lea eax,dword ptr ss:[ebp-64]
    96. 004292BF    52               push edx
    97. 004292C0    8D4D AC          lea ecx,dword ptr ss:[ebp-54]
    98. 004292C3    50               push eax
    99. 004292C4    51               push ecx
    100. 004292C5    6A 03            push 3
    101. 004292C7    FFD3             call ebx
    102. 004292C9    66:8B56 58       mov dx,word ptr ds:[esi+58]
    103. 004292CD    B8 01000000      mov eax,1
    104. 004292D2    83C4 1C          add esp,1C
    105. 004292D5    66:03D0          add dx,ax
    106. 004292D8    0F80 67040000    jo crackme_.00429745
    107. 004292DE    66:8956 58       mov word ptr ds:[esi+58],dx
    108. 004292E2  ^ E9 27FFFFFF      jmp crackme_.0042920E                        ; 循环计算
    109. 004292E7    8B46 40          mov eax,dword ptr ds:[esi+40]
    110. 004292EA    8D4D C0          lea ecx,dword ptr ss:[ebp-40]
    111. 004292ED    50               push eax
    112. 004292EE    51               push ecx
    113. 004292EF    FF15 C4104000    call dword ptr ds:[<&MSVBVM60.__vbaStrToAnsi>; MSVBVM60.__vbaStrToAnsi
    114. 004292F5    8B17             mov edx,dword ptr ds:[edi]
    115. 004292F7    50               push eax
    116. 004292F8    8D45 C4          lea eax,dword ptr ss:[ebp-3C]
    117. 004292FB    52               push edx
    118. 004292FC    50               push eax
    119. 004292FD    FF15 C4104000    call dword ptr ds:[<&MSVBVM60.__vbaStrToAnsi>; MSVBVM60.__vbaStrToAnsi
    120. 00429303    50               push eax
    121. 00429304    8D4D C8          lea ecx,dword ptr ss:[ebp-38]
    122. 00429307    68 687E4200      push crackme_.00427E68                       ; UNICODE "sn"
    123. 0042930C    51               push ecx
    124. 0042930D    FF15 C4104000    call dword ptr ds:[<&MSVBVM60.__vbaStrToAnsi>; MSVBVM60.__vbaStrToAnsi
    125. 00429313    50               push eax
    126. 00429314    8D55 CC          lea edx,dword ptr ss:[ebp-34]
    127. 00429317    68 5C7E4200      push crackme_.00427E5C                       ; UNICODE "key"
    128. 0042931C    52               push edx
    129. 0042931D    FF15 C4104000    call dword ptr ds:[<&MSVBVM60.__vbaStrToAnsi>; MSVBVM60.__vbaStrToAnsi
    130. 00429323    50               push eax
    131. 00429324    E8 3BECFFFF      call crackme_.00427F64
    132. 00429329    8985 38FFFFFF    mov dword ptr ss:[ebp-C8],eax
    133. 0042932F    FF15 2C104000    call dword ptr ds:[<&MSVBVM60.__vbaSetSystem>; MSVBVM60.__vbaSetSystemError
    134. 00429335    8B45 C4          mov eax,dword ptr ss:[ebp-3C]
    135. 00429338    50               push eax
    136. 00429339    57               push edi
    137. 0042933A    8B3D 7C104000    mov edi,dword ptr ds:[<&MSVBVM60.__vbaStrToU>; MSVBVM60.__vbaStrToUnicode
    138. 00429340    FFD7             call edi
    139. 00429342    8B4D C0          mov ecx,dword ptr ss:[ebp-40]
    140. 00429345    8D46 40          lea eax,dword ptr ds:[esi+40]
    141. 00429348    51               push ecx
    142. 00429349    50               push eax
    143. 0042934A    FFD7             call edi
    144. 0042934C    8B95 38FFFFFF    mov edx,dword ptr ss:[ebp-C8]
    145. 00429352    8D45 C0          lea eax,dword ptr ss:[ebp-40]
    146. 00429355    8956 34          mov dword ptr ds:[esi+34],edx
    147. 00429358    8D4D C4          lea ecx,dword ptr ss:[ebp-3C]
    148. 0042935B    50               push eax
    149. 0042935C    8D55 C8          lea edx,dword ptr ss:[ebp-38]
    150. 0042935F    51               push ecx
    151. 00429360    8D45 CC          lea eax,dword ptr ss:[ebp-34]
    152. 00429363    52               push edx
    153. 00429364    50               push eax
    154. 00429365    6A 04            push 4
    155. 00429367    FF15 B0104000    call dword ptr ds:[<&MSVBVM60.__vbaFreeStrLi>; MSVBVM60.__vbaFreeStrList
    156. 0042936D    8B46 34          mov eax,dword ptr ds:[esi+34]
    157. 00429370    83C4 14          add esp,14
    158. 00429373    83F8 01          cmp eax,1
    159. 00429376    74 77            je short crackme_.004293EF
    160. 00429378    B9 04000280      mov ecx,80020004
    161. 0042937D    B8 0A000000      mov eax,0A
    162. 00429382    894D 84          mov dword ptr ss:[ebp-7C],ecx
    163. 00429385    894D 94          mov dword ptr ss:[ebp-6C],ecx
    164. 00429388    894D A4          mov dword ptr ss:[ebp-5C],ecx
    165. 0042938B    8D95 6CFFFFFF    lea edx,dword ptr ss:[ebp-94]
    166. 00429391    8D4D AC          lea ecx,dword ptr ss:[ebp-54]
    167. 00429394    8985 7CFFFFFF    mov dword ptr ss:[ebp-84],eax
    168. 0042939A    8945 8C          mov dword ptr ss:[ebp-74],eax
    169. 0042939D    8945 9C          mov dword ptr ss:[ebp-64],eax
    170. 004293A0    C785 74FFFFFF 9C>mov dword ptr ss:[ebp-8C],crackme_.00427F9C
    171. 004293AA    C785 6CFFFFFF 08>mov dword ptr ss:[ebp-94],8
    172. 004293B4    FF15 C8104000    call dword ptr ds:[<&MSVBVM60.__vbaVarDup>]  ; MSVBVM60.__vbaVarDup
    173. 004293BA    8D8D 7CFFFFFF    lea ecx,dword ptr ss:[ebp-84]
    174. 004293C0    8D55 8C          lea edx,dword ptr ss:[ebp-74]
    175. 004293C3    51               push ecx
    176. 004293C4    8D45 9C          lea eax,dword ptr ss:[ebp-64]
    177. 004293C7    52               push edx
    178. 004293C8    50               push eax
    179. 004293C9    8D4D AC          lea ecx,dword ptr ss:[ebp-54]
    180. 004293CC    6A 00            push 0
    181. 004293CE    51               push ecx
    182. 004293CF    FF15 40104000    call dword ptr ds:[<&MSVBVM60.#595>]         ; MSVBVM60.rtcMsgBox
    183. 004293D5    8D95 7CFFFFFF    lea edx,dword ptr ss:[ebp-84]
    184. 004293DB    8D45 8C          lea eax,dword ptr ss:[ebp-74]
    185. 004293DE    52               push edx
    186. 004293DF    8D4D 9C          lea ecx,dword ptr ss:[ebp-64]
    187. 004293E2    50               push eax
    188. 004293E3    8D55 AC          lea edx,dword ptr ss:[ebp-54]
    189. 004293E6    51               push ecx
    190. 004293E7    52               push edx
    191. 004293E8    6A 04            push 4
    192. 004293EA    FFD3             call ebx
    193. 004293EC    83C4 14          add esp,14
    194. 004293EF    8B06             mov eax,dword ptr ds:[esi]
    195. 004293F1    56               push esi
    196. 004293F2    FF90 FC020000    call dword ptr ds:[eax+2FC]
    197. 004293F8    8D4D BC          lea ecx,dword ptr ss:[ebp-44]
    198. 004293FB    50               push eax
    199. 004293FC    51               push ecx
    200. 004293FD    FF15 3C104000    call dword ptr ds:[<&MSVBVM60.__vbaObjSet>]  ; MSVBVM60.__vbaObjSet
    201. 00429403    8BF8             mov edi,eax
    202. 00429405    8D45 CC          lea eax,dword ptr ss:[ebp-34]
    203. 00429408    50               push eax
    204. 00429409    57               push edi
    205. 0042940A    8B17             mov edx,dword ptr ds:[edi]
    206. 0042940C    FF92 A0000000    call dword ptr ds:[edx+A0]
    207. 00429412    85C0             test eax,eax
    208. 00429414    DBE2             fclex
    209. 00429416    7D 12            jge short crackme_.0042942A
    210. 00429418    68 A0000000      push 0A0
    211. 0042941D    68 487E4200      push crackme_.00427E48
    212. 00429422    57               push edi
    213. 00429423    50               push eax
    214. 00429424    FF15 30104000    call dword ptr ds:[<&MSVBVM60.__vbaHresultCh>; MSVBVM60.__vbaHresultCheckObj
    215. 0042942A    8B55 CC          mov edx,dword ptr ss:[ebp-34]
    216. 0042942D    8D7E 3C          lea edi,dword ptr ds:[esi+3C]
    217. 00429430    8BCF             mov ecx,edi
    218. 00429432    FF15 AC104000    call dword ptr ds:[<&MSVBVM60.__vbaStrCopy>] ; MSVBVM60.__vbaStrCopy
    219. 00429438    8D4D CC          lea ecx,dword ptr ss:[ebp-34]
    220. 0042943B    FF15 F0104000    call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>] ; MSVBVM60.__vbaFreeStr
    221. 00429441    8D4D BC          lea ecx,dword ptr ss:[ebp-44]
    222. 00429444    FF15 F4104000    call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>] ; MSVBVM60.__vbaFreeObj
    223. 0042944A    8B0F             mov ecx,dword ptr ds:[edi]
    224. 0042944C    51               push ecx
    225. 0042944D    FF15 0C104000    call dword ptr ds:[<&MSVBVM60.__vbaLenBstr>] ; MSVBVM60.__vbaLenBstr
    226. 00429453    8BC8             mov ecx,eax
    227. 00429455    FF15 60104000    call dword ptr ds:[<&MSVBVM60.__vbaI2I4>]    ; MSVBVM60.__vbaI2I4
    228. 0042945B    8985 20FFFFFF    mov dword ptr ss:[ebp-E0],eax
    229. 00429461    66:C746 58 0100  mov word ptr ds:[esi+58],1
    230. 00429467    66:8B46 58       mov ax,word ptr ds:[esi+58]
    231. 0042946B    66:3B85 20FFFFFF cmp ax,word ptr ss:[ebp-E0]
    232. 00429472    0F8F C8000000    jg crackme_.00429540
    233. 00429478    0FBFC0           movsx eax,ax
    234. 0042947B    8D55 AC          lea edx,dword ptr ss:[ebp-54]
    235. 0042947E    8D8D 6CFFFFFF    lea ecx,dword ptr ss:[ebp-94]
    236. 00429484    52               push edx
    237. 00429485    50               push eax
    238. 00429486    8D55 9C          lea edx,dword ptr ss:[ebp-64]
    239. 00429489    51               push ecx
    240. 0042948A    52               push edx
    241. 0042948B    C745 B4 01000000 mov dword ptr ss:[ebp-4C],1
    242. 00429492    C745 AC 02000000 mov dword ptr ss:[ebp-54],2
    243. 00429499    89BD 74FFFFFF    mov dword ptr ss:[ebp-8C],edi
    244. 0042949F    C785 6CFFFFFF 08>mov dword ptr ss:[ebp-94],4008
    245. 004294A9    FF15 50104000    call dword ptr ds:[<&MSVBVM60.#632>]         ; MSVBVM60.rtcMidCharVar
    246. 004294AF    8D45 9C          lea eax,dword ptr ss:[ebp-64]
    247. 004294B2    8D4D CC          lea ecx,dword ptr ss:[ebp-34]
    248. 004294B5    50               push eax
    249. 004294B6    51               push ecx
    250. 004294B7    FF15 94104000    call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>; MSVBVM60.__vbaStrVarVal
    251. 004294BD    50               push eax
    252. 004294BE    FF15 20104000    call dword ptr ds:[<&MSVBVM60.#516>]         ; MSVBVM60.rtcAnsiValueBstr
    253. 004294C4    66:2B46 58       sub ax,word ptr ds:[esi+58]                  ; 注册码第一位-1,第二位-2,如此类推
    254. 004294C8    0F80 77020000    jo crackme_.00429745
    255. 004294CE    0FBFD0           movsx edx,ax                                 ; 加密后的结果
    256. 004294D1    8D45 8C          lea eax,dword ptr ss:[ebp-74]
    257. 004294D4    52               push edx
    258. 004294D5    50               push eax
    259. 004294D6    FF15 8C104000    call dword ptr ds:[<&MSVBVM60.#608>]         ; MSVBVM60.rtcVarBstrFromAnsi
    260. 004294DC    0FBF4E 58        movsx ecx,word ptr ds:[esi+58]
    261. 004294E0    57               push edi
    262. 004294E1    51               push ecx
    263. 004294E2    8D55 8C          lea edx,dword ptr ss:[ebp-74]
    264. 004294E5    6A 01            push 1
    265. 004294E7    52               push edx
    266. 004294E8    FF15 10104000    call dword ptr ds:[<&MSVBVM60.__vbaStrVarMov>; MSVBVM60.__vbaStrVarMove
    267. 004294EE    8BD0             mov edx,eax
    268. 004294F0    8D4D C8          lea ecx,dword ptr ss:[ebp-38]
    269. 004294F3    FF15 D8104000    call dword ptr ds:[<&MSVBVM60.__vbaStrMove>] ; MSVBVM60.__vbaStrMove
    270. 004294F9    50               push eax
    271. 004294FA    6A 00            push 0
    272. 004294FC    FF15 EC104000    call dword ptr ds:[<&MSVBVM60.__vbaMidStmtBs>; MSVBVM60.__vbaMidStmtBstr
    273. 00429502    8D45 C8          lea eax,dword ptr ss:[ebp-38]
    274. 00429505    8D4D CC          lea ecx,dword ptr ss:[ebp-34]
    275. 00429508    50               push eax
    276. 00429509    51               push ecx
    277. 0042950A    6A 02            push 2
    278. 0042950C    FF15 B0104000    call dword ptr ds:[<&MSVBVM60.__vbaFreeStrLi>; MSVBVM60.__vbaFreeStrList
    279. 00429512    8D55 8C          lea edx,dword ptr ss:[ebp-74]
    280. 00429515    8D45 9C          lea eax,dword ptr ss:[ebp-64]
    281. 00429518    52               push edx
    282. 00429519    8D4D AC          lea ecx,dword ptr ss:[ebp-54]
    283. 0042951C    50               push eax
    284. 0042951D    51               push ecx
    285. 0042951E    6A 03            push 3
    286. 00429520    FFD3             call ebx
    287. 00429522    66:8B56 58       mov dx,word ptr ds:[esi+58]
    288. 00429526    B8 01000000      mov eax,1
    289. 0042952B    83C4 1C          add esp,1C
    290. 0042952E    66:03D0          add dx,ax
    291. 00429531    0F80 0E020000    jo crackme_.00429745
    292. 00429537    66:8956 58       mov word ptr ds:[esi+58],dx
    293. 0042953B  ^ E9 27FFFFFF      jmp crackme_.00429467
    294. 00429540    8B46 40          mov eax,dword ptr ds:[esi+40]
    295. 00429543    8D4D C0          lea ecx,dword ptr ss:[ebp-40]
    296. 00429546    50               push eax
    297. 00429547    51               push ecx
    298. 00429548    FF15 C4104000    call dword ptr ds:[<&MSVBVM60.__vbaStrToAnsi>; MSVBVM60.__vbaStrToAnsi
    299. 0042954E    8B17             mov edx,dword ptr ds:[edi]
    300. 00429550    50               push eax
    301. 00429551    8D45 C4          lea eax,dword ptr ss:[ebp-3C]
    302. 00429554    52               push edx
    303. 00429555    50               push eax
    304. 00429556    FF15 C4104000    call dword ptr ds:[<&MSVBVM60.__vbaStrToAnsi>; MSVBVM60.__vbaStrToAnsi
    305. 0042955C    50               push eax
    306. 0042955D    8D4D C8          lea ecx,dword ptr ss:[ebp-38]
    307. 00429560    68 BC7F4200      push crackme_.00427FBC                       ; UNICODE "name"
    308. 00429565    51               push ecx
    309. 00429566    FF15 C4104000    call dword ptr ds:[<&MSVBVM60.__vbaStrToAnsi>; MSVBVM60.__vbaStrToAnsi
    310. 0042956C    50               push eax
    311. 0042956D    8D55 CC          lea edx,dword ptr ss:[ebp-34]
    312. 00429570    68 B07F4200      push crackme_.00427FB0                       ; UNICODE "usr"
    313. 00429575    52               push edx
    314. 00429576    FF15 C4104000    call dword ptr ds:[<&MSVBVM60.__vbaStrToAnsi>; MSVBVM60.__vbaStrToAnsi
    315. 0042957C    50               push eax
    316. 0042957D    E8 E2E9FFFF      call crackme_.00427F64
    317. 00429582    8985 38FFFFFF    mov dword ptr ss:[ebp-C8],eax
    318. 00429588    FF15 2C104000    call dword ptr ds:[<&MSVBVM60.__vbaSetSystem>; MSVBVM60.__vbaSetSystemError
    319. 0042958E    8B45 C4          mov eax,dword ptr ss:[ebp-3C]
    320. 00429591    50               push eax
    321. 00429592    57               push edi
    322. 00429593    8B3D 7C104000    mov edi,dword ptr ds:[<&MSVBVM60.__vbaStrToU>; MSVBVM60.__vbaStrToUnicode
    323. 00429599    FFD7             call edi
    324. 0042959B    8B4D C0          mov ecx,dword ptr ss:[ebp-40]
    325. 0042959E    8D46 40          lea eax,dword ptr ds:[esi+40]
    326. 004295A1    51               push ecx
    327. 004295A2    50               push eax
    328. 004295A3    FFD7             call edi
    329. 004295A5    8B95 38FFFFFF    mov edx,dword ptr ss:[ebp-C8]
    330. 004295AB    8D45 C0          lea eax,dword ptr ss:[ebp-40]
    331. 004295AE    8956 34          mov dword ptr ds:[esi+34],edx
    332. 004295B1    8D4D C4          lea ecx,dword ptr ss:[ebp-3C]
    333. 004295B4    50               push eax
    334. 004295B5    8D55 C8          lea edx,dword ptr ss:[ebp-38]
    335. 004295B8    51               push ecx
    336. 004295B9    8D45 CC          lea eax,dword ptr ss:[ebp-34]
    337. 004295BC    52               push edx
    338. 004295BD    50               push eax
    339. 004295BE    6A 04            push 4
    340. 004295C0    FF15 B0104000    call dword ptr ds:[<&MSVBVM60.__vbaFreeStrLi>; MSVBVM60.__vbaFreeStrList
    341. 004295C6    8B46 34          mov eax,dword ptr ds:[esi+34]
    342. 004295C9    83C4 14          add esp,14
    343. 004295CC    83F8 01          cmp eax,1
    344. 004295CF    BF 04000280      mov edi,80020004
    345. 004295D4    74 74            je short crackme_.0042964A
    346. 004295D6    BE 0A000000      mov esi,0A
    347. 004295DB    8D95 6CFFFFFF    lea edx,dword ptr ss:[ebp-94]
    348. 004295E1    8D4D AC          lea ecx,dword ptr ss:[ebp-54]
    349. 004295E4    897D 84          mov dword ptr ss:[ebp-7C],edi
    350. 004295E7    89B5 7CFFFFFF    mov dword ptr ss:[ebp-84],esi
    351. 004295ED    897D 94          mov dword ptr ss:[ebp-6C],edi
    352. 004295F0    8975 8C          mov dword ptr ss:[ebp-74],esi
    353. 004295F3    897D A4          mov dword ptr ss:[ebp-5C],edi
    354. 004295F6    8975 9C          mov dword ptr ss:[ebp-64],esi
    355. 004295F9    C785 74FFFFFF 9C>mov dword ptr ss:[ebp-8C],crackme_.00427F9C
    356. 00429603    C785 6CFFFFFF 08>mov dword ptr ss:[ebp-94],8
    357. 0042960D    FF15 C8104000    call dword ptr ds:[<&MSVBVM60.__vbaVarDup>]  ; MSVBVM60.__vbaVarDup
    358. 00429613    8D8D 7CFFFFFF    lea ecx,dword ptr ss:[ebp-84]
    359. 00429619    8D55 8C          lea edx,dword ptr ss:[ebp-74]
    360. 0042961C    51               push ecx
    361. 0042961D    8D45 9C          lea eax,dword ptr ss:[ebp-64]
    362. 00429620    52               push edx
    363. 00429621    50               push eax
    364. 00429622    8D4D AC          lea ecx,dword ptr ss:[ebp-54]
    365. 00429625    6A 00            push 0
    366. 00429627    51               push ecx
    367. 00429628    FF15 40104000    call dword ptr ds:[<&MSVBVM60.#595>]         ; MSVBVM60.rtcMsgBox
    368. 0042962E    8D95 7CFFFFFF    lea edx,dword ptr ss:[ebp-84]
    369. 00429634    8D45 8C          lea eax,dword ptr ss:[ebp-74]
    370. 00429637    52               push edx
    371. 00429638    8D4D 9C          lea ecx,dword ptr ss:[ebp-64]
    372. 0042963B    50               push eax
    373. 0042963C    8D55 AC          lea edx,dword ptr ss:[ebp-54]
    374. 0042963F    51               push ecx
    375. 00429640    52               push edx
    376. 00429641    6A 04            push 4
    377. 00429643    FFD3             call ebx
    378. 00429645    83C4 14          add esp,14
    379. 00429648    EB 05            jmp short crackme_.0042964F
    380. 0042964A    BE 0A000000      mov esi,0A
    381. 0042964F    8D95 6CFFFFFF    lea edx,dword ptr ss:[ebp-94]
    382. 00429655    8D4D AC          lea ecx,dword ptr ss:[ebp-54]
    383. 00429658    897D 84          mov dword ptr ss:[ebp-7C],edi
    384. 0042965B    89B5 7CFFFFFF    mov dword ptr ss:[ebp-84],esi
    385. 00429661    897D 94          mov dword ptr ss:[ebp-6C],edi
    386. 00429664    8975 8C          mov dword ptr ss:[ebp-74],esi
    387. 00429667    897D A4          mov dword ptr ss:[ebp-5C],edi
    388. 0042966A    8975 9C          mov dword ptr ss:[ebp-64],esi
    389. 0042966D    C785 74FFFFFF CC>mov dword ptr ss:[ebp-8C],crackme_.00427FCC  ; UNICODE "Please restart to wheather u've done a goog job!"
    390. 00429677    C785 6CFFFFFF 08>mov dword ptr ss:[ebp-94],8
    391. 00429681    FF15 C8104000    call dword ptr ds:[<&MSVBVM60.__vbaVarDup>]  ; MSVBVM60.__vbaVarDup
    392. 00429687    8D85 7CFFFFFF    lea eax,dword ptr ss:[ebp-84]
    393. 0042968D    8D4D 8C          lea ecx,dword ptr ss:[ebp-74]
    394. 00429690    50               push eax
    395. 00429691    8D55 9C          lea edx,dword ptr ss:[ebp-64]
    396. 00429694    51               push ecx
    397. 00429695    52               push edx
    398. 00429696    8D45 AC          lea eax,dword ptr ss:[ebp-54]
    399. 00429699    6A 00            push 0
    400. 0042969B    50               push eax
    401. 0042969C    FF15 40104000    call dword ptr ds:[<&MSVBVM60.#595>]         ; MSVBVM60.rtcMsgBox
    402. 004296A2    8D8D 7CFFFFFF    lea ecx,dword ptr ss:[ebp-84]
    403. 004296A8    8D55 8C          lea edx,dword ptr ss:[ebp-74]
    复制代码


    ////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////

    总结:

    1) NOP掉0042980B可以去掉地址调用

    2) NOP掉00429A04和0042A166可以去掉对话框

    3) 00429F6B ---》爆破点

    4) 算法:用户名分别+1,+2,……和-1,-2,……获得新的两个结果,只要这两个结果的ASCII累加值相 等就注成功

    5) 一组可用注册信息:name:  leng  
                                  code:  nito
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    [ 本帖最后由 冷血书生 于 2006-7-23 15:21 编辑 ]

    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-22 23:30:48 | 显示全部楼层
    呵呵~~
    刚才偶还在冷兄基地里看这个文章哦~~
    原来这里也有。
    非常好的学习文章,多谢拉~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-23 08:27:55 | 显示全部楼层
    学习。。。。。。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-23 15:12:28 | 显示全部楼层
    指出冷血兄一点笔误的地方:
    004294B6    51               push ecx
    004294B7    FF15 94104000    call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>; MSVBVM60.__vbaStrVarVal
    004294BD    50               push eax
    004294BE    FF15 20104000    call dword ptr ds:[<&MSVBVM60.#516>]         ; MSVBVM60.rtcAnsiValueBstr
    004294C4    66:2B46 58       sub ax,word ptr ds:[esi+58]                  ; 用户名第一位-1,第二位-2,如此类推
    004294C8    0F80 77020000    jo crackme_.00429745
    004294CE    0FBFD0           movsx edx,ax                                 ; 加密后的结果
    004294D1    8D45 8C          lea eax,dword ptr ss:[ebp-74]
    应该是试练码第一位-1,第二位-2~`~~~~
    如果不亲自跟踪遍看这个地方容易迷失~~
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2006-7-23 15:21:16 | 显示全部楼层
    原帖由 网游难民 于 2006-7-23 15:12 发表
    指出冷血兄一点笔误的地方:
    004294B6    51               push ecx
    004294B7    FF15 94104000    call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>; MSVBVM60.__vbaStrVarVal
    004294BD    50      ...



    复制后忘记修改了,改一下,呵呵,谢谢指出!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-23 16:33:31 | 显示全部楼层
    学习,收藏!!支持!!!!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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