标 题: 【原创】破解屏录专家
发帖人:yijun8354
时 间: 2005-08-12 23:14
原文链接:http://bbs.pediy.com/showthread.php?threadid=16122
详细信息:
【破解作者】 yijun
【作者邮箱】 yijun8354@sina.com
【作者主页】 无
【使用工具】 OD,PEID,c32asm
【破解平台】 Win9x/NT/2000/XP
【软件名称】 屏录专家
【版本信息】 5.5
【下载地址】 天空
【软件简介】
优秀的屏幕录象软件,是做动画的好帮手!!!!
未注册版本将有以下限制:
1.软件启动时会弹出欢迎注册窗体
2.生成的AVI、EXE、ASF文件播放时会有“未注册”等字样
3.不能在生成的AVI、EXE、ASF文件中加入署名或版权声明
【软件大小】 1.54M
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
最近看动画感觉现在的动画大多数都是用屏录专家,所以下个来瞧瞧。虽然现在有很多破解版的但是感觉学了破解后
越来越不能容忍用现成的软件了^-^
好,开始~~~
先用PEID查壳知道该软件无壳,Borland C++ 1999编写。OD载入,用了几个OD自带插件查找关键字,但是一用就挂
~~~~~~~所以改用c32asm查找,最后来到以下关键处:
0043896C 55 push ebp //在此下断
0043896D 8BEC mov ebp,esp
0043896F 81C4 B8FEFFFF add esp,-148
00438975 53 push ebx
00438976 8995 38FFFFFF mov dword ptr ss:[ebp-C8],edx
0043897C 8985 3CFFFFFF mov dword ptr ss:[ebp-C4],eax
00438982 B8 74CD5000 mov eax,屏录专家.0050CD74
00438987 E8 9C450A00 call 屏录专家.004DCF28
0043898C 66:C785 50FFFFF>mov word ptr ss:[ebp-B0],8
00438995 8D45 FC lea eax,dword ptr ss:[ebp-4]
00438998 E8 378EFCFF call 屏录专家.004017D4
0043899D 8BD0 mov edx,eax
0043899F FF85 5CFFFFFF inc dword ptr ss:[ebp-A4]
004389A5 8B8D 3CFFFFFF mov ecx,dword ptr ss:[ebp-C4]
004389AB 8B81 E4020000 mov eax,dword ptr ds:[ecx+2E4]
004389B1 E8 5E860500 call 屏录专家.00491014 ; 计算注册码位数
004389B6 8D55 FC lea edx,dword ptr ss:[ebp-4] ; 假码地址送EDX
004389B9 FF32 push dword ptr ds:[edx]
004389BB 8D45 F8 lea eax,dword ptr ss:[ebp-8]
004389BE E8 118EFCFF call 屏录专家.004017D4
004389C3 8BD0 mov edx,eax
004389C5 FF85 5CFFFFFF inc dword ptr ss:[ebp-A4]
004389CB 8B8D 3CFFFFFF mov ecx,dword ptr ss:[ebp-C4]
004389D1 8B81 DC020000 mov eax,dword ptr ds:[ecx+2DC]
004389D7 E8 38860500 call 屏录专家.00491014 ; 计算用户名长度
004389DC 8D55 F8 lea edx,dword ptr ss:[ebp-8] ; 用户名地址送EDX
004389DF FF32 push dword ptr ds:[edx]
004389E1 FFB5 3CFFFFFF push dword ptr ss:[ebp-C4]
004389E7 E8 C40D0000 call 屏录专家.004397B0 ; 异常
004389EC 83C4 0C add esp,0C
004389EF 3C 01 cmp al,1
004389F1 0F94C1 sete cl
004389F4 83E1 01 and ecx,1
004389F7 51 push ecx
004389F8 FF8D 5CFFFFFF dec dword ptr ss:[ebp-A4]
004389FE 8D45 F8 lea eax,dword ptr ss:[ebp-8]
00438A01 BA 02000000 mov edx,2
00438A06 E8 71F80A00 call 屏录专家.004E827C
00438A0B FF8D 5CFFFFFF dec dword ptr ss:[ebp-A4]
00438A11 8D45 FC lea eax,dword ptr ss:[ebp-4]
00438A14 BA 02000000 mov edx,2
00438A19 E8 5EF80A00 call 屏录专家.004E827C
00438A1E 59 pop ecx
00438A1F 84C9 test cl,cl
00438A21 74 48 je short 屏录专家.00438A6B //跳走
******************************************************************************************************
00438A6B 6A 14 push 14 //从00438A21跳来
00438A6D 6A 00 push 0
00438A6F 8D85 ECFEFFFF lea eax,dword ptr ss:[ebp-114]
00438A75 50 push eax
00438A76 E8 DD400A00 call 屏录专家.004DCB58
00438A7B 83C4 0C add esp,0C
00438A7E 33D2 xor edx,edx
00438A80 8995 34FFFFFF mov dword ptr ss:[ebp-CC],edx
00438A86 6A 14 push 14
00438A88 6A 00 push 0
00438A8A 8D8D 04FFFFFF lea ecx,dword ptr ss:[ebp-FC]
00438A90 51 push ecx
00438A91 E8 C2400A00 call 屏录专家.004DCB58
00438A96 83C4 0C add esp,0C
00438A99 6A 14 push 14
00438A9B 6A 00 push 0
00438A9D 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C]
00438AA3 50 push eax
00438AA4 E8 AF400A00 call 屏录专家.004DCB58
00438AA9 83C4 0C add esp,0C
00438AAC 66:C785 50FFFFF>mov word ptr ss:[ebp-B0],20
00438AB5 8D45 F0 lea eax,dword ptr ss:[ebp-10]
00438AB8 E8 178DFCFF call 屏录专家.004017D4
00438ABD 8BD0 mov edx,eax
00438ABF FF85 5CFFFFFF inc dword ptr ss:[ebp-A4]
00438AC5 8B8D 3CFFFFFF mov ecx,dword ptr ss:[ebp-C4]
00438ACB 8B81 DC020000 mov eax,dword ptr ds:[ecx+2DC]
00438AD1 E8 3E850500 call 屏录专家.00491014
00438AD6 8D45 F0 lea eax,dword ptr ss:[ebp-10]
00438AD9 E8 46D2FCFF call 屏录专家.00405D24 ; 取用户名
00438ADE 50 push eax
00438ADF 8D95 D4FEFFFF lea edx,dword ptr ss:[ebp-12C]
00438AE5 52 push edx
00438AE6 E8 99410A00 call 屏录专家.004DCC84
00438AEB 83C4 08 add esp,8
00438AEE FF8D 5CFFFFFF dec dword ptr ss:[ebp-A4]
00438AF4 8D45 F0 lea eax,dword ptr ss:[ebp-10]
00438AF7 BA 02000000 mov edx,2
00438AFC E8 7BF70A00 call 屏录专家.004E827C
00438B01 66:C785 50FFFFF>mov word ptr ss:[ebp-B0],2C
00438B0A 8D45 EC lea eax,dword ptr ss:[ebp-14]
00438B0D E8 C28CFCFF call 屏录专家.004017D4
00438B12 8BD0 mov edx,eax
00438B14 FF85 5CFFFFFF inc dword ptr ss:[ebp-A4]
00438B1A 8B8D 3CFFFFFF mov ecx,dword ptr ss:[ebp-C4]
00438B20 8B81 F0020000 mov eax,dword ptr ds:[ecx+2F0]
00438B26 E8 E9840500 call 屏录专家.00491014
00438B2B 8D45 EC lea eax,dword ptr ss:[ebp-14]
00438B2E E8 F1D1FCFF call 屏录专家.00405D24 ; 取机器码
00438B33 50 push eax
00438B34 8D95 ECFEFFFF lea edx,dword ptr ss:[ebp-114]
00438B3A 52 push edx
00438B3B E8 44410A00 call 屏录专家.004DCC84
00438B40 83C4 08 add esp,8
00438B43 FF8D 5CFFFFFF dec dword ptr ss:[ebp-A4]
00438B49 8D45 EC lea eax,dword ptr ss:[ebp-14]
00438B4C BA 02000000 mov edx,2
00438B51 E8 26F70A00 call 屏录专家.004E827C
00438B56 33C9 xor ecx,ecx ; ECX清0
00438B58 898D 30FFFFFF mov dword ptr ss:[ebp-D0],ecx
00438B5E 8B85 30FFFFFF mov eax,dword ptr ss:[ebp-D0]
00438B64 8A9405 D4FEFFFF mov dl,byte ptr ss:[ebp+eax-12C] ; 用户名逐位送DL
00438B6B 8B8D 30FFFFFF mov ecx,dword ptr ss:[ebp-D0] ; 循环次数送ECX
00438B71 32940D ECFEFFFF xor dl,byte ptr ss:[ebp+ecx-114] ; 用户名和对应机器码逐位异或
00438B78 8B85 30FFFFFF mov eax,dword ptr ss:[ebp-D0]
00438B7E 889405 04FFFFFF mov byte ptr ss:[ebp+eax-FC],dl ; DL送[ebp+eax-FC](也就是刚才异或的结果)
00438B85 8B95 30FFFFFF mov edx,dword ptr ss:[ebp-D0]
00438B8B 0FBE8C15 04FFFF>movsx ecx,byte ptr ss:[ebp+edx-FC] ; 再将结果送ECX
00438B93 898D B8FEFFFF mov dword ptr ss:[ebp-148],ecx ; ECX送[ebp-148]
00438B99 DB85 B8FEFFFF fild dword ptr ss:[ebp-148] ; 换成浮点值
00438B9F 83C4 F8 add esp,-8
00438BA2 DD1C24 fstp qword ptr ss:[esp]
00438BA5 E8 72850A00 call 屏录专家.004E111C
00438BAA 83C4 08 add esp,8
00438BAD DB85 30FFFFFF fild dword ptr ss:[ebp-D0]
00438BB3 DEC9 fmulp st(1),st ; 再将该浮点值和已循环次数乘
00438BB5 DB85 34FFFFFF fild dword ptr ss:[ebp-CC]
00438BBB DEC1 faddp st(1),st ; 再加上以前累加值
00438BBD E8 82850A00 call 屏录专家.004E1144 ; 转换成整数
00438BC2 8985 34FFFFFF mov dword ptr ss:[ebp-CC],eax ; 结果保存在[ebp-CC]中
00438BC8 FF85 30FFFFFF inc dword ptr ss:[ebp-D0] ; [ebp-D0]加一
00438BCE 83BD 30FFFFFF 1>cmp dword ptr ss:[ebp-D0],14 ; 和14比较
00438BD5 ^ 7C 87 jl short 屏录专家.00438B5E ; 没完继续
00438BD7 8185 34FFFFFF 3>add dword ptr ss:[ebp-CC],3039 ; 再将刚才循环结果加上3039
00438BE1 FFB5 34FFFFFF push dword ptr ss:[ebp-CC] ; 入栈
00438BE7 68 9FCA5000 push 屏录专家.0050CA9F ; ASCII "%d"
00438BEC 8D95 04FFFFFF lea edx,dword ptr ss:[ebp-FC] ; [ebp-FC]=H]RD\052222222222222的地址送EDX
00438BF2 52 push edx ; 入栈
00438BF3 E8 3C6B0A00 call 屏录专家.004DF734
00438BF8 83C4 0C add esp,0C
00438BFB 66:C785 50FFFFF>mov word ptr ss:[ebp-B0],38
00438C04 8D45 E8 lea eax,dword ptr ss:[ebp-18]
00438C07 E8 C88BFCFF call 屏录专家.004017D4
00438C0C 8BD0 mov edx,eax
00438C0E FF85 5CFFFFFF inc dword ptr ss:[ebp-A4]
00438C14 8B8D 3CFFFFFF mov ecx,dword ptr ss:[ebp-C4]
00438C1A 8B81 E4020000 mov eax,dword ptr ds:[ecx+2E4]
00438C20 E8 EF830500 call 屏录专家.00491014 ; 计算假码位数
00438C25 8D45 E8 lea eax,dword ptr ss:[ebp-18]
00438C28 E8 F7D0FCFF call 屏录专家.00405D24 ; 取假码到EAX
00438C2D 50 push eax ; 入栈
00438C2E 8D95 BCFEFFFF lea edx,dword ptr ss:[ebp-144]
00438C34 52 push edx
00438C35 E8 4A400A00 call 屏录专家.004DCC84
00438C3A 83C4 08 add esp,8
00438C3D FF8D 5CFFFFFF dec dword ptr ss:[ebp-A4]
00438C43 8D45 E8 lea eax,dword ptr ss:[ebp-18]
00438C46 BA 02000000 mov edx,2
00438C4B E8 2CF60A00 call 屏录专家.004E827C
00438C50 33C9 xor ecx,ecx
00438C52 898D 30FFFFFF mov dword ptr ss:[ebp-D0],ecx
00438C58 8B85 30FFFFFF mov eax,dword ptr ss:[ebp-D0]
00438C5E 0FBE9405 04FFFF>movsx edx,byte ptr ss:[ebp+eax-FC] ; 刚才计算结果逐位送EDX(22182.52222222222222)
00438C66 8B8D 30FFFFFF mov ecx,dword ptr ss:[ebp-D0] ; 循环次数送ECX
00438C6C 0FBE840D BCFEFF>movsx eax,byte ptr ss:[ebp+ecx-144] ; 假码逐位送EAX
00438C74 83C0 EC add eax,-14 ; EAX减14
00438C77 3BD0 cmp edx,eax ; EDX和EAX比较
00438C79 0F85 AF000000 jnz 屏录专家.00438D2E ; 不能跳
00438C7F 83BD 30FFFFFF 0>cmp dword ptr ss:[ebp-D0],3 ; 循环次数和3比较
00438C86 0F85 8F000000 jnz 屏录专家.00438D1B ; 只有循环次数为3的时候不跳
00438C8C 8B95 34FFFFFF mov edx,dword ptr ss:[ebp-CC] ; [ebp-CC]为刚才计算结果(16进制),其值送EDX
00438C92 81C2 444D0000 add edx,4D44 ; EDX+4D44
00438C98 8995 B8FEFFFF mov dword ptr ss:[ebp-148],edx
00438C9E DB85 B8FEFFFF fild dword ptr ss:[ebp-148] ; 换浮点值
00438CA4 DC0D 9C974300 fmul qword ptr ds:[43979C] ; 再乘3.14
00438CAA DB2D A4974300 fld tbyte ptr ds:[4397A4]
00438CB0 DEC9 fmulp st(1),st ; ST*ST(1)
00438CB2 E8 8D840A00 call 屏录专家.004E1144 ; 转换成整数
00438CB7 8985 34FFFFFF mov dword ptr ss:[ebp-CC],eax
00438CBD 8B85 34FFFFFF mov eax,dword ptr ss:[ebp-CC]
00438CC3 B9 A0860100 mov ecx,186A0 ; 186A0送ECX
00438CC8 99 cdq
00438CC9 F7F9 idiv ecx ; EAX(刚才转换成整数的浮点值)除以ECX,余数在EDX中
00438CCB 8995 34FFFFFF mov dword ptr ss:[ebp-CC],edx ; EDX送[ebp-CC]
00438CD1 33C0 xor eax,eax
00438CD3 8985 28FFFFFF mov dword ptr ss:[ebp-D8],eax
00438CD9 33D2 xor edx,edx
00438CDB 8995 24FFFFFF mov dword ptr ss:[ebp-DC],edx
00438CE1 8B8D 24FFFFFF mov ecx,dword ptr ss:[ebp-DC]
00438CE7 0FBE840D BCFEFF>movsx eax,byte ptr ss:[ebp+ecx-144] ; 假码逐位送EAX
00438CEF 0185 28FFFFFF add dword ptr ss:[ebp-D8],eax ; 累加
00438CF5 FF85 24FFFFFF inc dword ptr ss:[ebp-DC]
00438CFB 83BD 24FFFFFF 1>cmp dword ptr ss:[ebp-DC],13 ; 和13比较
00438D02 ^ 7C DD jl short 屏录专家.00438CE1 ; 没完继续
00438D04 8B85 28FFFFFF mov eax,dword ptr ss:[ebp-D8] ; 循环结果送EAX
00438D0A B9 0A000000 mov ecx,0A ; 0A送ECX
00438D0F 99 cdq
00438D10 F7F9 idiv ecx ; EAX除以ECX
00438D12 83C2 30 add edx,30 ; EDX加30
00438D15 8995 28FFFFFF mov dword ptr ss:[ebp-D8],edx
00438D1B FF85 30FFFFFF inc dword ptr ss:[ebp-D0] ; 循环次数加一
00438D21 83BD 30FFFFFF 0>cmp dword ptr ss:[ebp-D0],5 ; 和5比较
00438D28 ^ 0F8C 2AFFFFFF jl 屏录专家.00438C58 ; 没完跳回去继续
00438D2E 83BD 30FFFFFF 0>cmp dword ptr ss:[ebp-D0],5
00438D35 0F8C 030A0000 jl 屏录专家.0043973E
00438D3B 0FBE85 CFFEFFFF movsx eax,byte ptr ss:[ebp-131] ; 注册码最后一位送EAX
00438D42 3B85 28FFFFFF cmp eax,dword ptr ss:[ebp-D8] ; EAX和刚才计算结果第一位比较
00438D48 74 10 je short 屏录专家.00438D5A ; 等就跳,要跳
00438D4A 0FBE95 CFFEFFFF movsx edx,byte ptr ss:[ebp-131]
00438D51 83FA 41 cmp edx,41
00438D54 0F8C E4090000 jl 屏录专家.0043973E
00438D5A 8B85 34FFFFFF mov eax,dword ptr ss:[ebp-CC] ; 刚才计算结果送EAX
00438D60 B9 0A000000 mov ecx,0A ; 0A送ECX
00438D65 99 cdq
00438D66 F7F9 idiv ecx ; EAX除以ECX
00438D68 8B85 30FFFFFF mov eax,dword ptr ss:[ebp-D0] ; 商送EAX,余数送EDX
00438D6E 0FBE8C05 BCFEFF>movsx ecx,byte ptr ss:[ebp+eax-144] ; 注册码第6位送ECX
00438D76 83C1 BF add ecx,-41 ; ECX减41
00438D79 2BCA sub ecx,edx ; ECX减EDX(EDX为前面相除所得余数)
00438D7B 898D 2CFFFFFF mov dword ptr ss:[ebp-D4],ecx ; 相减结果送[ebp-D4]
00438D81 83BD 2CFFFFFF 0>cmp dword ptr ss:[ebp-D4],0 ; 比较相减结果是否为0
00438D88 74 0D je short 屏录专家.00438D97 ; 等就成功
00438D8A 83BD 2CFFFFFF 0>cmp dword ptr ss:[ebp-D4],6 ; 结果和6比较
00438D91 0F85 5C090000 jnz 屏录专家.004396F3 ; 等于6也成功
00438D97 66:C785 50FFFFF>mov word ptr ss:[ebp-B0],44
00438DA0 BA A2CA5000 mov edx,屏录专家.0050CAA2 ; 成功
--------------------------------------------------------------------------------
【破解总结】
总结就不多写了,自己仔细看分析吧^-^
机器码:14812052222222222222
用户名:yijun
注册码:FFELFE98305048399545
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
有高人解说下吗?????????????????
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!