开启了OD载入播放器进行分析,发现如下问题:
1、播放器会进行翻录检测
2、防止虚拟机播放
3、视频播放后,可直接对内存操作提取出源视频

翻录检测:主要是对指定的文件名或进程名对比
虚拟机检测:是针对虚拟机特征码
视频提取:视频在解密后,源数据出现在内存当中。可直接进行HOOK保存到磁盘中!
破解播放器:输入正确激活码后,数据会保存到注册表内。直接HOOK修改下即可多机播放。
另外该播放器有个重大BUG(个人见解,不知算不算BUG),可实现无密码播放或提取源视频。
    下面我们一起学习下如何过虚拟机:
    首先,安装完播放器后,用OD载入播放器。我安装在C盘:C:\Program Files (x86)\EVPlayer,F9运行后有个错误提示:
 
本次使用 暂停法找关键位置 来过虚拟机检测。在调用的位置下好断后,运行起程序一直F8走。走到播放器内存段后,向上看:

0040882F    C74424 04 00060>mov dword ptr ss:[esp+0x4],EVPlayer.0100>; OK
00408837    8D5D 9C         lea ebx,dword ptr ss:[ebp-0x64]
0040883A    C70424 A010FE00 mov dword ptr ss:[esp],EVPlayer.00FE10A0
00408841    8985 70FFFFFF   mov dword ptr ss:[ebp-0x90],eax
00408847    FFD6            call esi
00408849    83EC 0C         sub esp,0xC
0040884C    8D45 A0         lea eax,dword ptr ss:[ebp-0x60]
0040884F    C74424 08 00000>mov dword ptr ss:[esp+0x8],0x0
00408857    8D4D 94         lea ecx,dword ptr ss:[ebp-0x6C]
0040885A    C74424 04 14060>mov dword ptr ss:[esp+0x4],EVPlayer.0100>; Can not work in virtual Machine
00408862    C70424 A010FE00 mov dword ptr ss:[esp],EVPlayer.00FE10A0
00408869    8985 70FFFFFF   mov dword ptr ss:[ebp-0x90],eax
0040886F    89B5 74FFFFFF   mov dword ptr ss:[ebp-0x8C],esi
00408875    FFD6            call esi
00408877    83EC 0C         sub esp,0xC
0040887A    8D75 90         lea esi,dword ptr ss:[ebp-0x70]
0040887D    8D45 A0         lea eax,dword ptr ss:[ebp-0x60]
00408880    89F1            mov ecx,esi
00408882    C74424 08 00000>mov dword ptr ss:[esp+0x8],0x0
0040888A    C74424 04 E1050>mov dword ptr ss:[esp+0x4],EVPlayer.0100>; Note
00408892    C70424 A010FE00 mov dword ptr ss:[esp],EVPlayer.00FE10A0
00408899    8985 70FFFFFF   mov dword ptr ss:[ebp-0x90],eax
0040889F    FF95 74FFFFFF   call dword ptr ss:[ebp-0x8C]
004088A5    83EC 0C         sub esp,0xC
004088A8    8D55 98         lea edx,dword ptr ss:[ebp-0x68]
004088AB    8D45 A0         lea eax,dword ptr ss:[ebp-0x60]
004088AE    895424 0C       mov dword ptr ss:[esp+0xC],edx
004088B2    8D55 94         lea edx,dword ptr ss:[ebp-0x6C]
004088B5    C74424 1C FFFFF>mov dword ptr ss:[esp+0x1C],-0x1
004088BD    C74424 18 00000>mov dword ptr ss:[esp+0x18],0x0
004088C5    8985 70FFFFFF   mov dword ptr ss:[ebp-0x90],eax
004088CB    894424 14       mov dword ptr ss:[esp+0x14],eax
004088CF    895C24 10       mov dword ptr ss:[esp+0x10],ebx
004088D3    895424 08       mov dword ptr ss:[esp+0x8],edx
004088D7    897424 04       mov dword ptr ss:[esp+0x4],esi
004088DB    C70424 00000000 mov dword ptr ss:[esp],0x0
004088E2    FF15 58C2D501   call dword ptr ds:[0x1D5C258]           ; QtGui4._ZN11QMessageBox11informationEP7QWidgetRK7QStringS4_S4_S4_S4_ii
004088E8    89F1            mov ecx,esi

  Can not work in virtual Machine 这字符是不是很熟悉?在向上翻,找关键位置下断。重新加载播放器,F9在运行。最终我们发现一个可疑位置:

004082EE   /0F84 DC030000   je EVPlayer.004086D0
004082F4   |8D45 84         lea eax,dword ptr ss:[ebp-0x7C]
004082F7   |E8 84F8FFFF     call EVPlayer.00407B80
004082FC   |8B35 3CBDD501   mov esi,dword ptr ds:[0x1D5BD3C]        ; QtCore4._ZN7QString16fromAscii_helperEPKci
00408302   |C74424 04 FFFFF>mov dword ptr ss:[esp+0x4],-0x1
0040830A   |C70424 03060001 mov dword ptr ss:[esp],EVPlayer.01000603 ; VMWARE
00408311   |FFD6            call esi                                ; ??
00408313   |8945 88         mov dword ptr ss:[ebp-0x78],eax
00408316   |8D45 88         lea eax,dword ptr ss:[ebp-0x78]
00408319   |89F9            mov ecx,edi
0040831B   |8985 6CFFFFFF   mov dword ptr ss:[ebp-0x94],eax
00408321   |890424          mov dword ptr ss:[esp],eax
00408324   |A1 4CC0D501     mov eax,dword ptr ds:[0x1D5C04C]
00408329   |C74424 08 01000>mov dword ptr ss:[esp+0x8],0x1
00408331   |C74424 04 00000>mov dword ptr ss:[esp+0x4],0x0
00408339   |8985 70FFFFFF   mov dword ptr ss:[ebp-0x90],eax
0040833F   |FFD0            call eax
00408341   |83EC 0C         sub esp,0xC
00408344   |83F8 FF         cmp eax,-0x1
00408347   |BB 01000000     mov ebx,0x1
0040834C   |0F84 CE030000   je EVPlayer.00408720

  

VMWARE 这是不是也熟悉?前面讲了,它是对特征码来判断虚拟机的。于是我们把这字符串直接修改成别的后。F9运行,发现播放器启动了。
就这样跳过虚拟机检测了。

EV加密播放器的分析过程+过虚拟机方法的更多相关文章

  1. 零基础读懂视频播放器控制原理——ffplay播放器源代码分析

    版权声明:本文由张坤原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/535574001486630869 来源:腾云阁 ht ...

  2. 视频播放器控制原理:ffmpeg之ffplay播放器源代码分析

    版权声明:本文由张坤原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/535574001486630869 来源:腾云阁 ht ...

  3. 基于Stm32的MP3播放器设计与实现

    原创博文,转载请注明出处 这是我高级电子技术试验课做的作业,拿来共享一下.项目在安福莱例程基础之上进行的功能完善,里面的部分内容可参考安福莱mp3例程.当然用的板子也是安福莱的板子,因为算起来总共做了 ...

  4. FFmpeg简易播放器的实现-音视频同步

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10284653.html 基于FFmpeg和SDL实现的简易视频播放器,主要分为读取视频文 ...

  5. ckplayer网页播放器简易教程

    前言 ckplayer是一款在网页上播放视频的免费视频插件,该插件兼容性强.使用简单.api齐全.另外,任何个人网站或商业网站在不修改右键版权的基础上都可以免费使用. 下面将对ckplayer的整个使 ...

  6. 基于MFC的Media Player播放器的制作(3---功能实现)

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 下面我们试试一下,按下退出Button退出播放器的功能: 首先,我们双击退出Button按钮,就会弹出下图的框: 上面的弄好之后我们就实现 ...

  7. 雷火神山直播超两亿,Web播放器事件监听是怎么实现的?

    Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播.在视频业务大数据平台中,播放数据的统计分析非常重要,所以We ...

  8. embed 隐藏播放器显示

    昨天在页面做音频播放的时候,客户要求仅仅有声音.不显示播放器. 百度搜到解决方法: <embed id="embed_sound_id" src="test.mp3 ...

  9. 自制 h5 音乐播放器 可搜索

    闲言碎语: 有好几天没有发表博客了,这也是因为一直开发音乐和完善我的博客项目,好不容易抽出时间总结一下这几天所做的东西,笔试又不断通知,实则匆忙 今天难得逃了一次课,就趁这时间,该写写就写写吧~~ 进 ...

随机推荐

  1. Zookeeper启动流程分析

    前言 之前的Zookeeper协议篇-Paxos算法与ZAB协议通过了解Paoxs算法开始,到Zab协议的两大特性:崩溃恢复和消息广播,学习了Zookeeper是如何通过Zab协议实现高可用,本篇主要 ...

  2. 将大量数据批量插入Oracle表的类,支持停止续传

    之前用create table select * from XXTable无疑是创建庞大表的最快方案之一,但是数据重复率是个问题,且数据难以操控. 于是我在之前批量插数据的基础上更新了一个类,让它具有 ...

  3. Java清空一个指定文件

    清空test.log文件所有内容 File log = new File("c:\\test\\test.log"); FileWriter fileWriter =new Fil ...

  4. 一文说清 InnoDB 的事务机制

    我们从一个转账的故事开始. 隔壁小王从美团上找到了一家水饺店,准备中午吃水饺.下单成功,支付20元. 商家这里响了一下:叮叮,您有美团外卖新订单啦,请及时处理.水饺一份,好嘞,下锅. 很快小王吃到外卖 ...

  5. spring官网在线学习文档翻译

    Core Technologies (核心技术) Version 5.0.8.RELEASE 版本5.0.8RELEASE This part of the reference documentati ...

  6. command三国杀开发日记20200915

    一句话进展 完善了程序结构,分离.c和.h 搭建了6个阶段函数 实现了玩家摸牌 封装实现了日志打印函数 日志打印 想要区分日志等级,包括DEBUG.INFO.WARN.ERRRO.PANIC,提供统一 ...

  7. 在Winform程序中使用Spire.Pdf实现页面添加印章处理

    在一些场合,我们往往需要使用印章来给每页文档加盖一个印章,以表示该文档经过某个部门的认证的,常规的做法就是打印文档后盖章,如果需要电子档再行扫描一下.这样的的处理,如果文档很多,且仅仅需要电子文档的就 ...

  8. dubbo学习(一)认识dubbo

    一.发展背景 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.此时,用于简化增删改查工作量的数据访问框架(ORM)是关键. 垂直应用架构 当访问量逐渐增大, ...

  9. Oracle学习(七)游标

    一.简介 定义 实质上是数据集,类似数组一样,把查询的数据集存储在内存当中. 使用时可以通过游标指向其中一条记录,也可以通过循环游标达到循环数据集的目的. 游标的种类 显式游标: 使用之前必须得先声明 ...

  10. C++练习案例1.计算机类(利用多态实现)

    c++简单计算机类 简介 大家好,这里是天天like的博客,这是我发的第一篇随笔,用来记录我的学习日程,大家可以相互学习,多多交流,感谢 今天我要记录的随笔是在学习c++多态的知识点练习改进的一个案例 ...