前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第四届长城杯信息安全铁人三项赛逆向题rand5

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

作者头像
YanXia
发布2023-04-07 10:09:52
6840
发布2023-04-07 10:09:52
举报
文章被收录于专栏:YX’blog

0x00前言

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

0x01正文

先去查壳一下,发现是64位无壳ELF文件

13503-092i2ycq5evm.png
13503-092i2ycq5evm.png
26940-2huhfpm3k4j.png
26940-2huhfpm3k4j.png

可以发现,该程序是通过

代码语言:javascript
复制
     for ( i = 0; i <= 4; ++i )
  {
    v3 = gtable();
    s1 = encode(s1, (__int64)v3);
  }

后,然后用strcmp与一大串加密字符进行比较,若相同则返回Congratulations!。 先点进encode()函数,来看一下逻辑。 可以发现这里是base64加密的逻辑。

64770-xy7khr0ysf.png
64770-xy7khr0ysf.png

传入的V3自然就是base64变表了。进入gtable()来看看变表生成逻辑

30999-3e00jfx1i3j.png
30999-3e00jfx1i3j.png
85377-dfowzi0ohop.png
85377-dfowzi0ohop.png

从上图可知。他会先生成v2值(rand()%64说明值应该是在0-63之间),然后从aAbcdefghijklmn表中的第v2位开始一共取64位字符形成base64变表。 最后这种变异加密一共会进行五次。理清楚了逻辑,就可以之间用python写exp了。

68789-ip9bn7c1jg.png
68789-ip9bn7c1jg.png

最后结果如下图

28386-26sv8p4w7ri.png
28386-26sv8p4w7ri.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年01月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00前言
  • 0x01正文
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档