0x00前言
最近学弟们刚比完第四届长城杯信息安全铁人三项赛。向他们要了题逆向题练练手。
这是一道比较简单的base64变异题。
0x01正文
先去查壳一下,发现是64位无壳ELF文件
可以发现,该程序是通过
for ( i = 0; i <= 4; ++i )
{
v3 = gtable();
s1 = encode(s1, (__int64)v3);
}
后,然后用strcmp与一大串加密字符进行比较,若相同则返回Congratulations!。
先点进encode()函数,来看一下逻辑。
可以发现这里是base64加密的逻辑。
传入的V3自然就是base64变表了。进入gtable()来看看变表生成逻辑
从上图可知。他会先生成v2值(rand()%64说明值应该是在0-63之间),然后从aAbcdefghijklmn表中的第v2位开始一共取64位字符形成base64变表。
最后这种变异加密一共会进行五次。理清楚了逻辑,就可以之间用python写exp了。
最后结果如下图
©著作权归作者所有 - source: 535yx.cn
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论