首先是IDA的]使用,打开VMware虚拟机,找到C:\Windows\system32\ntkrnlpa.exe,考到本地电脑,用IDA打开。
配置symbol标志文件:找到IDA文件下边的cfg\pdb.cfg,使用UltraEdit打开,第8行有个_NT_SYMBOL_PATH字符串,记住之后配置系统环境变量,计算机---属性---高级系统设置---高级---环境变量---系统变量---新建---变量名填写_NT_SYMBOL_PATH,变量值填写你的symbol标志文件的路径,比如:D:\vmsysbolxp,OK。
在左边的Functions window里边找到NtReadVirtualMemory,双击进入IDA View - A,这部分就是NtReadVirtualMemory对应的汇编代码,它以push开头,按F5进入Pseudocode-F,这个就是经过系统优化后反汇编出来的C语言代码,与原本的代码会有不同,主要是编译器优化的原因,不过功能几乎是一样的。在这里就可以进行反汇编的学习了。
通过IDA View - A,Pseudocode-F两部分去“猜测”原代码。
补充:
有一个文件包是微软那些函数的实现代码:WindowsResearchKernel-WRK.tar,网上好多,自己找一下,我用的是48.6MB的,使用Source Insight 3.5打开,在里边可以查看核代码的实现。
测试:看看自己实现的代码是否与刚才找到的代码实现的功能是一致的。
使用的常用快捷键:
F5:进入反汇编代码,使用:在汇编代码上按下F5就能到需要的返汇编位置: