简单分析一款名为点盾云的视频加密播放器,观看视频时会有多种检测。防录像和虚拟机运行。
说说自己的猜测:如何过翻录像检测和在虚拟机内播放。
启动播放器,如有可疑进程,播放器会提示并结束视频。
激活码处输入QQ:1462109921 激活码无效,哈哈。。。。
载入OD运行后,查找字符串。也能发现出现的提示字符内容:
过防录像检测思路:
双击字符来到内存位置:
0038C205 83C4 30 add esp,0x30 0038C208 807E 1C 00 cmp byte ptr ds:[esi+0x1C],0x0 [color=red]0038C20C 74 7C je XDolitDrm.0038C28A[/color] 0038C20E 56 push esi 0038C20F 8D4C24 34 lea ecx,dword ptr ss:[esp+0x34] 0038C213 E8 635AFBFF call DolitDrm.00341C7B 0038C218 B3 03 mov bl,0x3 0038C21A 68 FC5D5D00 push DolitDrm.005D5DFC ; 点盾云检测到您的播放环境存在安全隐患,即将退出播放.. 0038C21F 8D4C24 1C lea ecx,dword ptr ss:[esp+0x1C] 0038C223 889C24 D0020000 mov byte ptr ss:[esp+0x2D0],bl 0038C22A 56 push esi 0038C22B E8 31A38600 call DolitDrm.00BF6561
如果直接把上方的JE跳过去,能否达到破解掉它的检测?向下翻还有一个JE检测:
0038C279 8D4C24 30 lea ecx,dword ptr ss:[esp+0x30] 0038C27D C68424 CC020000>mov byte ptr ss:[esp+0x2CC],0x1 0038C285 E8 6950FBFF call DolitDrm.003412F3 0038C28A 837C24 70 00 cmp dword ptr ss:[esp+0x70],0x0 0038C28F 0F84 FD000000 je DolitDrm.0038C392; qq:1462109921 0038C295 8B4C24 6C mov ecx,dword ptr ss:[esp+0x6C] 0038C299 8B11 mov edx,dword ptr ds:[ecx] 0038C29B 8B4424 54 mov eax,dword ptr ss:[esp+0x54] 0038C29F 8D4C24 1C lea ecx,dword ptr ss:[esp+0x1C] 0038C2A3 895424 20 mov dword ptr ss:[esp+0x20],edx 0038C2A7 894424 1C mov dword ptr ss:[esp+0x1C],eax 0038C2AB E8 C258FBFF call DolitDrm.00341B72 0038C2B0 50 push eax 0038C2B1 8D4C24 2C lea ecx,dword ptr ss:[esp+0x2C] 0038C2B5 51 push ecx 0038C2B6 E8 40FE8F00 call DolitDrm.00C8C0FB 0038C2BB C3 retn 0038C2BC 8BF8 mov edi,eax 0038C2BE 8D5424 20 lea edx,dword ptr ss:[esp+0x20] 0038C2C2 B3 05 mov bl,0x5 0038C2C4 52 push edx 0038C2C5 889C24 D8020000 mov byte ptr ss:[esp+0x2D8],bl 0038C2CC 50 push eax 0038C2CD E8 F024A800 call DolitDrm.00E0E7C2 0038C2D2 83C4 0C add esp,0xC 0038C2D5 57 push edi [color=blue]0038C2D6 68 E05D5D00 push DolitDrm.005D5DE0 ; find record process:[/color] 0038C2DB 8BC8 mov ecx,eax 0038C2DD C68424 D4020000>mov byte ptr ss:[esp+0x2D4],0x6 0038C2E5 50 push eax 0038C2E6 E8 DFFA9700 call DolitDrm.00D0BDCA 0038C2EB 8BC8 mov ecx,eax 0038C2ED E8 03268A00 call DolitDrm.00C2E8F5 0038C2F2 C3 retn 0038C2F3 8D4C24 18 lea ecx,dword ptr ss:[esp+0x18] 0038C2F7 889C24 CC020000 mov byte ptr ss:[esp+0x2CC],bl 0038C2FE E8 4FB9B600 call DolitDrm.00EF7C52 0038C303 C3 retn 0038C304 8D4C24 28 lea ecx,dword ptr ss:[esp+0x28] 0038C308 C68424 CC020000>mov byte ptr ss:[esp+0x2CC],0x1 0038C310 50 push eax 0038C311 E8 7CC1BF00 call DolitDrm.00F88492 0038C316 56 push esi 0038C317 8D4C24 34 lea ecx,dword ptr ss:[esp+0x34] 0038C31B E8 5B59FBFF call DolitDrm.00341C7B 0038C320 B3 07 mov bl,0x7 0038C322 68 A05D5D00 push DolitDrm.005D5DA0 ; 点盾云检测到您的播放环境存在安全隐患,即将退出播放 0038C327 8D4C24 1C lea ecx,dword ptr ss:[esp+0x1C] 0038C32B 889C24 D0020000 mov byte ptr ss:[esp+0x2D0],bl 0038C332 E8 20D0BB00 call DolitDrm.00F49357 0038C337 C3 retn 0038C338 68 88130000 push 0x1388 0038C33D 8D4424 1C lea eax,dword ptr ss:[esp+0x1C] 0038C341 50 push eax 0038C342 8D4C24 38 lea ecx,dword ptr ss:[esp+0x38] 0038C346 C68424 D4020000>mov byte ptr ss:[esp+0x2D4],0x8 0038C34E E8 CD54FBFF call DolitDrm.00341820 0038C353 8D4C24 18 lea ecx,dword ptr ss:[esp+0x18] 0038C357 889C24 CC020000 mov byte ptr ss:[esp+0x2CC],bl 0038C35E 56 push esi 0038C35F E8 C3CDC700 call DolitDrm.01009127 0038C364 8D4C24 30 lea ecx,dword ptr ss:[esp+0x30] 0038C368 FFD5 call ebp 0038C36A 8BCE mov ecx,esi
蓝色部分,似乎是有个对系统进程进行遍历的操作。遍历后和某些特征名对比,然后给出异常的提示。
现在看下找找对比的那些特征字符。。。。。。。。。。。。。。。。。。。。。。
下断 BP CreateFileW 双击dolit的加密视频文件,断下来,发现加密播放器在读取一个DB文件(在播放器DATA目录下的DB文件)。
DB文件,如果没有加密。不用破解,我们直接用SQLiteStudio工具打开DB文件查看。
有2张表。直接查看第二张表的数据。发现很多字段,用来存放不同的内容。 有些软件会把用到的参数用INI文件存放或放到注册表内!
从字段上能猜到大概意思,machineCodeKey 应该是电脑硬件机器码,里面存放了主机硬盘,CPU之类的序列号。 而localBlackListKey估计就是黑名单内容
可以看到里面有很多是录像工具或远程工具的名字 screen recorder.exe evcapture.exe teamviewer.exe ,从这里看到如果要破解过翻录检测。从上面逆向修改程序来破解,也可以避开黑名单里有的录像工具。使用黑名单里没有名的录像工具是否能过掉检测?
当然,破解播放器在虚拟机播放。有个表字段:localRegeditKey 也有对虚拟机名字的检测;修改或破解机器码达到多机播放里面也有存放本机机器码。有兴趣的朋友可以一试!
以上仅个人猜想,未测试仅技术学习。
最后好奇激活界面上出现的内容是从何来,经过分析数据加密后保存在加密视频文件内。分析算法后,就可得出。里面保存了很多解密或播放时的参数。通过提供的数据就能达到直接无密码解密破解还原为普通的视频文件。
ps:仅做技术交流和学习,如有侵权请告知删除。