吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 124343|回复: 311
收起左侧

[原创] 天狼星第三代录像文件销售(注册)加密系统破解方法

    [复制链接]
casgsn 发表于 2010-12-3 12:18
本帖最后由 casgsn 于 2010-12-3 12:32 编辑

原帖附件需要10UB下载,吾爱这里免费了。

【文章标题】: 天狼星第三代录像文件销售(注册)加密系统破解方法
【文章作者】: A.D.
【软件名称】: 某考研网站的考研视频
【使用工具】: OllyDbg 1.0原版 + StrongOD + ODbgScript
【操作平台】: WinXP SP3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【首发论坛】: 一蓑烟雨
www.unpack.cn 转帖请注明
【文章简介】: 天狼星第三代录像文件销售(注册)加密系统应该算是视频加密壳吧,本文总结了对于该加密系统加密视频的研究以及破解方法两则,一是基于RSA算法的PATCH N攻击的介绍,二是基于A-new PATCH机器码破解方法的完善,这也才是本文主要探讨的内容。
【致谢人员】: A-new、hyperchem、Dreamday、download2010、demoscene、ximo
【备注信息】:
本文的发表仅在于对该加密技术的破解进行讨论,为防宵小利用,文中并不会出现任何具体的汇编代码和PATCH位置的描述,仅讲述本人破解过程中遇到过的问题和思路,真正研究破解的朋友看了整个破解的思路后,相信也能自己完成剩余的部分。

不过本文同时也做个小游戏,我会把我所用到的两个样品程序打包放到网盘(注册文件牵涉手机号,所以不提供了),而最后的破解脚本,PATCH代码则打包压缩成一个RAR压缩文件,并且卖10UB一份,能解得开的就能看,解不开没得看~~~~~~
唯一的提示是,压缩密码小于3位,“莫走寻常路”~有兴趣尝试一下挑战的朋友,可以尝试解开它~~~
不要奇怪为什么又要收费下载,又要能解得开才准看~因为本来就没有想过发布出很简单易懂,直接可用的代码,本文的初衷就是给想破解想研究的读者给个大概的思路,有了这些思路,自然就能完成破解,也才能真正学会破解,那才叫真正有收获,即使版本更新了,也照样能破,这才是真正的“授人以渔”。
总之,一句话,一切本着“愿者上钩”原则~~~~有喜欢挑战喜欢小游戏的朋友,可以试试,解开我的RAR文件~~~而奖品就是压缩包里的内容。我喜欢小游戏~~~!!

【破解过程】:
===================================================================================
最近我朋友需要考研,合伙跟同学买了某网站的考研资料……可里面部分视频资料竟然进行了加密,采用了一机一码的注册方式来加密,无法在多台电脑上观看,甚不方便。而他又听闻我最近迷上了对破解的研究……遂找上了我。

这次破解,我拿到了两个样品,一个注册文件和注册文件对应机器的机器码以及机器的各种信息。从破解过程中来看,两个样品是很必须的,这才好研究同密钥同种视频加密后的共同点,以方便做出通用性的内存补丁或LOADER,并且能更好地分析破解过程中进行到某一步时遇到的问题,究竟是什么问题。

一开始的步骤,当然是查壳,结果如下:
Power Screen Recorder v.6.x/7.x ( Borland C++ 1999 ) - www.tlxsoft.com  -   Overlay : 740400... Nothing discovered

而如果通过exeinfope进行剥离,会剥离出一个DLL,检测结果如下:
Microsoft Visual C++ ver. 6/7 dLL    -   Overlay : 009008... Nothing discovered

两个样品对比,一个DLL占总文件的91.87%,一个DLL占总文件的92.86%。

再用OD载入两个样品,然后用LordPE进行DUMP,DUMP出来的exe文件,大小一致,通过文件对比软件对比,发现两者是同样内容的,运行弹出的跟不DUMP时一样,都是注册窗口,如图:
1.jpg

这个DUMP下来的小程序发到已经注册了的目标机器运行,显示结果如下:
2.jpg

由此推断,这种加密视频分两部分,前一部分控制注册和播放,后一部分就是加密了的视频,那主要要研究的就是前一部分了。

先用DEDE反编译了看了看。。然后想想,还是先搜索一下吧。

通过网络搜索,找到如下信息:
第三代录像文件销售(注册)加密系统破解 40码
机器码为30位是加密系统第一代.
机器码为35位是第二代加密系统.
第三代加密系统为40位机器码。硬盘+CPU+网卡生成的

接着通过“第三代录像文件销售(注册)加密系统破解”找到了A-new的原文两篇:
第三代录像文件销售(注册)加密系统破解
第三代录像文件销售(注册)加密系统破解 - 续一

通过里面的汇编代码确认所遇到的确实就是这个加密系统,而不是其他的加密系统,同时知道了这个加密系统有很多的暗桩,爆破注册是没有用的。。(最讨厌暗桩……在觉得就要成功的时候发现还差半口气……)于是转而研究A-new研究的PATCH机器码方法。

找到A-new最后确定的PATCH点一PATCH点二,开始写脚本并分析研究。(这里插个题外话,前几天有人发过篇帖子《请教脱壳方法》,里面有朋友说,是先有了人肉脱壳/破解?然后才有了脚本或者脱壳机。个人觉得,脚本的作用其实是为了辅助分析研究,不用重新手动进行已经确定了的调试过程所用的。所以脚本应该是一边分析就一边写出来的,分析到哪,写到哪。)

使用A-new做的GetHardwareInfo获取已有注册文件的机器上的信息(GetHardwareInfo的界面有好几个错别字~),然后自己分析那几段代码,并手动执行一次PATCH流程,最后通过脚本实现PATCH的过程。PATCH的过程最重要的是在于PATCH时机的选择,即程序先进行了什么信息获取,就先断点哪里,然后运行,然后PATCH,接着下一处。(个人觉得,脚本的执行流程中同时间最好只有一个断点,不管是内存断点还是硬件断点又或者int3断点,这样脚本才能线性执行,尽可能减少判断跳转的使用,方便理解。)

在写好了A-new的脚本后,我们就完成了CPU信息和硬盘信息的PATCH,这时部分机器码已经改变,跟目标机器一样了。

这时,我回忆了一下在网上看到的大家的对于天狼星的评价,这种加密视频的方式在播放的时候是要解码的,那么是不是在注册成功后,又会再次获取一次系统信息并拿来检验呢?而如果它再次检验的时候,使用的是同一个函数,那么我们也不用再PATCH了,可如果是在其它函数中再次检测呢?于是,通过现有的已知的3个PATCH地方(PATCH点一中有两处PATCH),搜索可能存在的类似的PATCH地方。发现两个可能的CPU信息检测处,记下来,在以后注册成功后,再断点来看看是不是有调用的时候。

回过头来看看机器码,机器码一共有40位,如下:
6303745745448312345636894857076468705518
我们已知这时已经模拟了CPU和硬盘信息,对比目标机器码,发现前20位以及31~34位跟目标机器码相同,即以下四段字符串中的第一和第三段。
63037457454483123456        3689485707        6468        705518
而根据网上的说法,剩下的应该就是网卡的模拟了。
去看了看目标机器的MAC,尝试改自己网卡的MAC为目标电脑MAC,再看机器码:
63037457454483123456        4524226165        6468        705518
发现第二段机器码完全改变,而其他机器码不变,但是改变的机器码跟目标机器不同……
再次远程控制目标机器,开始-运行-cmd-确定-"ipconfig /all"-回车。。抄下所有的MAC,回来一个个改试试。。
最终,终于有个MAC使得机器码第二段跟目标机器一样了。这样,我们就能确认21~30位机器码是由网卡信息决定的。
但是最后还有六位。。怎么办?

先试试导入注册文件,咦~如图:
3.jpg
那看来,后面六位是没用的了。。不用管它了~~(今天论坛上有人发了第二代的加密系统,里面说原来除了CPU和硬盘信息,后面的信息一样不一样都没关系的,同一个注册文件是可以导入成功的……刚刚试验过了,确实如此……枉我研究PATCH网卡研究了那么久……而最后六位机器码应该是主板信息~)

使用脚本重载程序,尝试播放视频,发现在之前下的第二轮CPU信息检测处断了下来~~果然有暗桩啊~对照之前的CPU信息检测的结果和PATCH结果,PATCH上对应的数值,写进脚本。重载程序,视频开始播放,耐下性子,从头到尾观看了一次。。OK了!?没有出错哦~~哈哈~~接着再重载一次,跳播试试,哈哈~~也没问题~~

难道这就是网上说的很多暗桩的很难破解的天狼星???(我不知道的是,这其实只完成了一半……简直是个杯具……我讨厌暗桩……)
尝试着自己写汇编代码,然后用LPK补丁做内存补丁,测试……视频播放到120帧左右的时候程序卡住。再试试LOADER做内存补丁,同样是PATCH内存代码,测试……依然是播放到120帧左右时卡住。。换另一个视频,也卡住,不过卡住的帧位置在22帧左右。

看来这就是所谓的暗桩了。。首先是猜测,可能是内存校验。使用OD载入使用LPK补丁补丁过的22帧左右出错的样品,使用内存读取断点,会发现有两处地方有好几次的读取操作,可究竟哪里是内存校验就不清楚了。转换方法,在LPK中一一尝试去掉补丁过的地方,同时结合脚本一一替代去掉补丁位置处的补丁功能,发现当去掉硬盘信息获取处的PATCH代码,视频在22帧处正常播放。重载程序,在硬盘信息获取处的PATCH代码上下内存访问断点,运行,找到断下来的访问此处代码的地方的代码处,然后分别收集不PATCH和PATCH时此处代码的运行结果,对比差异,尝试在程序运行到此处时把结果PATCH成一样的,再实验,视频又可以正常播放了,不会再在同一帧处出错了~~反过来尝试另一样品,跟前一样品的情况一样,如果PATCH了获取硬盘信息处的代码就会造成检测结果不为0,把它PATCH为0,尝试,同样位置处的出错终于不再出错了~~~

满以为。。这终于告一段落了~~终于破解成功了~~~~谁知道。。再一次重新测试新的LPK补丁和LOADER补丁时,又发现了新的问题……

当视频播放到一半多一点,又或者直接跳播到后半部分的视频时,程序会在几秒钟内卡死。看来还有暗桩……

这次换一种方法进行测试,通过在没有问题的破解脚本上增加PATCH代码,看看究竟是PATCH了哪里导致了问题。恩,最初的想法是,难道存在第二处内存校验的地方对第一处内存校验的地方进行了校验?好吧,那就先试试在无问题的脚本中增加PATCH第一处内存校验代码的代码,然后运行程序看看吧~~果然,如果PATCH了第一处内存校验代码,这个脚本就会出现内存补丁同样的问题……设立内存读取断点,找到读取该处代码时的代码,记录下该处代码最后的运行结果。这次的结果不是0这么简单了,而是在内存某处记录下来了10个DWORD长度的数值,并且这个位置的代码会执行第二次,结果数值随之改变,而据我猜测这个数值可能就跟后半部分视频的播放密切相关。那让我们想想该如何PATCH它吧。首先用同样的方法测试另一个样品,看看最后的代码运行结果是否跟前一个样品一样。。结果发现是不一样的……怎么办?究竟如何才能写出通用的PATCH代码呢??

我上论坛问过大家。。是不是有什么LOADER或者内存补丁制作工具,可以断点程序运行,并且在断下来后修改寄存器或者内存中的数值。。其实只要能修改内存数值就已经足够了。不过没有人能给出适应此需求的工具。。如果这种工具存在,那么我们只要直接把脚本转化成补丁就行了。之前遇到和现在遇到的暗桩都不再是问题了……可惜,无解。。
求助帖子:有没有不是patch程序内存代码的内存补丁工具?

在破解进行到此地步后。。我已经有些筋疲力尽了,遂决定休息两天,再来~

两天时间匆匆过去,中间没有再去考虑这个让人困扰的破解难题……回来后,重新看了看破解的整个流程,有想法了。。

我可不可以在第二次校验代码前跳走,还原PATCH了的代码,然后再校验完后,再PATCH回来呢?想到立刻就开始尝试~~结果是问题依然存在。。重新分析第二次内存校验的代码,发现原来开始我看错了。。第二次校验代码是也会校验其本身代码所在位置的代码的,如果我PATCH了第二次校验代码,那么最终的数值依然是改变了的。
那怎么办好呢?最终的解决思路是,依然PATCH第二次内存校验代码,在校验开始前跳离整个校验区域,然后在校验区域外还原所有PATCH的地方,然后抽取第二次内存校验代码在校验区域外执行,执行完后重新PATCH~~这样一来,内存校验的结果依然是正确的数值,而该PATCH的地方依然PATCH了~~

说到这里,天狼星第三代录像文件销售(注册)加密系统替换HWID法的破解也就基本完成了。
另外,要注意的一点是,通过LPK补丁和LOADER补丁进行内存代码的修改是不用考虑区段只读属性的,而在汇编代码中,要想修改内存代码,必须首先调用系统API VirtualProtect对内存区段进行可读性的设置,而如果汇编代码中调用了系统API,那么还要考虑系统兼容性的问题,因为不同的系统的API地址是不一样的,所以为了让各种WINDOWS系统都能运行破解补丁,则必须要动态获取API VirtualProtect的地址,后来在论坛朋友的帮助下,我也解决了这个问题,不过我的解决方案不是通用的解决方案,而是直接用了程序本身定位的API地址来做的。
求助帖子:请教内存补丁中调用系统API遇到的问题(如何通过汇编代码动态获取系统API位置)

PS:在随后的研究中,通过对WMI方式获取系统信息的逐渐了解,我也实现了PATCH网卡~
求助帖子:请教WMI方式取系统信息的调试方法
===================================================================================
整个破解的经历其实比上文描述的更显复杂,现在是直接指出了进行到每一步时下一步的正确破解思路,而真实的情况是,总会有很多的猜测,究竟这是什么问题?可能是什么导致的?可以使用什么方法来验证并判断所遇到的问题究竟是什么问题,然后才是想如何解决。

同样是在破解的过程中,有朋友提供了另一种可能的破解思路,在遇到了无法解决的问题时。。我也曾经想过尝试一下他说的方法……所以搜集过相应的资料,也大致给大家介绍一下吧。

据说(注意是据说,不确定),天狼星第三代录像文件销售(注册)加密系统使用的是RSA加密算法进行的视频加密和解密,而依靠RSA加密算法的软件是可以通过PATCH N,D和PATCH N来进行攻击的。从那时候开始,我就在网上搜索过PATCH N的资料,最后在看雪找到了FishSeeWater的文章,
原文地址:【原创】RSA保护的程序 注册机制作思路总结

我们知道,同一系列的视频,只要导入一次注册文件就可以播放了。那么说来,每一个视频的解密密钥应该都是一样的,或者说,通过注册文件和机器码结合必然可以产生出一个固定的数值,这个数值可能就是用以解密视频的解密密钥,或者这个数值跟每个加密视频中的某处的信息结合,可以产生解密密钥用以解密视频。这关键看的是它里面的算法怎么写了。(分析算法是我的弱项……怨念~)

如果它用的真的是RSA算法,那么程序中必然可以找到D和N,在基于加密视频的解密算法分析后,理论上我们可以用已知的D,碰撞一组相对应的E和N,然后PATCH掉程序中的N,接着就可以用得到的E自己做一个算号器了。。专门用以算PATCH N后的视频的注册码~

当然,说是很简单很容易懂的。。真正做嘛,那又是另一回事了。这里仅仅对可能存在的相关的破解技术进行讨论,有需要的朋友,自己努力研究吧~~!!
===================================================================================
【资源下载】:
小挑战,觉得能解开的下:
破解脚本 破解PATCH代码.rar (4.78 KB, 下载次数: 1951)

免费评分

参与人数 19吾爱币 +1 热心值 +19 收起 理由
xxoo25 + 1 + 1 解压密码是啥啊
龙城神 + 1 谢谢@Thanks!
undebug + 1 解压密码是啥啊
ziranfaze + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
52jcw + 1 不错的东西,能否把压缩密码告知!!谢谢
angelskiss + 1 已答复!
iy0507 + 1 牛哄哄~
li5135580 + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精彩.
sangluyuan + 1 真是不错,谢谢
sisi111 + 1 精品文章
无影人 + 1 楼主什么时候出个动画教程。正需要
听海 + 1 很不错的好文章。
ZeNiX + 1 不错的分析,不错的小游戏。
海盗 + 1 不错,很是欣赏谢谢共享
yjd333 + 1 精品文章!
紫色 + 1 精品文章!
tuimaochang + 1 太谢谢啦,先加分,后看
TheCjw + 1 先留个记号~谢谢分享~
missviola + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

南少 发表于 2014-6-10 14:02
呵呵,文字游戏,浪费时间,直接去一蓑烟雨花10UD下载。
 楼主| casgsn 发表于 2010-12-3 12:19
本帖最后由 casgsn 于 2010-12-8 23:22 编辑

如果你觉得本文还可以~~多多评分吧~~~我爱热心~~~
==================================================================
上文中的小游戏,跟朋友验证过,必定可解,必定真实有效~~
ZeNiX是第一个解开的~~~谢谢参与~~~
有空设想个更好玩的~~
==================================================================
作为样品的两个视频文件及注册文件,提供一处分流下载:点击进入网盘
==================================================================
今晚跟朋友商量,最终朋友提供了一个已经不用的手机号码的注册文件,提供给大家作为实验素材吧,可以通过上面的网盘下载,也可以通过以下链接下载:

样品注册文件 548.55 KB [暂时失效]
==================================================================
最后补充一下,通过我的方法替换机器码注册成功并能正常播放后,一般从头到尾播放是不会遇到问题的。但如果进行大跨度的跳播或者多次跳播,则可能会使程序出错。造成原因不明,但个人推测不是暗桩造成,而是多进程协调间的问题。不知道非破解的是不是也有同样的问题?加密视频播放原理是开新进程播放一段,然后再开新进程解码新的一段进行播放,而在这个过程中还会有硬盘检测以及两种内存校验穿插其间,多线程间调用间有一定几率出现问题。如果一定要提出解决方案(首先要确认非破解的是不是也会出现这种问题,如果不会,那破解的才有可能修复这种问题),我估计要在第二种内存校验前进行其他线程的休眠,然后再校验后,恢复线程状态。

==================================================================
提供多一个网盘分流下载
实验样品.part4.rar:http://u.115.com/file/f8fe29d893
实验样品.part3.rar:http://u.115.com/file/f86df27e1b
实验样品.part2.rar:http://u.115.com/file/f8ff48e8c0
实验样品.part1.rar:http://u.115.com/file/f83cff1aad
样品注册文件.rrr:http://u.115.com/file/f8f5bb5299
beginl08 发表于 2010-12-3 12:21
xxhaishixx 发表于 2010-12-3 18:34
casgsn一直都很有个性,在ZP中我已经知道额
hx131452 发表于 2010-12-3 18:38
你的试验样本不能下载 能不能换一个啊
让我们练一下手啊
whwh300 发表于 2010-12-3 18:43
还要解压密码
暖羊羊 发表于 2010-12-3 19:11
  看见我就蛋疼了
午夜做土匪 发表于 2010-12-3 20:42
牛|淫|啊
膜拜!
文章很详细。。。
dongmin20023 发表于 2010-12-3 20:46
学习了,谢谢分享!!
紫色 发表于 2010-12-3 20:49
我已经解开了 呵呵
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-20 00:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表