liwj 发表于 2020-3-26 00:24

瞎猫碰上死耗子 破解超时代加密视频

本帖最后由 liwj 于 2020-3-26 00:24 编辑

瞎猫碰上死耗子 ,破解超时代加密视频,在网上下载了一些学习视频,不料是超时代加密,但不知道哪个版本,问了一下专业人士,说是超时代3.6版本,要破解得花150,{:1_907:},为了这150,上网收索一下超时代3.6的加密器

不料,还真有,自己给MP4文件进行加密,也生成一串注册码,把这注册码放到那些学习视频,结果不成功,不能用,但是放到自己的加密视频却可以播放,得出一个结论,自己加密的视频能被这注册码识别,而网上加密的视频

是不识别这注册码,那该怎么办?又上网百度,摸清了播放流程,流程是这样:识别注册码-解密加密的视频-播放。从流程来看,能不能用OD调试自己的加密视频,找到解密视频的代码,然后将其用Visio 2019编译器逆向这些代码

从而解密视频文件,经过测试,这个思路完全正确,而且能解密在网上下载来的视频【所以说是瞎猫碰上死耗子,误打误撞】。下面请看如何用OD调试找到播放器解密视频的地方:

liwj 发表于 2020-3-26 19:01

附上vector 基本使用代码,一般软件被vm的数据都可以使用vector 进行处理
void checkaddr(int Findwhat){
        vector<int> veci;
        vector<int>*p =&veci;
    FILE* fp, * fout;
        char nameIn = "esi乘以8.avc";//这个就是刚刚分析的数据堆 保存的后缀可以随便写 不一定就是avc
        int c, c2, c12, c212, c3212;
        fp = fopen(nameIn, "rb");
       
        fseek(fp, 0, SEEK_SET);
        veci.reserve(100);
        while (1) {
                if (fread(&c, 4, 1, fp) != 1) break;
                c2 = c ;
                veci.push_back(c2);//读取数据堆 进行保存到vector

        }
        fclose(fp); fclose(fout);

           // for(vector<int>::iterator it = p->begin(); it != p->end();it++){
                //cout << it << endl;
//        }
//获取某元素在容器里的相对位置与地址
        vector<int>::iterator itit = std::find(veci.begin(),veci.end(),Findwhat);//定义一个zhi代器
        if(itit == veci.end()){
        cout << "error!" << endl;
        }
        else{
             cout << endl;
             cout << "========分割线========" << endl;
                cout << std::distance(veci.begin(),itit) << endl ;
                cout << &(*itit) << endl ; //这里就是数据的地址 在汇编代码里 可以直接调用这个地址 来进行访问数据
        }
}

liwj 发表于 2020-3-26 01:12

以上是超时代9.36单个文件提取代码,细细体会一下,分享完毕!

看,六眼飞鱼 发表于 2020-3-26 00:57

大佬太强了,着实佩服

liwj 发表于 2020-3-26 01:02

那下好断点后,如何找到算法,其实是等READFILE 断下来后,在堆栈窗口找到buffer 然后数据窗口跟随,为什么要这样操作呢,其实就是要查看API读取了什么内容,这个buffer我的理解应该是个缓存的意思,在数据窗口查看这个缓存

读了什么东西,(这里要注意,用winhex 打开加密了的视频,记住这个二进制的数据),要是发现READFILE缓存保存了加密视频的二进制数据,那么就可以下一个内存访问断点或者硬件访问断点(为什么要这样下断点呢?因为要查

看汇编代码哪里访问了这些数据,哪里访问了这些数据,哪里就是算法),断下来后 就是算法了,就可以认真的读这些汇编代码了(建议在读这些汇编代码时,从代码的段尾往上读到段头【经验之谈,这样读不会感到眼花】)

liwj 发表于 2020-3-26 00:27

下bp Readfile 断点

liwj 发表于 2020-3-26 00:29

可以在B查看断点状态

dodeem 发表于 2020-3-26 00:30

加油
你一定可以

taozididi 发表于 2020-3-26 00:45

加油 你即将成为新一代大佬

liwj 发表于 2020-3-26 00:48

在断下来后,找到堆栈窗口,在buffer那里数据窗口跟随,然后在数据窗口选中一个字节,下一个内存访问断点,(如果断点不起作用,就下个硬件断点) F9运行,这时就断在解密算法处(如何检验,方法是留意数据窗口,解密后的视频格式为MP4,以此作为判断标准)

liwj 发表于 2020-3-26 00:51

http://www.jz5u.com/Soft/softdown.asp?softid=97839这是9.36下载地址

liwj 发表于 2020-3-26 00:53

对ReadFile不了解的朋友可以百度了解一下,我觉得它就是一个读取文件的api,要读取播放文件,所以就必须经过这个API
页: [1] 2 3 4 5
查看完整版本: 瞎猫碰上死耗子 破解超时代加密视频