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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 29086|回复: 43
收起左侧

[原创] 逆向分析某加密视频算法与视频还原提取

  [复制链接]
simont 发表于 2018-8-23 22:39
分析某视频加密软件关键算法与提取
仅个人思路交流与学习。不提供任何程序与源码,大家网上搜索。本篇文章仅作技术交流,文章中软件均来源网络。如有侵权请联系本人或管理人员删帖!


之前发现了一篇:暴力破解某EXE资源加密工具打包文件密码

https://www.52pojie.cn/thread-786478-1-1.html

闲时用里面提供的软件,对视频加密进行了一番探索。发现该版本的加密软件,播放密码如同虚设。可直接无密码进行还原。现在开始讲述下无密码还原的算法。

1、  使用软件我们加密一个视频,并对其进行播放,测试该加密软件是否有效。


1.png
打开加密视频界面
2.png
进入正题:这次我们是分析加密算法与视频提取,其它就不多啰嗦了。
开启OD,直接附加视频播放器。附加上后,找到“播放”按钮功能后单步走,
3.png
我们来到此处循环经分析,该处是关键算法解密部分


我们重点分析:
[Asm] 纯文本查看 复制代码
513F305D    8B4D AC         mov     ecx,dword ptr ss:[ebp-0x54]      ; 读取密文存放处

513F3060    034D 98         add     ecx,dword ptr ss:[ebp-0x68] ;+1

513F3063    0FBE11          movsx   edx,byte ptr ds:[ecx] 逐字取

513F3066    83F2 05         xor     edx,0x5 ;和0x05进行异或操作

513F3069    8B45 14         mov     eax,dword ptr ss:[ebp+0x14]

513F306C    0345 98         add     eax,dword ptr ss:[ebp-0x68]

513F306F    8810            mov     byte ptr ds:[eax],dl ;保存解密后的数据



该算法比较简单,大家感兴趣自己去跟跟。
大概过程是程序每次读0X800字节的数据,进行循环逐字和0X5进行XOR得到明文,在进行播放。
程序编写思路:
首先读取VPY内的加密数据,真正的视频位置从0X2CF8(该位置从OD中分析得来)加密多个视频测试,是固定位置。
即:05 05 05 1D 63 71 7C75 68 75 31 37 05 05 05 05然后,取每字循环和0X5进行XOR即可。
使用WINHEX测试如下:
4.png


解密后:
5.png


看到数据显示的是MP4格式的视频头。到此该文章就结束了。 目前没发现生成的播放密码有什么用。

小菜鸟一个,错误之处还请指点。


样品:链接: https://pan.baidu.com/s/1oyF2LH89WoqODoqg5xGYlg密码: nu7c


文件使用破解软件加密,下载请自行杀毒。  

免费评分

参与人数 7吾爱币 +13 热心值 +7 收起 理由
zhangjie88 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zhaojunkai + 1 + 1 看见楼主这么暴力的分析,咳咳,可以用一段视屏测试一下。。。
天宇星晨 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
Sound + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
gjdir + 2 + 1 谢谢@Thanks!
lookerJ + 1 谢谢@Thanks!
生如上善若水 + 1 + 1 大神,能教下怎样爆破金盾的吗?https://www.52pojie.cn/thread-774044-1-1.h.

查看全部评分

本帖被以下淘专辑推荐:

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

Light紫星 发表于 2019-1-8 09:01

[C++] 纯文本查看 复制代码
#include <stdio.h>

int main(){
        FILE *fp, *fout;
        char nameIn[80]="windows程序开发窗口截图实现一.vpy", nameOut[80]="windows程序开发窗口截图实现一.MP4";
        static char c,c2;
        fp = fopen(nameIn,"rb");
        fout = fopen(nameOut,"wb");
        fseek(fp, 0x2CF8, SEEK_SET);
        while(1){
                if (fread (&c,1,1,fp)!=1) break;
                c2= c ^ 0x05;
                fwrite(&c2,1,1,fout);
                }
        fclose(fp); fclose(fout);
        return 0;
} 
hbqjxhw 发表于 2018-8-25 22:03
#include <stdio.h>

int main(){
        FILE *fp, *fout;
        char nameIn[80]="in.txt", nameOut[80]="out.txt";
        static char c,c2;
        fp = fopen(nameIn,"rb");
        fout = fopen(nameOut,"wb");
        while(1){
                if (fread (&c,1,1,fp)!=1) break;
                c2= c ^ 0x05;
                fwrite(&c2,1,1,fout);
                }
        fclose(fp); fclose(fout);
        return 0;
}
这个还不够完善,如何从偏移0x2CF8截取保存,希望大家来改一改。
吾爱看雪 发表于 2018-8-23 23:18
小果 发表于 2018-8-24 00:03
厉害厉害,虽然现在还看不太明白
chenjingyes 发表于 2018-8-24 00:25
请问楼主怎么找到其播放按钮的事件对应的代码的??
生如上善若水 发表于 2018-8-24 01:08
大神,能教下怎样爆破金盾的吗
我的求助帖子:https://www.52pojie.cn/thread-774044-1-1.html
懿蓑烟雨 发表于 2018-8-24 08:23

感谢分享
梦想继续吧 发表于 2018-8-24 08:41
叮咚 来自超时代的警告 -1000热心值
头像被屏蔽
sstm 发表于 2018-8-24 09:25
提示: 作者被禁止或删除 内容自动屏蔽
zhenghui99 发表于 2018-8-24 09:48
我有几十个超时代加密的视频,想提取,就是不会
头像被屏蔽
vvking7 发表于 2018-8-24 10:32
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-26 01:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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