-
-
[原创]破解屏录专家
-
发表于:
2005-8-12 23:14
10753
-
【破解作者】 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
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[课程]Linux pwn 探索篇!