码迷,mamicode.com
首页 > 其他好文 > 详细

ZCTF-ARM64-Re300

时间:2016-01-26 20:12:13      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

Re300-arm64

????是一个64位的ARM程序。使用IDA加载,蹦出来这个框框,就是说IDA6.6还没有对ARM64位的程序实现relocation的分析。

技术分享

????就是由于这个,所以连对libc库函数的调用都看不到了。如下图是start函数:

技术分享

????连__libc_start_main都看不到了,此外,程序里对strlen,malloc,memset,scanf等库函数的调用都看不到了,好一个糟糕。如果看一下.got.plt,你会发现原因就在这里,.got.plt里东西真的不是我们想看到的。

技术分享

为了解决这个问题,我用readelf来帮助我。

技术分享

?

????有了这些东西,我对程序里的一些函数名称手动进行了rename,这样就可以分析下去了。现在在看start,是不是好多了呢?

技术分享

????这样之后,就可以分析下去了。Main函数很简单,读入字符串,处理,如果符合要求,则输出congratulations。

技术分享

????

????下面就可以对程序的算法进行分析了,我利用qemu搭了一个ARM架构的64位的Ubuntu服务器,然后也可以调试了。

????最后分析的算法是:读入一串字符串,依次取出3个字符,3个字符是24比特,从24比特中依次取出6个比特当作一个字符,那么 3个字符就变作4个字符了,如果用户输入长度为15的字符串,则经过处理后得到长度为20的字符串。对这一处理后的字符串,程序依次取出5个字符,列出了5个方程(通过分析算法得到)。那么我们解这5个方程就可以确定这5个字符,进而可以确定输入。

技术分享

?

技术分享

?

?

?

ZCTF-ARM64-Re300

标签:

原文地址:http://www.cnblogs.com/wangaohui/p/5161178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!