【破文标题】屏幕录像加密系统破解详细过程!
【破文作者】vipany
【作者邮箱】vipany@163.com
【作者主页】www.vipany.net
【破解工具】OD+EmEditor
【破解平台】windowsXP
【软件名称】屏幕录像加密系统
【软件大小】XX
【原版下载】http://www.tlxsoft.com/
【保护方式】购买
【软件简介】对新世纪网安,黑鹰,黑防,黑吧等黑客网站的vip教程加密!
【破解声明】对该加密系统的测试仅仅处于兴趣爱好,有不妥之处请联系本人删除!
------------------------------------------------------------------------
教程下载地址:http://bbs.vipany.net/showpic/crackvip.htm
【破解过程】游戏开始:
方法一:爆破
为了方便初学破解的朋友,提前做了下记录,大家只要按这个操作一步步来,绝对是可以成功的!
follow me!
step1:
OD载入需要破解的教程,超级字符串参考,查找ASCLL直接CTRL+G跳到这个六个地方(为了节约时间,六处需要下断点的位置我已经写好了):
00416EEC---F2下断
004170AE---F2下断
00417137---F2下断
0040AB1B---F2下断
0040AB32---F2下断
0040AB68---F2下断
step2:
需要修改的地方:
00417114---JNZ改为JZ(目的是不让跳转实现!)
0040AB22---JE改为JMP(这里是关键跳,让他无条件跳转!)
step3:
需要注意的地方:
00417114---这个CALL需要F7跟进!
0040AB1B---这个地方我们第一步已经下好了断点,走到这里的时候,我们需要F7跟进去(破解里面常说的近CALL得跟进!)
此方法的不完美之处:
声音被破坏掉了,修复的办法:
用EmEditor(或者C32或者winhex,个人喜好问题)打开TEMP文件夹下的plzj.wav,如果你不知道plzj.wav在哪里,用windows自带的搜索功能搜索下可以找到!
替换前四排:
52 49 46 46 AA FE C6 01 57 41 56 45 66 6D 74 20
10 00 00 00 01 00 01 00 11 2B 00 00 22 56 00 00
02 00 10 00 64 61 74 61 86 FE C6 01 00 00 FE 00
FE FF
看操作!
没有修复前是无法播放的,修复后可以正常播放!
方法二:替换KEY
需要注册码大全的朋友可以到论坛会员交流区下载:
我们知道加密教程在每台电脑播放都会绑定一个机器码,分别是你电脑的CPU和网卡
替换KEY顾名思义就是让所有的机器用同一个机器码,这样我们就不需要研究他的算法了,屏幕录像加密系统对教程的每帧都进行了加密,就是说每张图片都有密码,
做他的算法注册机不是不可能,而是很困难!初步估计是背包加密形式,如果侥幸得到背包,那么算法注册机就不难制作了!
step1:弄清楚替换原理:nop掉教程获取机器码的算法,寻找新的零区域,用MOV赋值,为了简便,这里我们把相应的二进制代码直接复制进去
已知注册码(可以查找注册码大全 点击下载):
机器码=(此机器码有CPU机器码+MAC网卡机器码组成,两者采用了不同的算法)
用户名=
注册码=
step2:观察CPU机器码获取处的算法
打开OD,清空UDD文件夹里面的内容
载入被加密的教程,ctrl+G,跳到0040A470,然后F2下断,shift+F9运行到此处,F7单步观察可以发现机器码出现的位置是12F118
在0040A489处机器码开始发生变化,此时EBP的值为12F54C,EBP-434=12F118 EBP-20=12F52C
0040A47D |> \0FBE85 CCFBFFF>MOVSX EAX,BYTE PTR SS:[EBP-434]
0040A484 |. 83F8 30 CMP EAX,30
0040A487 |. 75 07 JNZ SHORT 录像3.0040A490
0040A489 |. C685 CCFBFFFF >MOV BYTE PTR SS:[EBP-434],39 //EBP=12F54C,EBP-434=12F118,EBP-20=12F52C,得出计算结果
0040A490 |> 66:C745 E0 380>MOV WORD PTR SS:[EBP-20],38 //12F118上赋值字符串8.
0040A496 |. 8D95 CCFBFFFF LEA EDX,DWORD PTR SS:[EBP-434] //计算结果赋值给EDX
cpu机器码的获取算法结束的位置:0040A490
这里我们把CPU机器码的算法全部NOP掉,即NOP 0040A47D~0040A489
保存所有修改,文件另存!
jmp到零区域开始的地方写入代码:即jmp 004CFE1B
0040A490这里就是等下我们需要跳回去的地方,jmp 0040A490
寻找任意的零区域,可以事先用C32打开教程查找一下(要求足够写入以下代码)
CTRL+G跳到:004CFE1B 零区域开始的地方 把零区域上一句NOP掉
004CFE1B C685 CCFBFFFF 39 mov byte ptr ss:[ebp-434],39
004CFE22 C685 CDFBFFFF 35 mov byte ptr ss:[ebp-433],35
004CFE29 C685 CEFBFFFF 31 mov byte ptr ss:[ebp-432],31
004CFE30 C685 CFFBFFFF 36 mov byte ptr ss:[ebp-431],36
004CFE37 C685 D0FBFFFF 32 mov byte ptr ss:[ebp-430],32
004CFE3E C685 D1FBFFFF 33 mov byte ptr ss:[ebp-42F],33
004CFE45 C685 D2FBFFFF 33 mov byte ptr ss:[ebp-42E],33
004CFE4C C685 D3FBFFFF 30 mov byte ptr ss:[ebp-42D],30
004CFE53 C685 D4FBFFFF 33 mov byte ptr ss:[ebp-42C],33
004CFE5A C685 D5FBFFFF 30 mov byte ptr ss:[ebp-42B],30
004CFE61 C685 D6FBFFFF 32 mov byte ptr ss:[ebp-42A],32
004CFE68 C685 D7FBFFFF 37 mov byte ptr ss:[ebp-429],37
004CFE6F C685 D8FBFFFF 30 mov byte ptr ss:[ebp-428],30
004CFE76 C685 D9FBFFFF 33 mov byte ptr ss:[ebp-427],33
004CFE7D C685 DAFBFFFF 31 mov byte ptr ss:[ebp-426],31
004CFE84 C685 DBFBFFFF 30 mov byte ptr ss:[ebp-425],30
004CFE8B C685 DCFBFFFF 35 mov byte ptr ss:[ebp-424],35
004CFE92 C685 DDFBFFFF 34 mov byte ptr ss:[ebp-423],34
004CFE99 C685 DEFBFFFF 30 mov byte ptr ss:[ebp-422],30
004CFEA0 C685 DFFBFFFF 31 mov byte ptr ss:[ebp-421],31
004CFEA7 90 nop
004CFEA8 - E9 E3A5F3FF jmp 去除自校.0040A490
004CFEAD 90 nop
为了节约时间,不必一一填写,我们把以上代码对应的二进制语句进行二进制粘贴:
C6 85 CC FB FF FF 39 C6 85 CD FB FF FF 35 C6 85 CE FB FF FF 31 C6 85 CF FB FF FF 36 C6 85 D0 FB
FF FF 32 C6 85 D1 FB FF FF 33 C6 85 D2 FB FF FF 33 C6 85 D3 FB FF FF 30 C6 85 D4 FB FF FF 33 C6
85 D5 FB FF FF 30 C6 85 D6 FB FF FF 32 C6 85 D7 FB FF FF 37 C6 85 D8 FB FF FF 30 C6 85 D9 FB FF
FF 33 C6 85 DA FB FF FF 31 C6 85 DB FB FF FF 30 C6 85 DC FB FF FF 35 C6 85 DD FB FF FF 34 C6 85
DE FB FF FF 30 C6 85 DF FB FF FF 31 90 E9 E3 A5 F3 FF 90
保存所有修改,文件另存!
粘贴时注意:
尽可能的多选(宁可多不可以少,先估计下二进制语句占用的字节数)
jmp 0040A490 (原理:去掉CPU机器码的获取算法,跳到零区域用MOV语句强制赋值可以注册的CPU机器码,然后跳回去继续执行)
-------------------------------------------------------------------------------------------------------
step3:观察MAC网卡机器码获取处的算法:
ctrl+G,跳到004020C0,然后F2下断,shift+F9运行到此处,为什么断到这里?因为上面是循环算法,我们要跳过循环!
004020A3 . /EB 14 JMP SHORT crack.004020B9
004020A5 > |0FBE08 MOVSX ECX,BYTE PTR DS:[EAX] //EAX=0012F4D4,12位数值的储存位置
004020A8 . |0FBE70 0A MOVSX ESI,BYTE PTR DS:[EAX+A]
004020AC . |03CE ADD ECX,ESI
004020AE . |D1F9 SAR ECX,1
004020B0 . |79 03 JNS SHORT crack.004020B5
004020B2 . |83D1 00 ADC ECX,0
004020B5 > |8808 MOV BYTE PTR DS:[EAX],CL
004020B7 . |42 INC EDX
004020B8 . |40 INC EAX
004020B9 > \8D4B F6 LEA ECX,DWORD PTR DS:[EBX-A]
004020BC . 3BD1 CMP EDX,ECX
004020BE .^ 7C E5 JL SHORT crack.004020A5
004020C0 . C645 8E 00 MOV BYTE PTR SS:[EBP-72],0 //把第11位赋值00,以截取10位数,因为此MAC机器码只需要取10位。
其中004020A3~004020BE为MAC网卡机器码的获取过程,我们把这一段算法给NOP掉!
保存所有修改,文件另存!
然后找一个零区域,方法同上,这里我们找好了零区域开始的地方:004CFEBE
需要jmp跳回去继续执行的地方:004020C0 jmp 004020C0
写如一下代码(注意在写入代码之前把上一句NOP掉)
004CFEBE 36:C600 35 mov byte ptr ss:[eax],35
004CFEC2 36:C640 01 31 mov byte ptr ss:[eax+1],31
004CFEC7 36:C640 02 36 mov byte ptr ss:[eax+2],36
004CFECC 36:C640 03 34 mov byte ptr ss:[eax+3],34
004CFED1 36:C640 04 37 mov byte ptr ss:[eax+4],37
004CFED6 36:C640 05 39 mov byte ptr ss:[eax+5],39
004CFEDB 36:C640 06 32 mov byte ptr ss:[eax+6],32
004CFEE0 36:C640 07 39 mov byte ptr ss:[eax+7],39
004CFEE5 36:C640 08 35 mov byte ptr ss:[eax+8],35
004CFEEA 36:C640 09 37 mov byte ptr ss:[eax+9],37
004CFEEF 90 nop
004CFEF0 - E9 CB21F3FF jmp 去除自校.004020C0
004CFEF5 90 nop
为了节约时间,不必一一填写,我们把以上代码对应的二进制语句进行二进制粘贴:
36 C6 00 35 36 C6 40 01 31 36 C6 40 02 36 36 C6 40 03 34 36 C6 40 04 37 36 C6 40 05 39 36 C6 40
06 32 36 C6 40 07 39 36 C6 40 08 35 36 C6 40 09 37 90 E9 CB 21 F3 FF 90
保存所有修改,文件另存!
粘贴时注意:
尽可能的多选(宁可多不可以少,先估计下二进制语句占用的字节数)
保存所有修改,文件另存!
-----------------------------------------------------------------------------------------------------
补充说明:
网安,黑鹰,黑防,黑吧等目前采用的加密方式为第二代加密系统,而我们现在采用的加密系统是第三代,增加了对硬盘机器码的绑定,
机器码有40位,前20位是硬盘序列号和CPU硬件信息组合,第21-28位是网卡的序列号,第29-34是CPU信息。产生注册码只利用了前20位,即只利用了硬盘序列号和CPU信息,
如果硬盘和CPU没有变化,其它的硬件设备(包括网卡、主版等)改变,原来的注册码仍然可以使用。
如果CPU变了,那么机器码的第29-34位会发生变化,机器码的第11-14位也会发生变化。如果硬盘没有变化,只有CPU变化时,机器码的1-10位和11-20位不会变化。
如果硬盘变化,那么机器码前21位会变化,这时可以根据第29-34位的CPU信息和21-28位的网卡信息判断是只是换了硬盘还是换了电脑。一般情况下都可以得到硬盘的硬件码,
此码在没有换硬盘的情况下是不会改变的,格式化硬盘和重新安装操作系统都不会变。特殊情况下,有的硬盘没有硬件码(大概有1%的可能性),重新安装系统后,硬盘机器码可
能会改变,这时机器码的第17 18 19都是'9',这种特殊情况下,用户重新安装操作系统可能需要给换注册码(可以根据CPU和网卡信息判断是否只是重新安装了操作系统)。另外还
有一种特殊情况,就是机器码第17 18 19 20位如果都是6或者都是7的话,在一些特殊的情况下(1%左右可能性)重新安装系统后机器码也会变,同样可以根据CPU和网卡信息判断
是否只是重新安装了操作系统。
后21-28位网卡序列号是网卡的硬件号,一般不会改变,可以辅助区分机器码改变的情况下,判断是否是原来的电脑换了硬盘。如果网卡序列号都是'0'或'9'表示无法获得网卡
序列号,那就不能用来做判断。
有兴趣的朋友可以和我们一起讨论QQ:624399654
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课