在使用ida 分析 .sys文件时,发现几乎所有的函数名都是 sub_地址 的形式,经过查找,找到了原因和解决方法。与大家分享一下。
首先我们知道,可执行文件和目标文件里都会有一个符号段,用来存放函数名以及段名。ida在反汇编时通过这个段来定义各个函数的函数名。
然而,windows 为了缩小内核文件的体积,去除了符号段。关于去除符号段的方法可以参考 strip 工具
这就造成了开头的那个问题,也对我们分析内核文件带来了困难。
不过,微软在网上提供了一个符号存储库以供下载,但是后来windows的更新频率太快了,就不再提供直接下载功能。而是提供了一个在线的 Microsoft公共符号服务器。
要想进行分析,我们就要拿到符号表,而windows 的符号表其实可以从网上下载。以前windows的符号表是可以完全下载到本地的。但是后来由于windows更新频率的加快,导致符号表过时过快。所以现在符号表都是放置在在线符号服务器上的。
详情链接: