血色 发表于 2015-5-21 21:46

算法分析-屏幕录像专家播放密码解析

本帖最后由 血色 于 2015-5-21 22:21 编辑

今天没事,突然想起前些天在各论坛上都发现好多人说现在的屏幕录像专家不能爆破了
我也试了试,结果不出所料,搞了好久,没有爆破成功,但是也有相当的收获
现在将收获分享给大家,希望大家多多支持,一定要给评分哦!呵呵!

程序载入OD


查找字符串,发现密码不对,请输入密码,上面那个密码不对是尝试三次以上出现的



双击来到这里


向上找能跳过的地方,可以改跳转,目标是04117AC,我们记下这个地址


经过测试,我们又找到上面这里


向上找,其实我们直接改这里就连密码都不用输了,直接改成jmp 004117AC


运行出错


录像是黑屏


查找关键字,有两个,以测试,应该是下面一个


双击来到这里


向上找能够跳过去的关键跳


修改je为jnz


程序终止退出。


研究了好久,没有收获,索性看看他的算法吧
在判断密码对错的上面有一个CALL,应该是关键CALL


F7单步进去,发现算法


算法简单的介绍一下,程序把密码按顺序取单字符与一个基数相加
这个基数是十六进制的“7D5”,相加完了之后保存结果
简单说是:
基数+第一位+第二位*2+第三位*3+第四位*4+第五位*5+第六位*7
为什么要写这么多呢,因为这个程序判断密码位数被五整除时,后面的数会递加1
比如:第一位*1   第二位*2
          第五位*5   第六位*7
          第十位*11,第十一位*13
          第十五位*17第十六位*19

如果大家看的不太懂,后面我会附算法

最后累积的结果与程序原密码运算后的结果相比较


程序原密码运算之后的结果是:4411
我输入的密码是“23”,经过运算后得到的是:86D

86D显然是不等于4411的,这里的比较是十六进制比较

这样一来,我认为这个屏幕专家即使设置了一个密码,但其实有很多都是可以的
下面我们开始做实验了
我用易语言写的一个小程序

结果一样的,但是我们需要逆运算,怎么办呢?

我人笨,经过苦思冥想,用一种方法实现了,但是密码超过5位的时候运算就得好几分钟了
位数越多,时间呈几何增长,唉

如图:


我们用刚才的86D做实验
我们知道,我刚才输入的密码是:23,运算结果是86D
经过逆运算,我们用86D做运算,运算的结果太吓人了
可以有N种结果
但是经过实验证明,N种结果都可以正常打开录像播放的。

Shark恒老大发话,莫敢不从,加密算法已经优化,解密算法刚写好,大家看看可以优化一下代码!

**** Hidden Message *****




Desire 发表于 2015-5-21 22:00

本帖最后由 Desire 于 2015-5-21 22:25 编辑

其实我刚刚是想抢个沙发帮楼主补充一下,刚刚特地去拿了CM区的那个天狼星的CM,基数就是十进制的2005
结果=基数(0x7D5)+密码第一位的键码(比如数字1键码就是49,这里是49是10进制的,转换成16进制就是31,如果是数字2那键码就是10进制的50,转换成16进制就是32)*1+第二位键码*2+....
我只是做个补充,哈哈

血色 发表于 2015-5-21 22:03

太谦虚了,我是新手,这才是我的第二篇教程。

Shark恒 发表于 2015-5-21 22:04

建议在这个帖子里完善一下未发布的内容,可以加入精华。{:5_121:}

血色 发表于 2015-5-21 22:05

Desire 发表于 2015-5-21 22:00
师傅好厉害,我研究过没看到明文密码就直接扔回收站了

如果觉得还能过得去,别忘了给评个分,哈哈,脸皮够厚的!

ningzhonghui 发表于 2015-5-21 22:21

真希望楼主发的是新版的,谢谢分享过程了....顶起

it混混 发表于 2015-5-21 22:22

向楼主学习,坐等未完善部分出炉

血色 发表于 2015-5-21 22:22

ningzhonghui 发表于 2015-5-21 22:21
真希望楼主发的是新版的,谢谢分享过程了....顶起

我实验过了,基本上所有的都是一样的,反正至少我遇到的版本都可以,都是一样的算法,一样的解法!

歪歪 发表于 2015-5-21 22:24

{:5_116:} 我来看看下

bigharvest 发表于 2015-5-21 22:27

这个不错
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 算法分析-屏幕录像专家播放密码解析