首页
论坛
课程
招聘
[转帖]CVE-2018-1040漏洞现形记(4)
2019-11-11 18:48 2588

[转帖]CVE-2018-1040漏洞现形记(4)

2019-11-11 18:48
2588


7我被指令淹没了

        谈到指令,许多人都能说一大堆,什么CISC、RISC,许多人也了解.但是,具体指令复杂到什么程度,估计很多人都没有认识.由于静态分析要处理所有的指令,所以我一直注重收集.从自写小程序分析,到HEVD.sys的分析,其中还有一些windows的库函数分析,收集的指令算是比较多了(由于考虑到intel的指令冗余太多,就没有参考intel的指令大全)。尽管如此,当面临几十万行的代码分析时(到现在为止最多的一个文件有35万行代码),才发现我有大量的指令没有处理。如浮点数指令都没有处理;还有如跳转指令,可能很多人认为网上关于跳转指令讲的很全,其实还有很多一般的帖子都没有讲。还有许多从未见过的指令。更要命的是,每条指令都要分析处理,至于如何处理,看个人喜好,或者看对代码分析的理解,及个人建模的考虑。我喜欢采用面向对象的思路,用一般性行为和状态特征描述指令,力求保证模型描述的适应性强,同时,保存信息的完备性也是关键因素之一。在设计时还要根据具体的分析目标,功能而定。

        其实,到现在为止,我仍然还有许多指令没有处理完。只是在程序中保存指令的提示。当分析碰到该指令时,再手工加入分析代码,这样可能拖得时间很长,但人不会很累。有时想是否可做一个自动写指令分析代码得程序,但太麻烦,而且只此一次,复用性太差,就作罢了。这些指令得处理也让我眼疼了好几天。

8大文件处理

        在整理完指令后,就是完成待分析代码得初始化。这个过程有点繁琐,无非是大文件得处理,大数据量的分析优化。由于咱技术理论功力不在此,而且,作为产品,优先目标不在于速度,而在于综合性能。因此,crystal在优化上只是从设计层面做了切割,勉强能完成初始化。当然,速度就不是很快了。不过这样也好,否则每天都要看电脑,伤神。在等电脑分析时,我还可以忙里偷闲休息哈。

        初始化的过程中要不断修补指令,有时还要处理分析语法,毕竟以前的东东可能还有错误。尽管是轻车熟路,但是也很费时间。特别是几十万行代码,上百个文件处理,各种方面的问题都可以理解,只能是见招拆招,所幸没有大问题。

9 functionchunk

        由于我们针对的是loadLibraryExW(),在完成初始化后,重点分析kernelbase.dll。开始分析时,一切顺利,找到结果一看,loadLibraryExW()函数的代码量很小,嵌套调用不少。但要命的是程序有许多未知路径中断无法遍历分析。为啥?难道程序出错?可实际没有报错啊?找出原始代码,几经周折,终于发现IDA中有大量的jump out跳转(暂且这样叫),就是跳转到外部的function chunk,而这些跳转是以前一直没有见到的,无论路径和代码分析都没有考虑,难怪。显然,如果不能找出外部的所有function chunk,则这个分析是不全的,毫无意义。

        function chunk是什么鬼?查找IDA,网上查了哈,不知所以。看到以前有人在网上提问,但是没有人回答。后来我想明白了:对于人工逆向而言,function chunk是自动跳转,现在的逆向分析根本不用考虑这个问题,这个也不是问题。但是,对于自动化分析而言,首先要找全代码,否则是废材。四处查找无果,网上也没有答案,算了,还是自己动手吧。

        首先我至少要将所有的chunk找出来合并,将所有路径不全。只有求IDA了。找了IDA的SDK文档,历时两天,终于搞清楚基本原理。于是,重新写了IDA的插件,重新整理分析所有函数和路径。这个过程虽然麻烦,但有惊无险,而且提高了经验值和抗摔打能力。其实,我到现在也不知道IDA为啥要将好好的一个函数切割未多个chunk,放在不同的地址空间。不过这样对我而言毫无意义,只要我能找全,其它暂时不考虑了。

        只是,找全了chunk后,我发现代码量大了许多。不过没关系,重新花时间验证和初始化吧。这个也不急,以前完成了验证,现在只是花时间跑,估计不会有麻烦。

        漏洞,快出来!


说明:我们的漏洞挖掘不是传统的模糊测试fuzzing,也不是样本分析,也不是人工分析,更不是手工调试,或动态逆向分析。不了解路径爆炸或符号执行等概念的可能会认为很幼稚,没关系,尽管批评。因为大家的留言代表了一种观点,我都会认真学习思考。

(下节:污染源有哪些?)

(未完,待续)

2019.11.11

麟朗曦科技 林孟尼


看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回