P-Code + 重启验证——闪猫 V4.01
下载页面: http://www.skycn.com/soft/10256.html
软件大小: 3807 KB
软件语言: 简体中文
软件类别: 国产软件 / 共享版 / 下载工具
应用平台: Win9x/NT/2000/XP
加入时间: 2003-04-21 13:22:44
下载次数: 11930
推荐等级: ***
开 发 商: http://zmhh.6to23.com/
【软件简介】:功能强大,小巧易用的Flash动画下载软件。该软件可以让你将网上漂亮的Flash动画保存到你的机器中。1.可以根据包含Flash动画的网址,自动提取Flash动画路径并下载。2.可以同时下载多个Flash动画,数量不限。3.可以直接观看网络上Flash动画和硬盘中保存的Flash动画。4.可以显示下载进度、文件大小、传输速率等信息。
【软件限制】:功能限制
【作者声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【破解工具】:Ollydbg1.09、PEiD、WKTVBDE、ExDec、HIEW
—————————————————————————————————
【过 程】:
这是2个月前给朋友看的,近日有空整理了出来。P-CODE 的东东,并且是重启验证。
我分别用 Ollydbg 和 WKTVBDE 做了一遍,大家可以比照这两种工具调试 P-CODE 的特点。
FlashCat.exe 无壳。 P-CODE 编译。
机器码:5KA089DJ
试炼码:13572468
—————————————————————————————————
一、先用 Ollydbg 破解
试炼码 保存在注册表里,可以启动时下针对注册表的断点。
但程序会调用VB的常用断点进行运算、处理,所以我直接下断rtcMidCharVar
1、在MSVBVM60.rtcMidCharVar上下断点
733B4649 8B4424 14 mov eax,dword ptr ss:[esp+14]
733B464D 03D8 add ebx,eax
====>取依次取机器码 5、K、A、0、8、9、D、J
733B464F 53 push ebx
733B4650 FF15 EC193973 call dword ptr ds:[<&OLEAUT32.#150>]
733B4656 8BF0 mov esi,eax
733B4658 85F6 test esi,esi
733B465A 0F84 D0320200 je MSVBVM60.733D7930
733B4660 8BC6 mov eax,esi
733B4662 5F pop edi
733B4663 5E pop esi
733B4664 5B pop ebx
733B4665 C2 0C00 retn 0C
——————————————————————
2、MSVBVM60.rtcAnsiValueBstr 取字符的ASCII码值
7347A6D0 66:0FB645 0A movzx ax,byte ptr ss:[ebp+A]
====>35、4B、41、30、38、39、44、4A
7347A6D5 EB F4 jmp short MSVBVM60.7347A6CB
——————————————————————
3、循环累加
734951A8 58 pop eax
734951A9 010424 add dword ptr ss:[esp],eax
====>35+4B+41+30+38+39+44+4A=1F0
734951AC ^ 0F80 B0EEFFFF jo MSVBVM60.73494062
734951B2 33C0 xor eax,eax
734951B4 8A06 mov al,byte ptr ds:[esi]
734951B6 46 inc esi
734951B7 FF2485 58EA4873 jmp dword ptr ds:[eax*4+7348EA58]
——————————————————————
4、以上累加的和再 *A*A*A 即:*1000(D)
73495282 59 pop ecx
73495283 58 pop eax
73495284 F7E9 imul ecx
====>EAX=1F0 * A * A * A=00079180
73495286 ^ 0F80 D6EDFFFF jo MSVBVM60.73494062
7349528C 50 push eax
7349528D 33C0 xor eax,eax
7349528F 8A06 mov al,byte ptr ds:[esi]
73495291 46 inc esi
73495292 FF2485 58EA4873 jmp dword ptr ds:[eax*4+7348EA58]
——————————————————————
5、再和0131A3D3异或
7349549E 58 pop eax
7349549F 310424 xor dword ptr ss:[esp],eax
====>[esp]=0131A3D3 XOR 00079180=01363253(H)=20329043(D)
734954A2 33C0 xor eax,eax
734954A4 8A06 mov al,byte ptr ds:[esi]
734954A6 46 inc esi
734954A7 FF2485 58EA4873 jmp dword ptr ds:[eax*4+7348EA58]
——————————————————————
6、取其10进制值 MSVBVM60.__vbaStrI4
734934CF E8 9E16FEFF call MSVBVM60.__vbaStrI4
====>转成10进制值
734934D4 50 push eax
====>EAX=20329043
734934D5 33C0 xor eax,eax
734934D7 8A06 mov al,byte ptr ds:[esi]
734934D9 46 inc esi
734934DA FF2485 58EA4873 jmp dword ptr ds:[eax*4+7348EA58]
——————————————————————
7、比较 ^O^ Repe Cmps
7716C459 55 push ebp
7716C45A 8BEC mov ebp,esp
7716C45C 53 push ebx
7716C45D 56 push esi
7716C45E 57 push edi
7716C45F 8B7D 0C mov edi,dword ptr ss:[ebp+C]
====>EDI=13572468 试炼码
7716C462 8B75 08 mov esi,dword ptr ss:[ebp+8]
====>ESI=20329043 注册码
7716C465 8B4D 10 mov ecx,dword ptr ss:[ebp+10]
7716C468 33C0 xor eax,eax
7716C46A F3:66:A7 repe cmps word ptr es:[edi],word ptr ds:[esi]
====>比较
7716C46D 74 05 je short OLEAUT32.7716C474
7716C46F 1BC0 sbb eax,eax
7716C471 83D8 FF sbb eax,-1
7716C474 5F pop edi
7716C475 5E pop esi
7716C476 5B pop ebx
7716C477 5D pop ebp
7716C478 C3 retn
—————————————————————————————————
二、用 WKTVBDE + ExDec 破解
同样可以在 MSVBVM60.rtcMidCharVar 上下断点。
不清楚 VBExplorer 反编译这个东东时会自动退出,希望 万涛 先生能够看看 ^O^
426B17: 04 FLdRfVar local_009C
426B1A: 04 FLdRfVar local_00FC
426B1D: 0a ImpAdCallFPR4:
====>依次取机器码:5、K、A、0、8、9、D、J
426B22: 04 FLdRfVar local_00FC
426B25: Lead2/fe CStrVarVal local_00B4
426B29: 0b ImpAdCallI2
====>取字符的ASCII码值
426B2E: e7 CI4UI1
426B2F: aa AddI4
====>累加=1F0
426B30: 71 FStR4 local_0088
426B33: 2f FFree1Str local_00B4
426B36: 36 FFreeVar
426B3D: 04 FLdRfVar local_00A2
426B40: 64 NextI2: (continue) 426B0B
====>循环
426B45: f4 LitI2_Byte: 0x1 1 (.)
426B47: 04 FLdRfVar local_00A2
426B4A: f5 LitI4: 0x6 6 (....)
426B4F: 6c ILdRf local_0088
426B52: Lead0/fe CStrI4
426B54: 23 FStStrNoPop local_00B4
426B57: 4a FnLenStr
426B58: ae SubI4
426B59: e4 CI2I4
426B5A: 2f FFree1Str local_00B4
426B5D: Lead3/63 ForI2: (when done) 426B77
426B63: 6c ILdRf local_0088
426B66: f5 LitI4: 0xa 10 (....)
426B6B: b2 MulI4
====>1F0 * A * A * A=00079180
426B6C: 71 FStR4 local_0088
426B6F: 04 FLdRfVar local_00A2
426B72: 64 NextI2: (continue) 426B63
====>循环3次
426B77: 6c ILdRf local_0088
426B7A: f5 LitI4: 0x131a3d3 20030419 (.1..)
426B7F: Lead0/11 XorI2
====>00079180 XOR 0131A3D3=01363253
426B81: Lead0/fe CStrI4
====>取01363253的10进制值
426B83: 31 FStStr local_008C
====>20329043
426B86: 6c ILdRf local_008C
====>20329043 入栈 注册码
426B89: 6c ILdRf local_00A0
====>13572468 入栈 试炼码
426B8C: Lead0/30 EqStr
====>比较
426B8E: 6c ILdRf local_00A0
====>13572468 入栈 试炼码
426B91: 1b LitStr: ''
426B94: Lead0/30 EqStr
====>这个我就不说了。你们是幸福的 ^O^
426B96: c5 OrI4
426B97: 1c BranchF: 426BA1
====>跳则OVER!
——————————————————————
另外:用 WKTVBDE 调试时会有干扰指令,不要看花眼呀
0041E2F7: F5 LitI4: -> 7E9h 2025
0041E2FC: C7 EqI4
0041E2FD: 1C BranchF 0041E33F ?
0041E300: 6C ILdRf 00000200h
0041E303: F5 LitI4: -> 202h 514
0041E308: C7 EqI4
0041E309: 1C BranchF 0041E30C ?
0041E30C: 6C ILdRf 00000200h
0041E30F: F5 LitI4: -> 205h 517
0041E314: C7 EqI4
0041E315: 1C BranchF 0041E33F ?
0041E318: 27 LitVar_Missing 0012DAE4h
0041E31B: 25 PopAdLdVar
0041E31C: 27 LitVar_Missing 0012DAF4h
0041E31F: 25 PopAdLdVar
0041E320: 27 LitVar_Missing 0012DB04h
0041E323: 25 PopAdLdVar
0041E324: 27 LitVar_Missing 0012DB14h
0041E327: 25 PopAdLdVar
0041E33F: 6C ILdRf 00000000h
0041E342: 6C ILdRf 00000004h
0041E345: 6C ILdRf 00000088h
0041E348: 6C ILdRf 000F01E4h
0041E34B: 94 FMemLdR4
0041E350: 5E ImpAdCallI4 user32!CallWindowProcA
0041E355: 71 FStR4
0041E358: 3C SetLastSystemError
0041E359: 6C ILdRf 00000000h
0041E35C: 71 FStR4
0041E35F: 14 ExitProc
—————————————————————————————————
【算 法 总 结】:
1、依次取机器码:5、K、A、0、8、9、D、J
2、累加机器码字符的ACSII码值=1F0
3、乘以3E8: 1F0 * A * A * A=00079180
3、与0131A3D3异或:00079180 XOR 0131A3D3=01363253
4、取其10进制值就是注册码:20329043
BTW:没测试是否还有网络验证。
—————————————————————————————————
【完 美 爆 破】:
426B97: 1C BranchF 426BA1
改为:1D BranchT 426BA1 哎,改成无效指令最好了
—————————————————————————————————
【注册信息保存】:
REGEDIT4
[HKEY_CURRENT_USERSoftwareVB and VBA Program Settings照猫画虎闪猫]
"注册码"="20329043"
—————————————————————————————————
【整 理】:
机器码:5KA089DJ
注册码:20329043
—————————————————————————————————
, _/
/| _.-~/ _ , 青春都一饷
( /~ / ~-._ |
`\ _/ ~ ) 忍把浮名
_-~~~-.) )__/;;,. _ //'
/'_, --~ ~~~- ,;;___( (.-~~~-. 换了破解轻狂
`~ _( ,_..-- ( ,;'' / ~-- /._`
/~~//' /' `~ ) /--.._, )_ `~
" `~" " `" /~'` `\~~
" " "~' ""
Cracked By 巢水工作坊——fly [OCN][FCG]
2003-09-21 21:21