LegendSaber 发表于 2021-10-25 10:14

挺有难度的一道题吧

本帖最后由 LegendSaber 于 2021-10-26 15:41 编辑

      大家可以试试看能不能把加密算法逆向出来,然后求出正确的答案。密码是8位字符,不要输多,我没做处理输多会缓冲区溢出。
对了就会提示密码正确,错了就会提示密码错误


      
为了方便调试,我把加密的过程用下面的字符串提示出来了,中间那段就是加密算法

      
更新一下。。
这道题目是来源于我以前写过的一个简化版的DES算法。。想着放上来给大家练习一下逆一逆这种经典算法。。。源代码可以在这里看到
DES算法C语言实现
       核心函数是DESAlgorithm,大家有兴趣的话可以试一试

Qfrost 发表于 2021-10-25 15:12

然后吧   看这题目   按我的理解楼主的本意可能是将输入做DES-CBCKey为IVVector做加密然后比较?但是不知道是故意为之还是写错了,将参数设置成了key,这样就变成了把Key做了DES加密然后和输入异或,最后和密文比较。那么如果题没出错,直接断点0x401581,将加密后的密钥取出来,直接和密文异或就可得到这题的解love1900

IBinary 发表于 2021-10-26 13:41

```
compare_value =
e_xorvalue =
for index,v in enumerate(e_xorvalue):
    print(chr(v ^ compare_value),end='')
```
love1900
想学习的逆向下 initkey 跟DES算法.

Qfrost 发表于 2021-10-25 15:07

怎么说呢就这道题而言吧答案应该是love1900

Qfrost 发表于 2021-10-25 15:14

最后楼主编译的时候可以加-s参数把符号表抹一下   DES,IV这些都写函数名变量名上了    一眼就知道干了啥

LegendSaber 发表于 2021-10-25 15:19

Qfrost 发表于 2021-10-25 15:14
最后楼主编译的时候可以加-s参数把符号表抹一下   DES,IV这些都写函数名变量名上了    一眼就知道干了啥

没事啊 。。就是让大家逆一下这个简单的DES算法练练逆向

LegendSaber 发表于 2021-10-25 15:22

{:301_999:}兄弟们。。这个DES算法我特意删掉一些弄得比较简单 是为了让大家可以专注于逆向代码逻辑。。。不是让你们破解得。。。

LegendSaber 发表于 2021-10-25 15:24

Qfrost 发表于 2021-10-25 15:12
然后吧   看这题目   按我的理解楼主的本意可能是将输入做DES-CBCKey为IVVector做加密然后比较?但是不知 ...

主要得练习是逆InitBitKey和DesAlgorithm。。。

Qfrost 发表于 2021-10-25 16:19

如果是要逆的话那应该是DES加密输入然后再和密文比较。就把key做了加密然后和输入进行了一下异或的话完全不需要逆算法,动调得到加密后的密钥即可

LegendSaber 发表于 2021-10-25 16:24

Qfrost 发表于 2021-10-25 16:19
如果是要逆的话那应该是DES加密输入然后再和密文比较。就把key做了加密然后和输入进行了一下异或的话完 ...

其实没差。。如果只是要调试获得答案。。哪个都行

yingsummery 发表于 2021-10-25 16:35

学习受教了
页: [1] 2
查看完整版本: 挺有难度的一道题吧