0x01 背景
一开始看完这篇文章fortify SCA内置规则破解到简单工具开发使用_fortify导入规则-CSDN博客,想着通过IDA动态调试看看fortify是怎么调用的,把fortify命令行扫描时用的sourceanalyzer.exe导入IDA发现内容有点少,对IDA也不熟,没有什么收获。就去看看fortify的对规则的加解密。
0x02 加解密
根据fortify SCA内置规则破解到简单工具开发使用_fortify导入规则-CSDN博客查看三个jar包。
搜索encrypt
看下这个EncryptedMemoryBean类,是一个将解密后内容存储在内存的类。
注意这个CryptoUtil.encryptAndCompress,就是我们要找的。(1.别人已经确认过了;2.第一遍找的话,这个命名也值得一看)
这里在encryAndCompress中先判断一个属性内容是否为空再去调用了encryptAfterHeaders,这里应该是其他地方调用这个函数的时候会有这个值。
(EncryptedMemoryBean类)调用时,properties的输入值是null
加解密在一起的
一个分组加密算法。
0x03 破解加密的规则
一开始我的思路是直接调用dec去解密输入的数据流,但是仔细一看,dec的输入usrkey需要makeKeyFromString
同时这个keystring一路看上去,这里输入是空的
然后发现dec调用了很多com.fortify.utils.cryptoutils中的方法。
那还是直接按照fortify里面的调用,CryptoUtil.decryptCompressed去解密吧。
0x04 小结
- 1、解密搜索crypt、encrypt、decrypt等
- 2、加解密破解有时不太关注用的什么加解密算法,软件最后要解密,要解密就要调用,照着调用就可以了。
- 3、解密的时候不要去单纯的复制最后解密的方法,直接照着软件自己的调用