第四届长城杯信息安全铁人三项赛逆向题rand5

admin 2025年1月11日12:24:50评论6 views字数 439阅读1分27秒阅读模式

0x00前言

最近学弟们刚比完第四届长城杯信息安全铁人三项赛。向他们要了题逆向题练练手。
这是一道比较简单的base64变异题。

0x01正文

先去查壳一下,发现是64位无壳ELF文件
第四届长城杯信息安全铁人三项赛逆向题rand5

第四届长城杯信息安全铁人三项赛逆向题rand5

可以发现,该程序是通过

     for ( i = 0; i <= 4; ++i )
  {
    v3 = gtable();
    s1 = encode(s1, (__int64)v3);
  }

后,然后用strcmp与一大串加密字符进行比较,若相同则返回Congratulations!。
先点进encode()函数,来看一下逻辑。
可以发现这里是base64加密的逻辑。
第四届长城杯信息安全铁人三项赛逆向题rand5

传入的V3自然就是base64变表了。进入gtable()来看看变表生成逻辑
第四届长城杯信息安全铁人三项赛逆向题rand5

第四届长城杯信息安全铁人三项赛逆向题rand5
从上图可知。他会先生成v2值(rand()%64说明值应该是在0-63之间),然后从aAbcdefghijklmn表中的第v2位开始一共取64位字符形成base64变表。
最后这种变异加密一共会进行五次。理清楚了逻辑,就可以之间用python写exp了。
第四届长城杯信息安全铁人三项赛逆向题rand5

最后结果如下图
第四届长城杯信息安全铁人三项赛逆向题rand5

©著作权归作者所有 - source: 535yx.cn

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月11日12:24:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   第四届长城杯信息安全铁人三项赛逆向题rand5http://cn-sec.com/archives/3618950.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息