首页
社区
课程
招聘
[原创]使用QAsan对arm64文件进行分析
发表于: 2021-4-18 17:09 10730

[原创]使用QAsan对arm64文件进行分析

2021-4-18 17:09
10730

        论文地址  316K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5k6h3q4X3K9h3!0J5j5h3I4V1K9g2)9J5k6h3N6A6N6r3S2#2j5W2)9J5k6h3W2G2i4K6u0r3j5i4y4K6k6i4c8K6i4K6u0r3M7h3q4K6j5h3&6Q4x3X3c8K6k6h3y4V1k6i4j5J5x3q4)9J5k6i4m8V1k6R3`.`.

        目前找到的唯一能在闭源的arm架构下进行内存漏洞检测的工具,要是有更好的工具希望能交流一下。

        QAsan算是ASan+QEMU两个工具的结合,现在已经集成到AFL++。Asan只能对有源码的代码进行插桩检测,QAsan能对闭源的代码进行内存检测,并且支持arm架构(包括arm32和arm64)。不过缺点是会拉低fuzz的执行效率,而且只能检测出堆溢出的漏洞,如果对闭源的x86_64进行检测,可以去使用retrowrite,这一点在文档里有提到。

        参考文档:c6aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6m8c8V1I4H3L8s2g2K6M7r3I4#2M7#2)9J5c8V1q4r3e0s2m8D9N6i4y4H3L8s2g2K6i4K6u0r3N6s2u0W2k6g2)9J5c8X3c8W2N6W2)9J5c8Y4q4W2L8i4g2Q4y4h3k6E0L8$3c8W2i4K6u0r3L8r3W2T1M7h3q4K6j5h3^5`.


        这里尝试的是ARM64的执行效果,原因是使用的Ubuntu系统是X86_64,是64位的。如果想在64位的系统下对32位的arm文件使用QASan,需要安装其他的依赖项(ia32-libs)。如果不想安装依赖项并直接对arm32位的文件进行检测的话,可以尝试i386的系统。



        上一篇( https://bbs.pediy.com/thread-267074.htm  )提到怎么使用AFL++进行fuzz,在编译的时候会出现qasan编译不了的情况,但是这不影响fuzz的过程,不过跑好久都跑不出一个crash来,不如单独编译qasan,等有了crash在去用qasan,还能加快fuzz速度。

        参考 dcfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6S2L8X3c8J5k6h3q4X3K9h3!0J5j5h3I4V1K9g2)9J5c8Y4q4S2M7$3q4F1

                c93K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6S2L8X3c8J5k6h3q4X3K9h3!0J5j5h3I4V1K9g2)9J5c8Y4q4S2M7$3q4F1i4K6u0r3K9i4y4K6N6h3g2K6i4K6u0r3x3R3`.`. 


1、先git下来,用下面的命令。要是太慢的话导入到gitee里面,要用gitee的话记得要把需要recursive的asan-giovese @ b844043放到相应的位置。

2、安装arm64的gcc


安装完成后,aarch64-linux-gnu会默认安装在/usr/aarch64-linux-gnu路径下,设置QEMU_LD_PREFIX为此路径。


3、编译qasan

按它的提示执行

会报这个错误,是正常的,因为ls是x86架构的,而编译出来的是aarch64的。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 4
支持
分享
最新回复 (1)
雪    币: 80
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
不过有个问题,想问下在哪里能找到ARM架构的固件,binwalk了一些固件都是MIPS架构的,但是现在AFL++不支持MIPS架构。
2021-4-18 21:14
0
游客
登录 | 注册 方可回帖
返回