-
-
问一个问题,将内核文件映射到内存之后获取未导出函数的地址。
-
发表于:
2013-7-15 15:18
4511
-
问一个问题,将内核文件映射到内存之后获取未导出函数的地址。
从网上找了好多资料后,写了个程序,来获取NtXXXX的地址,该函数未导出。所以通过特征码查找。
首先,将createfile 打开ntoskrnl.exe,然后创建映射之类的。。重点不在这。。。
然后,顺利将ntoskrnl.exe映射进内存。然后读取,成功了。得到NTXXXX函数的RVA=947FC.
然后我用XUETR工具查看本机器ntoskrnl.exe的基地址,然后将这个基地址加947fc,反汇编跟到这个地址之后查看。并没有看到我要找的函数。。。。。
问题就是这个问题,有了问题自然要开始解决。我首先通过工具看了看本地NtXXXX这个函数的地址,减去XUETR查看的本机器ntoskrnl.exe的基地址,发现 得到的RVA2竟然等于上面通过映射文件得到的RVA1+0x14000;也就是说末尾3字节是相同的。。。。
我对PE不是很了解。只是知道有那么个事,一会去查看一下,难道我第一次得到的是文件偏移??可是网上的资料很多都是说内存映射之后得到的就是RVA啊。。。。
还有个问题,就是我用GetFileSize获得的文件大小,我C盘下的这个ntoskrnl.exe,是209000.而XUETR显示的ntoskrnl.exe 是229000(好像是这个,反正两个数不一样大),请问这是为什么呢?我用XUETR右键的内存转储文件,拷贝出来的,文件大小是2.16MB,而我C盘下的这个文件是2.04MB。。。。。我懂得确实不多。百度搜狗了一天也没找到什么有用的。还麻烦高手给解释一下。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课