Capstone是一个支持众多处理器架构的反汇编框架,其使用了LLVM编译器后端让指令匹配变得更精准,这个优势主要体现在变长指令级(比如x86架构)上,Capstone支持主流的CPU架构包括x86, ARM( armv7/arm64),MIPS等,这为逆向工具的打造提供了更便捷的途径,著名的开源逆向工具Radare2以及商业逆向工具IDA Pro的三方插件都基于Capstone。
RISC-V是一个开放的处理器指令级,但并不代表基于RISC-V硬件外设的固件是自由并且可审计的,也就是说RISC-V硬件厂商只提供二进制blob固件的情况下要打造纯自由的固件就必须通过逆向工程完成,在遭遇了去年HiFive Unleashed的固件事件后HardenedLinux社区决定加速Capstone支持RISC-V的进程,2018年5月,porto703基于LowRISC的LLVM版本完成了对RV32I的支持以及RV64的部分支持。
HardenedLinux先是基于这个版本的工作但其后综合了诸多因素(LLVM upstream的情况以及Capstone中SystemZ基于tablegen的代码生成等)决定采用2019年2月的LLVM版本进行推进,最终正式合并到capstone-next并会在下一个正式版本发布时进入主线。随着更多的逆向工具更全面的支持RISC-V,相信未来x86的固件不可审计的问题在RISC-V上会一定程度得到解决。