mozhucy's blog.

redhat-re1

字数统计: 243阅读时长: 1 min
2018/06/07 Share

主要逻辑

  • 输入一个长度为41的flag,并用221填充到48位.
  • 分成6组每组8字节的块,传入encode函数
  • 异或验证

    encode函数

  • 生成一个伪随机数key,取8bit,然后base16编码存起来,最终长度为64
  • 将每一个块base16编码为一串长度为16的字符串
  • 进入第二层encode(块)函数
  • base16decode后,再次异或加密

    第二层encode函数

  • 首先传入一个base后的16字节,传入key,会输出一个enc_base16的字符串
  • 首先,函数将每个16字节的块,再次分块,使其成为4组4字节的块
  • 然后srand_key传入一个函数,函数会将其扩充为96长度的一个字符串
  • 将四字节的块和一个12长度的key传入函数,加密后传出函数并返回给四字节的块
  • base16解密

IDEA算法

  • 比赛后发现是IDEA算法,那么结合着算法来逆这个

原文作者:mozhucy

原文链接:http://yoursite.com/2018/06/07/redhat/

发表日期:June 7th 2018, 8:45:45 pm

更新日期:June 7th 2018, 8:45:45 pm

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG
  1. 1. 主要逻辑
  2. 2. encode函数
  3. 3. 第二层encode函数
  4. 4. IDEA算法