52lxw 发表于 2019-7-2 16:07

适合新手的含有des加密的crackme



运行截图:


参考:https://github.com/dhuertas/DES/blob/master/des.c

欢迎大家来玩玩啊!

glk1010282338 发表于 2019-7-2 17:03

支持一下!

hndabing 发表于 2019-7-2 17:25

谢谢分享

姚小宝 发表于 2019-7-2 19:54

盲猜 52pojie!

JemmyloveJenny 发表于 2019-7-2 23:38

本帖最后由 JemmyloveJenny 于 2019-7-3 00:00 编辑

其实你可以strip一下再上传到这里der…你这种没strip的拖进IDA函数名字都看光了
你的源代码大概就这样吧
```
int main(int argc, const char *argv[], const char *envp[])
{
    int i = 0;
    uint64_t encrypted;
    char input;

    scanf("%s", input);

    for (i = 0; i <= 7; ++i)
    {
      encrypted |= *(input + i);
      if (i == 7)
            break;
      encrypted <<= 8;
    }
    if (des(encrypted, 0x3132333435363738LL, 'e') == 0xC3F7D650DD925375LL)
      printf("g0od J0b!");
    else
      printf("please try again,DES!");
    exit(0);
}
```
然后密文为0xC3F7D650DD925375LL,密钥为"12345678"转uint64,解密之后的uint转字符串就是"52pojie!"
不过我为啥觉得这个DES的实现这么非主流呢,直接用uint64返回结果的是头一次见……正常的DES不都是输入输出指针和长度的嘛?

Joduska 发表于 2019-7-3 02:31

老哥您这个直接就露出来了,直接看出源代码。新手只需要转换一下就可以了。

52lxw 发表于 2019-7-3 10:18

JemmyloveJenny 发表于 2019-7-2 23:38
其实你可以strip一下再上传到这里der…你这种没strip的拖进IDA函数名字都看光了
你的源代码大概就这样 ...

的确,上传的时候忘记strip了
页: [1]
查看完整版本: 适合新手的含有des加密的crackme