开启了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. 关于pom.xml文件中配置jquery,以及如何在jsp中引入

    pom.xml <!-- 对jquery的支持 --> <dependency> <groupId>org.webjars.bower</groupId> ...

  2. Spring IoC 到底是什么

    前言 「上一篇文章」我们对 Spring 有了初步的认识,而 Spring 全家桶中几乎所有组件都是依赖于 IoC 的. 刚开始听到 IoC,会觉得特别高大上,但其实掰开了很简单. 跟着我的脚步,一文 ...

  3. python:列表生成式和三元表达式、匿名函数

    一.列表生成式 1.列表生成式就是python内置的一种用来生成list的生成式. 比如下面这个例子: l=[] for i in range(10) list.append(i) 生成一个列表要用循 ...

  4. Unity接入多个SDK的通用接口开发与资源管理(二)

    接着上篇,本篇对SDK接口进行封装.在开始之前,需要先了解下面知识. (1)unity与android之间的交互 unity通过下面方式调用android中的函数: 方法一: AndroidJavaC ...

  5. 内存管理初始化源码1:setup_arch

    源码声明:基于Linux kernel 3.08 1. 在kernel/arch/mips/kernel/head.S中会做一些特定硬件相关的初始化,然后会调用内核启动函数:start_kernel: ...

  6. Linux实战(10):ssh密码被拒绝

    网上的操作都试过了,可还是不行,最终通过重装ssh服务解决. 参考资料:https://blog.csdn.net/VicdorLin/article/details/90727826 https:/ ...

  7. netty字符串流分包

    @Override protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf in, List<Obj ...

  8. Spring Boot实战之Redis缓存登录验证码

    1.工具类 1 import lombok.experimental.UtilityClass; 2 3 import java.awt.*; 4 import java.awt.image.Buff ...

  9. appcan 文件下载与预览

    用appcan开发的app如何在手机上查看附件和预览附件呢?今天就为大家介绍一下,用APP看附件实大是太方便了. 1.直接上代码吧,首先要初始化插件用到的所有方法.这个方法中 cbIsFileExis ...

  10. 转载:python argparse用法总结

    https://www.jianshu.com/p/fef2d215b91d 1. argparse介绍 是python的一个命令行解析包,非常编写可读性非常好的程序 2. 基本用法 prog.py是 ...