zsky 发表于 2019-8-2 10:21

破解某视频剪辑软件 XXX Video Splitter

本帖最后由 L15263458908 于 2019-8-2 12:20 编辑

前言:本人在吃饭空余时间,想让电脑录制一些教程然后本地看,可吃饭时间过长,,,导致录制的视频后面大部分是无效的。。。所以想找一个剪辑软件把无效的部分去掉。自己不想下载一些特别大的剪辑视频的工具,于是从网上找到了这一款 XXX Video Splitter,容量很小,它的功能是将视频拆分,但是下载完之后是试用版,,剪辑的视频只能有2分钟,非常不爽,,,所以想把它破解掉。






下面我就讲一下,自己是怎么将它破解掉的


详细破解过程:
1、首先用DIE查一下程序有没有壳



发现没有壳,而且还是MFC写的,开心的一批,(为什么是MFC写的也很高兴呢,因为这样我们就可能用工具xspy来查到一些按钮事件什么的了,这会对破解有很大的帮助)
2、我们的大题思路就是通过Register按钮来将程序爆破掉




3、我们用OD载入程序,开始破解用OD载入程序点击注册按钮,输入姓名和注册码,点击激活,显示



我们用F12暂停,堆栈回溯的方法,看看能不能找到验证的关键点




我们在倒数第三个位置043E8C0处,右键显示调用,然后在调用的下一行下一个断点,点击确定,程序断下







发现这个函数前面的跳转改了并没有什么用,我们继续往上一个call回溯,回溯到上一个函数后,发现上一个函数较大,猜测是验证的函数,在函数头部下一个断点



我们继续点击Active按钮,程序果然断下

我们一路F8,当执行到0X4209CF这个函数的位置的时候,发现这个函数的两个参数分别是注册时输入的Name和Code,并且观察下方会测试返回值的结果,并且最终会影响bl,而bl又会影响下面的跳转,而跳转恰好跳过弹窗的位置

于是我们猜测这个函数八九不离十的就是验证函数了,我们继续往下单步,将返回值al改为1

运行到0X420A16处,发现会跳过弹错误窗的函数

我们F9运行下去

发现成功了,跳过了弹窗,但是这个程序还有一个重启验证,那我们重启

发现程序和第一次启动并没有什么两样,依旧是未注册版本(有点小灰心~~~~)

于是这个时候,我思考了一下,重启验证一般就是写注册表或者写文件,于是我想用Process Monitor工具来整体的查看一下这个程序到低搞了什么鬼我们打开软件,设置一下过滤器
开启监视,然后运行VideoSplitter,程序打开成功,关闭监视,我们采集到了很多数据

大体浏览了一下,先查一下有没有WriteFile函数,发现并没有,于是说明这个程序可能是采用了注册表的方式来进行验证的我们发现有类似下面这样的注册表,这可能是关键(因为里面包含了软件名字)
于是我们再次过滤


发现程序可能是开启的时候读取user sn company这几个键来确认程序是否被注册的,于是猜测程序的正常流程是,程序注册成功之后,程序会把Name和Code分别写入(可能是明文也可能是加密后)到注册表中对应的键值是user和sn但是由于我们是爆破,程序可能还有其他的验证,所以并没有创建usr和company sn这几项这个时候我们决定重来,回到第一次验证的函数那里,看看从那里能不能得到一些线索

发现它仅仅是与【0X49B4D8】这个位置的数据进行比较,如果不是0,那么就成功,这说明这个位置记录了关键的信息,这是一个全局变量我们查找所有常量


确定,找到了以下几条汇编代码

从这里也证明了0X49B4D8确实是一个关键的点我们全部下断点,重新运行程序,发现程序被断下

这里我们发现【0049B4D8】这个常量值是0,我们将其改为1试一下

运行程序,发现还是未注册版本

我们继续重新运行(破解一定一定要有耐心才行~~~~)我们一路F8,发现函数的返回值是1,继续运行,又在下一个断点处断下CTRL+ F9,发现返回值非0继续运行,我们看看返回值有没有是0的,,当我们到达0X422274这个函数的时候,发现它的返回值是0,这个时候就要格外注意一下了

我们将其返回值改为1,继续运行


发现已经破解成功了(其实是以为破解成功了)赶紧拿视频尝试一下,看看分离的还是不是两分钟


这里显示的分离确确实实是36:26.,分离之后的文件名也是

但是当我打开视频的时候,发现还是2分钟,说明并没有成功(说实话在我当时破解的时候,到了这里有亿~点小崩溃~~~)

到了这里我就想,为什么还是不行呢?于是我把目标转向了分离视频的函数那里那么怎么找分离的函数呢????

我们用OD观察,每次点击分离的时候,最后都会有一个新线程创建,然后进度条开始加载,所以我猜测这个线程就是用来分离视频的(其实我第一次破解的时候是使用xspy查的按钮事件,最后才注意到了左下角的创建线程)我们打开线程窗口,找到那个线程,发现入口点是4602AC

我们在这个地址处下一个断点

点击分割,输入输出文件名之后,发现程序被断下

看来我想的没错,先一路F8,其他的再说

发现,当F8跳过460329这个地址的时候,下面这个框就出来了

所以分割函数肯定在里面被调用,我们在0X460329处下一个断点,F7进入然后一路F8,当跳过0X460283这个地址的时候,进度条又加载出来了

所以继续断点重来,然后在460283处F7进入

继续F7,发现程序进入了一个大的函数,一路F8


当跳过414ACE这个地址的时候,进度条出现,所以在414ACE这个位置处下断,重来,F7进入

我们再一路F8,最终我们找到了真正的分割视频的函数那里

我们到这个函数这里,观察参数,发现这个1D4C0比较特殊

我们将其转化为1D4C0转换为10进制是120000 我们猜想:(120000毫秒-->120秒-->2分钟)这里大吃一惊,也非常兴奋,我决定修改一下这个参数来验证一下我的猜想我将参数改为30分钟(1800秒-->1800000毫秒--->001B7740)修改完毕

往下运行
发现分离的视频是30分钟,终于成功了99%了,下面我们只需要在刚才的位置往上看看汇编,到低哪里改了这个时间参数,最终我发现是在这个地址处修改的参数

如果不跳转,就将时间改为2分钟,如果跳,就还是原来的时间,所以,我将其改为jmp

最后的工作就是给exe和这个dll分别打补丁,最终破解成功


这是本小白在吾爱发的第一篇帖子,这个程序自己整整分析了一个下午,或许没有用到特别牛的技术也或许写的比较啰嗦(我只是想写的详细一点而已),大牛勿喷




最后附上 源程序安装包和破解完后的补丁供大家练习(请将汉字剔除后复制到浏览器打开下载)


链接:https://pan.baidu.com/s/1edRCeWo4_AGET吾爱破解xMuSXajPQ


提取码:cdyb

冥界3大法王 发表于 2021-4-27 09:33

@zsky
这类的软件我前些天试过,真的不行。
自己用屏幕录屏王录制了两个MP4,想合成一个。(补充下前面没说明白的问题)
结果试了五个,不是只合并到一起了,就是后面的黑屏,或无声。
最后还是试了下Movavi Video Editor Plus 2020,非常理想。这个软件很傻瓜,只要记住Ctrl+B基本上就够用了。

落日余辉x 发表于 2019-8-31 22:01

这个软件搞注册项的话可以下RegQueryValueExA断点,堆栈中出现"usr"、"sn"时在反汇编窗口中跟踪,将几个跳向"xor eax,eax"的跳转nop就可以了,当然,分割两分钟的问题还存在{:301_1008:}

zsky 发表于 2019-8-2 12:12

继续加油!!!!!

局长 发表于 2019-8-2 17:51

这个软件我电脑上也有,就是切割完的视频有时候时间点不对。

zsky 发表于 2019-8-2 17:58

局长 发表于 2019-8-2 17:51
这个软件我电脑上也有,就是切割完的视频有时候时间点不对。

可能是差几毫秒吧。。。。这就是软件的问题了,。。没有那么精准

德狗拉狗快结婚 发表于 2019-8-2 18:54

厉害啦~,继续加油~

mo12590 发表于 2019-8-2 21:50

支持一下啊

duduhao 发表于 2019-8-2 23:12

谢谢分享

dmgya 发表于 2019-8-3 16:12

楼主厉害

pols 发表于 2019-8-3 16:34


谢谢分享!

iokeyz 发表于 2019-8-3 23:05

很好看!感谢楼主!
这种无需重编码的切割都是按照关键帧位置切割的,可能有点不准确
另外墙裂推荐ffmpeg,很好用
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 破解某视频剪辑软件 XXX Video Splitter