首页
社区
课程
招聘
[旧帖] 求破解md5+aes密文的破解思路! 0.00雪花
发表于: 2012-2-8 13:58 22338

[旧帖] 求破解md5+aes密文的破解思路! 0.00雪花

2012-2-8 13:58
22338
有可执行行程序,求破解md5+aes密文的破解思路!
一密文由md5+aes加密组成,求破解思路

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2012-2-9 10:52
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
关于MD5
MD5本身是不可逆的散列加密算法。此前山东大学的一个教授给出的并不是真正意义上的逆向破解,只不过是找到缩短碰撞时间的方法。给定任意密文,立即还原原始报文,这种基于MD5的逆向解释算法至少到目前为止,还没有任何一个人或者组织公布出来。
所以,对于MD5,目前公认最有效的途径只有一个,就是基于穷举法的暴力破解。
这种方式取决于原始报文的长度、编码等等,使用和原始密文同样的MD5加密方式,对加密结果和原始密文进行比对,如果加密内容过长,编码构成很复杂,基本可以判定为不可能。

关于AES
AES是一种基于私钥的对称加密算法。也就是说,AES,可以通过私钥进行正向加密和逆向解密。这点上和MD5是有区别的。
AES的私钥长度分为三种128、192和256三种。所以,对于AES密文的破解其实和常规的对称算法一样,穷举私钥。
理论上来说,AES的破解难度要小于MD5,毕竟私钥的最大长度为256Byte。但是目前,似乎除了穷举私钥并没有更好的方法来获取私钥。

如果想破解一个加密算法,建议先去研究一下需要破解这个加密算法。可以是数学模型/公式,或者直接去查各种语言对应的源码。如果真的存在有牛人可以做出MD5的逆向算法;或者不需要私钥就能获取AES的原始报文;更或者直接通过密文获取AES的私钥。。那么,这样的人可以去申请图灵奖了。

总结一下:

上面已经分别分析了2种加密算法,给出个结论:
如果单纯的是想破解密文,建议还是放弃吧。
如果是想模拟报文加密,可以考虑从程序里把AES的私钥搞出来。很多程序的私钥都是放在程序里的。
如果还有其它,不如考虑绕过加密部分,比如考虑一下在验证的判断上打打主意,甚至把加密部分去掉直接获取原始报文。
2012-2-10 13:42
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有可执行程序,如何od跟踪出密匙!
2012-2-10 13:46
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
方法1:
如果不是使用动态私钥这种比较BT的办法,可以考虑在程序运行后,跟踪密文生成部分。
通常在AES的加密前就会出现。

方法2:
如果知道这个代码是用什么写的。可以考虑反编译一下源码。
一般程序员写代码的习惯会把类似加密算法这样通用的东西写成独立的一个类。在类里会写一个常量来标明这个私钥。
2012-2-10 13:56
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
2012-2-14 21:21
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
个人认为不太可能,如果要把这个密文件反回去,估计不太可能。不过可以考虑用破解的办法,把验证的办法,去掉,就有可能实现了。
2012-2-16 17:47
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
MD5只能通过暴力破解,目前比较主流的破解方式是采用彩虹表技术来破解。
2012-2-16 20:26
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
2012-2-20 14:09
0
雪    币: 279
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这。。。  出了暴力和社工  还有其他方法吗 ?
2012-2-20 15:22
0
雪    币: 346
活跃值: (1953)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
可以采用外挂常用的方式,调用加密/解密CALL,注入dll实现自己目的
2012-2-22 23:37
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
2012-2-27 14:03
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
2012-3-2 14:47
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
现在比较常见的方法是彩虹表

不过据说存在一个密码表,可以破解现在常见的加密算法。去年有听说被盗,后来就没下文了
2012-3-3 14:20
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
2012-3-14 17:18
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
2012-3-23 11:12
0
雪    币: 465
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
方法1:
如果不是使用动态私钥这种比较BT的办法,可以考虑在程序运行后,跟踪密文生成部分。
通常在AES的加密前就会出现。

方法2:
如果知道这个代码是用什么写的。可以考虑反编译一下源码。
一般程序员写代码的习惯会把类似加密算法这样通用的东西写成独立的一个类。在类里会写一个常量来标明这个私钥。
2012-3-24 15:44
0
游客
登录 | 注册 方可回帖
返回
//