Capstone引擎正式支持RISC-V架構(gòu)
Capstone是一個(gè)支持眾多處理器架構(gòu)的反匯編框架,其使用了LLVM編譯器后端讓指令匹配變得更精準(zhǔn),這個(gè)優(yōu)勢主要體現(xiàn)在變長指令級(比如x86架構(gòu))上,Capstone支持主流的CPU架構(gòu)包括x86, ARM( armv7/arm64),MIPS等,這為逆向工具的打造提供了更便捷的途徑,著名的開源逆向工具Radare2以及商業(yè)逆向工具IDA Pro的三方插件都基于Capstone。
RISC-V是一個(gè)開放的處理器指令級,但并不代表基于RISC-V硬件外設(shè)的固件是自由并且可審計(jì)的,也就是說RISC-V硬件廠商只提供二進(jìn)制blob固件的情況下要打造純自由的固件就必須通過逆向工程完成,在遭遇了去年HiFive Unleashed的固件事件后HardenedLinux社區(qū)決定加速Capstone支持RISC-V的進(jìn)程,2018年5月,porto703基于LowRISC的LLVM版本完成了對RV32I的支持以及RV64的部分支持。
HardenedLinux先是基于這個(gè)版本的工作但其后綜合了諸多因素(LLVM upstream的情況以及Capstone中SystemZ基于tablegen的代碼生成等)決定采用2019年2月的LLVM版本進(jìn)行推進(jìn),最終正式合并到capstone-next并會(huì)在下一個(gè)正式版本發(fā)布時(shí)進(jìn)入主線。隨著更多的逆向工具更全面的支持RISC-V,相信未來x86的固件不可審計(jì)的問題在RISC-V上會(huì)一定程度得到解決。