首页
论坛
专栏
课程

屏幕录像专家V5.0破解

2005-4-1 12:34 13584

屏幕录像专家V5.0破解

2005-4-1 12:34
13584
【破解作者】 kerfier
【使用工具】 OD,W32DASM,PEID
【破解平台】 Win9x/NT/2000/XP
【软件名称】 屏幕录像专家V5.0
【下载地址】 http://www.softreg.com.cn/shareware_view.aspx?id=/2E3EB050-8E09-47EE-8F86-FC184429AB38/
【软件简介】 Bland C++
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】

1、安装,用PEID查,无壳
2、假注册
   弹出:注册失败,请检查你的输入是否有误
3、用W32DASM载入,查找该语句,发现上面还有“注册成功,谢谢您的支持”,大喜,跳转,经过仔细观察,确定在
004392F4   /.  55                  push ebp
处设断点
4、用OD载入,设断点,F9运行,输入注册名:kerfier;注册码:987654321,断下,单步执行下来,中间只有
00439339   |.  E8 CE880500         call 屏录专家.00491C0C                      ;  读取注册码
0043935F   |.  E8 A8880500         call 屏录专家.00491C0C                      ;  读取注册名
继续执行,会出现异常,SHIFT+F9跳过,执行到
004393A9   |. /74 48               je short 屏录专家.004393F3
跳转至
004393F3   |> \6A 14               push 14                                 ; /Arg3 = 00000014

继续单步执行,直到以下循环,该循环将注册名跟机器码对应位相与,乘以系数后再相加,在此循环中将以浮点数方式相乘、相加
004394E6   |> /8B85 30FFFFFF       /mov eax,dword ptr ss:[ebp-D0]
004394EC   |. |8A9405 D4FEFFFF     |mov dl,byte ptr ss:[ebp+eax-12C]
004394F3   |. |8B8D 30FFFFFF       |mov ecx,dword ptr ss:[ebp-D0]
004394F9   |. |32940D ECFEFFFF     |xor dl,byte ptr ss:[ebp+ecx-114]
00439500   |. |8B85 30FFFFFF       |mov eax,dword ptr ss:[ebp-D0]
00439506   |. |889405 04FFFFFF     |mov byte ptr ss:[ebp+eax-FC],dl
0043950D   |. |8B95 30FFFFFF       |mov edx,dword ptr ss:[ebp-D0]
00439513   |. |0FBE8C15 04FFFFFF   |movsx ecx,byte ptr ss:[ebp+edx-FC]
0043951B   |. |898D B8FEFFFF       |mov dword ptr ss:[ebp-148],ecx
00439521   |. |DB85 B8FEFFFF       |fild dword ptr ss:[ebp-148]
00439527   |. |83C4 F8             |add esp,-8                             ; /
0043952A   |. |DD1C24              |fstp qword ptr ss:[esp]                ; |Arg1 (8-byte)
0043952D   |. |E8 22870A00         |call 屏录专家.004E1C54                     ; \屏录专家.004E1C54
00439532   |. |83C4 08             |add esp,8
00439535   |. |DB85 30FFFFFF       |fild dword ptr ss:[ebp-D0]
0043953B   |. |DEC9                |fmulp st(1),st
0043953D   |. |DB85 34FFFFFF       |fild dword ptr ss:[ebp-CC]
00439543   |. |DEC1                |faddp st(1),st
00439545   |. |E8 32870A00         |call 屏录专家.004E1C7C
0043954A   |. |8985 34FFFFFF       |mov dword ptr ss:[ebp-CC],eax
00439550   |. |FF85 30FFFFFF       |inc dword ptr ss:[ebp-D0]
00439556   |. |83BD 30FFFFFF 14    |cmp dword ptr ss:[ebp-D0],14
0043955D   |.^\7C 87               \jl short 屏录专家.004394E6
0043955F   |.  8185 34FFFFFF 39300>add dword ptr ss:[ebp-CC],3039          ;  将结果和 +0x3039
00439569   |.  FFB5 34FFFFFF       push dword ptr ss:[ebp-CC]              ; /Arg3
0043956F   |.  68 A3DD5000         push 屏录专家.0050DDA3                      ; |Arg2 = 0050DDA3 ASCII "%d"
00439574   |.  8D95 04FFFFFF       lea edx,dword ptr ss:[ebp-FC]           ; |
0043957A   |.  52                  push edx                                ; |Arg1
0043957B   |.  E8 EC6C0A00         call 屏录专家.004E026C                      ; \屏录专家.004E026C
00439580   |.  83C4 0C             add esp,0C                              ;  将上面的结果转化成十进制22372
00439583   |.  66:C785 50FFFFFF 38>mov word ptr ss:[ebp-B0],38
0043958C   |.  8D45 E8             lea eax,dword ptr ss:[ebp-18]

继续单步到这,进行注册码的处理
004395E0   |> /8B85 30FFFFFF       /mov eax,dword ptr ss:[ebp-D0]
004395E6   |. |0FBE9405 04FFFFFF   |movsx edx,byte ptr ss:[ebp+eax-FC]
004395EE   |. |8B8D 30FFFFFF       |mov ecx,dword ptr ss:[ebp-D0]
004395F4   |. |0FBE840D BCFEFFFF   |movsx eax,byte ptr ss:[ebp+ecx-144]
004395FC   |. |83C0 EC             |add eax,-14                            ;  判断注册码前5位是否为以上结果各位加上0x14
004395FF   |. |3BD0                |cmp edx,eax
00439601   |. |0F85 AF000000       |jnz 屏录专家.004396B6
00439607   |. |83BD 30FFFFFF 03    |cmp dword ptr ss:[ebp-D0],3
0043960E   |. |0F85 8F000000       |jnz 屏录专家.004396A3
00439614   |. |8B95 34FFFFFF       |mov edx,dword ptr ss:[ebp-CC]
0043961A   |. |81C2 444D0000       |add edx,4D44
00439620   |. |8995 B8FEFFFF       |mov dword ptr ss:[ebp-148],edx
00439626   |. |DB85 B8FEFFFF       |fild dword ptr ss:[ebp-148]            ;  将注册码和展开成十进制
0043962C   |. |DC0D 24A14300       |fmul qword ptr ds:[43A124]             ;  *3.14
00439632   |. |DB2D 2CA14300       |fld tbyte ptr ds:[43A12C]              ;  *0.1594896331738
00439638   |. |DEC9                |fmulp st(1),st
0043963A   |. |E8 3D860A00         |call 屏录专家.004E1C7C                 ;  将浮点结果转化成整数
0043963F   |. |8985 34FFFFFF       |mov dword ptr ss:[ebp-CC],eax
00439645   |. |8B85 34FFFFFF       |mov eax,dword ptr ss:[ebp-CC]
0043964B   |. |B9 A0860100         |mov ecx,186A0
00439650   |. |99                  |cdq
00439651   |. |F7F9                |idiv ecx
00439653   |. |8995 34FFFFFF       |mov dword ptr ss:[ebp-CC],edx
00439659   |. |33C0                |xor eax,eax
0043965B   |. |8985 28FFFFFF       |mov dword ptr ss:[ebp-D8],eax
00439661   |. |33D2                |xor edx,edx
00439663   |. |8995 24FFFFFF       |mov dword ptr ss:[ebp-DC],edx           ;  注册码前5位满足要求,则求注册码前19位和
00439669   |> |8B8D 24FFFFFF       |/mov ecx,dword ptr ss:[ebp-DC]         ;  注册码求和
0043966F   |. |0FBE840D BCFEFFFF   ||movsx eax,byte ptr ss:[ebp+ecx-144]
00439677   |. |0185 28FFFFFF       ||add dword ptr ss:[ebp-D8],eax
0043967D   |. |FF85 24FFFFFF       ||inc dword ptr ss:[ebp-DC]
00439683   |. |83BD 24FFFFFF 13    ||cmp dword ptr ss:[ebp-DC],13
0043968A   |.^|7C DD               |\jl short 屏录专家.00439669
0043968C   |. |8B85 28FFFFFF       |mov eax,dword ptr ss:[ebp-D8]          ;  和放入eax
00439692   |. |B9 0A000000         |mov ecx,0A
00439697   |. |99                  |cdq
00439698   |. |F7F9                |idiv ecx
0043969A   |. |83C2 30             |add edx,30
0043969D   |. |8995 28FFFFFF       |mov dword ptr ss:[ebp-D8],edx
004396A3   |> |FF85 30FFFFFF       |inc dword ptr ss:[ebp-D0]
004396A9   |. |83BD 30FFFFFF 05    |cmp dword ptr ss:[ebp-D0],5
004396B0   |.^\0F8C 2AFFFFFF       \jl 屏录专家.004395E0

继续下面的执行
004396B6   |> \83BD 30FFFFFF 05    cmp dword ptr ss:[ebp-D0],5
004396BD       0F8C 030A0000       jl 屏录专家.0043A0C6
004396C3   |.  0FBE85 CFFEFFFF     movsx eax,byte ptr ss:[ebp-131]         ;  注册码最后一位
004396CA   |.  3B85 28FFFFFF       cmp eax,dword ptr ss:[ebp-D8]           ;  注册码和的个位
004396D0       74 10               je short 屏录专家.004396E2                  ;  该跳
004396D2       0FBE95 CFFEFFFF     movsx edx,byte ptr ss:[ebp-131]
004396D9   |.  83FA 41             cmp edx,41
004396DC   |.  0F8C E4090000       jl 屏录专家.0043A0C6                        ;  出错
004396E2   |>  8B85 34FFFFFF       mov eax,dword ptr ss:[ebp-CC]
004396E8   |.  B9 0A000000         mov ecx,0A                              ;  5275
004396ED   |.  99                  cdq
004396EE   |.  F7F9                idiv ecx
004396F0   |.  8B85 30FFFFFF       mov eax,dword ptr ss:[ebp-D0]
004396F6   |.  0FBE8C05 BCFEFFFF   movsx ecx,byte ptr ss:[ebp+eax-144]     ;  注册码第6位
004396FE   |.  83C1 BF             add ecx,-41
00439701   |.  2BCA                sub ecx,edx                             ;  5275除以A取余
00439703   |.  898D 2CFFFFFF       mov dword ptr ss:[ebp-D4],ecx
00439709   |.  83BD 2CFFFFFF 00    cmp dword ptr ss:[ebp-D4],0
00439710       74 0D               je short 屏录专家.0043971F                  ;  该跳
00439712   |.  83BD 2CFFFFFF 05    cmp dword ptr ss:[ebp-D4],5
00439719   |.  0F85 5C090000       jnz 屏录专家.0043A07B
0043971F   |>  66:C785 50FFFFFF 44>mov word ptr ss:[ebp-B0],44
00439728   |.  BA A6DD5000         mov edx,屏录专家.0050DDA6
0043972D   |.  8D45 E4             lea eax,dword ptr ss:[ebp-1C]

--------------------------------------------------------------------------------
【破解总结】

我的机器码为:78577554305104500000
注册名为:kerfier

设机器码为:Comp[20];
注册名为:  Name[20];
1、 temp += (Comp[i] xor Name[20]) * i;
2、 得到结果 S = 22732
3、 取22732拆成ASCII对应的字符,再分别加上0x14,比如 (2)对应 0x32,再加上 0x14,即为 F,经过处理得到注册码的前5位为:FFGKF
4、 将 S = S + 0x3039 + 0x4d44,再 S = S* 3.14 * 0.1594896331738437120,然后取整,取结果的个位M
5、 M = M + 0x41; 得到注册码的第6位
7、 对注册码的前19位求和(我在其中置7~19位为0),将得到的结果的个位作为注册码的第20位

我的机器码为:78577554305104500000
注册名为:kerfier
注册码为:FFGKFJ00000000000004

附C程序:
        int i, tmp, account, bccount;

        char cCode[20];
       
        UpdateData(TRUE);
       
        for ( i=0; i<20; i++)
                cCode[i] = 0x30;

        account = 0;
        for (i=0; i<m_strName.GetLength(); i++)
        {
                tmp = m_strName[i] ^ m_strComp[i];
                account = account + tmp * i;
        }
        for ( i= m_strName.GetLength(); i<20; i++)
        {
                tmp = m_strComp[i] ^ 0;
                account = account + tmp * i;
        }
        account = account + 0x3039;
        bccount = account + 0x4d44;
        bccount = bccount * 3.14 * 0.1594896331738437120;
        bccount = bccount % 10;
        cCode[5] = bccount + 0x41;

        for (i=4; i>=0; i--)
        {
                cCode[i] = account % 10 + 0x14 + 0x30;
                account = account / 10;
        }
       
        account = 0;
        for ( i=0; i<6; i++)
                account += cCode[i];

        for ( i=6; i<19; i++)
                account += 0x30;
       
        cCode[19] = account % 10 + 0x30;
       
        m_strCode = cCode;
        m_strCode.Delete(20,7);

        UpdateData(FALSE);

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

[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (19)
auser 2005-4-1 13:16
2
0
厉害啊!!
wtict 2005-4-1 19:29
3
0
强啊!!下载下载学一下!!顶
闪电狼 2005-4-1 19:58
4
0
我爆破了..

启动NAG和录像后显示未注册 也去掉了
shuair 2 2005-4-2 08:59
5
0
顶,,简单我喜欢学习.
xsy3660 4 2005-4-3 13:58
6
0
四楼兄弟,你是怎去nag的呀?注册时爆破后,在每次的重启时还会验证注册码的呀?我也只想爆破的方式,可搞了半天,却没有找到重启验证的地方。用filemon,regmon都没有看到相关的信息呀。以前因为本人不太会写注册机,一位位去算,太烦了,20位!
鹰飞 2005-4-3 17:47
7
0
学习一下,没能力分析出来,就直接爆了
闪电狼 2005-4-3 17:49
8
0
TO:6楼

载入OD运行,出现NAG,

然后在ALT+M 打开内存 在401000处下断
会断下,然后 好几个retn以后会发现明显的循环,上面有一个跳转

跳出去就搞定.

下面是我随便记的笔记  可以参考
===================================
004106DD     /75 0A         jnz short 屏录专家.004106E9        //nop
004106DF  |. |837D C0 00    cmp dword ptr ss:[ebp-40],0
004106E3     |0F84 1A010000 je 屏录专家.00410803               //改jmp
004106E9  |> \8B55 08       mov edx,dword ptr ss:[ebp+8]
                            mov byte ptr ds:[edx+E0C],0

0042DE6D   .  8B85 44FEFFFF mov eax,dword ptr ss:[ebp-1BC]
0042DE73   .  80B8 0C0E0000>cmp byte ptr ds:[eax+E0C],0
0042DE7A   .  EB 4F         jmp short 屏录专家.0042DECB            //跳过10次检查
0042DE7C   .  66:C785 58FEF>mov word ptr ss:[ebp-1A8],290
0042DE85   .  BA AEFA4F00   mov edx,屏录专家.004FFAAE              //检查10次
0042DE8A   .  8D85 E0FEFFFF lea eax,dword ptr ss:[ebp-120]
0042DE90   .  E8 E3A90B00   call 屏录专家.004E8878
0042DE95   .  FF85 64FEFFFF inc dword ptr ss:[ebp-19C]
0042DE9B   .  8B00          mov eax,dword ptr ds:[eax]

004394E1  |.  2BCA          sub ecx,edx
004394E3  |.  898D 2CFFFFFF mov dword ptr ss:[ebp-D4],ecx
004394E9  |.  83BD 2CFFFFFF>cmp dword ptr ss:[ebp-D4],0
004394F0  |.  74 0D         je short 屏录专家.004394FF                   ;  跳了就成功
004394F2  |.  83BD 2CFFFFFF>cmp dword ptr ss:[ebp-D4],5
004394F9      90            nop                                      ;  跳了就失败
004394FA      90            nop
004394FB      90            nop
004394FC      90            nop
004394FD      90            nop
004394FE      90            nop
004394FF  |>  66:C785 50FFF>mov word ptr ss:[ebp-B0],44
00439508  |.  BA BADC5000   mov edx,屏录专家.0050DCBA
0043950D  |.  8D45 E4       lea eax,dword ptr ss:[ebp-1C]
00439510  |.  E8 63F30A00   call 屏录专家.004E8878                       ;  注册成功提示
00439515  |.  FF85 5CFFFFFF inc dword ptr ss:[ebp-A4]
0043951B  |.  8B00          mov eax,dword ptr ds:[eax]
0043951D  |.  E8 A62F0500   call 屏录专家.0048C4C8
haiye 2005-4-3 21:01
9
0
好东西,感谢!支持!
东方青石 2005-4-16 17:38
10
0
怎么我没有看到注册成功呢?
WAKU 7 2005-4-16 20:34
11
0
现在屏录注册就这样了?
记的以前破解3.5的时候还有key文件呢
liuyilin 2005-4-17 11:54
12
0
最初由 鹰飞 发布
学习一下,没能力分析出来,就直接爆了

怎么暴掉"未注册"字样的?
多谢
liuh 2005-4-17 18:26
13
0
好东西,感谢!
闪电狼 2005-4-18 10:00
14
0
最初由 liuyilin 发布

怎么暴掉"未注册"字样的?
多谢


在 play.dat文件里,找到未注册字样,往下看一点有一个jne跳转,改成je就可以了
liuyilin 2005-4-18 12:28
15
0
最初由 闪电狼 发布


在 play.dat文件里,找到未注册字样,往下看一点有一个jne跳转,改成je就可以了

thank you very much!
wenglingok 26 2005-4-18 14:43
16
0
其中有一些浮点运算!Studying!!!
sunson 2005-6-25 16:48
17
0
引用:
--------------------------------------------------------------------------------
最初由 闪电狼 发布

在 play.dat文件里,找到未注册字样,往下看一点有一个jne跳转,改成je就可以了
--------------------------------------------------------------------------------

是改哪个呀?我只在未注册字样上面找到JNZ,改了,刚开始的时候还是会出现,要过一段时间才会消失??
loucm 2005-7-1 10:13
18
0
学习一下,有很多地方不太理解!
老刘 2005-7-4 08:59
19
0
搞过好几次都没有成功
功力不够
computersfan 2005-7-4 13:58
20
0
现在是5.05了,不是楼主写的那一版本了。我去试试。
游客
登录 | 注册 方可回帖
返回