开启了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. Java清空一个指定文件

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

  2. 初探nmap

    nmap 也就是Network Mapper用来扫描电脑开发的端口 主要功能: 探测主机在线情况 扫描主机开发端口和对应的大概服务命令: nmap 127.0.0.1 查看该主机开放的端口和端.端口类 ...

  3. C#开发PACS医学影像处理系统(六):加载Dicom影像

    对于一款软件的扩展性和维护性来说,上层业务逻辑和UI表现一定要自己开发才有控制权,否则项目上线之后容易被掣肘, 而底层图像处理,我们不需要重复造轮子,这里推荐使用fo-dicom,同样基于Dicom3 ...

  4. vim配置汇总

    目录 配置行号 显示状态栏 设置提示换行线 配置行号 set number 效果 显示状态栏 set laststatus=2 设置提示换行线 set colorcolumn=81

  5. MVC设计模式-笔记1

    MVC不仅仅是一个设计模式,它应该说是一种软件开发架构模式,它包含了很多的设计模式,最为密切是以下三种模式: 1.Observer观察者模式 2.Composite组合模式 3.Strategy策略模 ...

  6. 操作系统(AIX)双因素身份认证解决方案-中科恒伦CKEY DAS

      一.场景分析 操作系统是管理计算机硬件与软件资源的计算机程序,用于工作中的进程管理.存储管理.设备管理.文件管理.作业管理等,十分重要,安全等级极高! 二.问题分析 1.密码设置简单,非常容易被撞 ...

  7. MySQL 10w+数据 insert 优化

      由于业务原因,遇到了如题所述的业务问题,事务执行时间在30s~50s 不等,效果非常不理想 方案1. jdbc批处理 5w+ 数据测试,分别使用了mybatis insert()()(拼接xml) ...

  8. Java基础一篇过(二)泛型

    一.啥是泛型 概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数. 格式 类名<类型名> 标记符 E - Element (在集合中使用 ...

  9. 基础篇:java基本数据类型

    1:java几种基本数据类型大小 关键字 类型 位数 (8位一字节) 取值范围(表示范围) byte 整型 8 -2^7 ~ 2^7-1 short 整型 16 -2^15 ~ 2^15-1 int ...

  10. mysql-15-view

    #视图 /* 含义:虚拟表,和普通表一样使用.通过表动态生成的数据 只保存了sql逻辑,不保存查询结果 应用场景: 1.多个地方用到同样的查询结果 2.该查询结果使用的sql语句较为复杂 */ USE ...