IoT设备逆向工程中的函数识别
本文主要讨论IoT设备逆向工程中的函数识别、符号迁移问题,不考虑BinDiff、PatchDiff2等重型工具,有些场景也不太适用。函数识别技术主要涉及两大类,一是IDA自身的FLIRT技术,二是Craig的rizzo技术,本文介绍它们的基本原理、工程实践细节。另外附赠几个其他类型IDA插件的使用说明。
离线生成/proc/kallsyms结果
标准kernel的源码是公开的,但很多手机、IoT设备的kernel有定制化开发,比如把一些加解密处理放进kernel,用户态通过ioctl()调用内核态代码。没有改动后的源码,要想搞清楚这些定制化开发在干什么,只能对之进行逆向工程。