挺有难度的一道题吧
本帖最后由 LegendSaber 于 2021-10-26 15:41 编辑大家可以试试看能不能把加密算法逆向出来,然后求出正确的答案。密码是8位字符,不要输多,我没做处理输多会缓冲区溢出。
对了就会提示密码正确,错了就会提示密码错误
为了方便调试,我把加密的过程用下面的字符串提示出来了,中间那段就是加密算法
更新一下。。
这道题目是来源于我以前写过的一个简化版的DES算法。。想着放上来给大家练习一下逆一逆这种经典算法。。。源代码可以在这里看到
DES算法C语言实现
核心函数是DESAlgorithm,大家有兴趣的话可以试一试 然后吧 看这题目 按我的理解楼主的本意可能是将输入做DES-CBCKey为IVVector做加密然后比较?但是不知道是故意为之还是写错了,将参数设置成了key,这样就变成了把Key做了DES加密然后和输入异或,最后和密文比较。那么如果题没出错,直接断点0x401581,将加密后的密钥取出来,直接和密文异或就可得到这题的解love1900 ```
compare_value =
e_xorvalue =
for index,v in enumerate(e_xorvalue):
print(chr(v ^ compare_value),end='')
```
love1900
想学习的逆向下 initkey 跟DES算法. 怎么说呢就这道题而言吧答案应该是love1900 最后楼主编译的时候可以加-s参数把符号表抹一下 DES,IV这些都写函数名变量名上了 一眼就知道干了啥 Qfrost 发表于 2021-10-25 15:14
最后楼主编译的时候可以加-s参数把符号表抹一下 DES,IV这些都写函数名变量名上了 一眼就知道干了啥
没事啊 。。就是让大家逆一下这个简单的DES算法练练逆向 {:301_999:}兄弟们。。这个DES算法我特意删掉一些弄得比较简单 是为了让大家可以专注于逆向代码逻辑。。。不是让你们破解得。。。 Qfrost 发表于 2021-10-25 15:12
然后吧 看这题目 按我的理解楼主的本意可能是将输入做DES-CBCKey为IVVector做加密然后比较?但是不知 ...
主要得练习是逆InitBitKey和DesAlgorithm。。。 如果是要逆的话那应该是DES加密输入然后再和密文比较。就把key做了加密然后和输入进行了一下异或的话完全不需要逆算法,动调得到加密后的密钥即可
Qfrost 发表于 2021-10-25 16:19
如果是要逆的话那应该是DES加密输入然后再和密文比较。就把key做了加密然后和输入进行了一下异或的话完 ...
其实没差。。如果只是要调试获得答案。。哪个都行 学习受教了
页:
[1]
2