用于逆向的加密算法
- 简单加密算法逆向分析
异或加密
仿射加密 - 对称加密算法逆向分析
RC4流加密
DES对称加密 - 单向散列算法逆向分析
MD5哈希函数
SHA哈希函数
首先要对这些算法的加密原理十分了解——参考现代密码学笔记
逆向方法
可以直接复用源程序进行动态调试获得flag的
加解密算法完全相同的是可以复用的
包括:异或加密 仿射加密 RC4流加密
其余的算法加解密不相同则只能使用静态调试写脚本解出flag
包括 DES AES MD5 SHA256
基本逆向思路——静态调试
首先先打开程序,查看程序提示的字符串,以及输入随意值之后的程序提示
根据程序的字符串提示,在IDA Pro中用shift+F12找到字符串,再通过X查看到交叉引用,再在这个字符串的上文定位到比较函数
先看main函数,分析main函数的执行过程,然后找到加密函数,根据加密函数分析出对应的加密算法
(F5查看反汇编或者直接看汇编)
然后再在函数中找到找到所需要的关键信息如密钥 密文等
最后再根据加密算法的原理写出加密算法的解密脚本或者是利用动态调试修改输入的字符串直接获得flag
PS:使用动态调试直接复用加密函数解密
首先得确保加密算法的加解密过程是一致的才可以使用!!!
首先先用静态调试找到密文和加密函数的地址
在x32dbg中定位到加密函数,找到输入的字符串地址,使用二进制编辑修改输入的字符串为密文,即可得到flag