准备环境

主机环境(win10):

安装完NanoCode(默认安装在c:\NanoCode)之后,还需要安装Intel System Studio(简称ISS),从官网(https://dynamicinstaller.intel.com/system-studio/download)下载并安装。Intel System Studio比较庞大,得耐心下载和安装。

安装注意事项:

  1. 安装ISS时,ISS会判断本机是否安装了Windbg,从而是否安装EXDIIPC.dll,EXDIIPC.dll是NaoCode调试时选择exdi方式调试依赖的组件。所以在在安装ISS时请选择custom,然后选择WinDBG extension。

  2. 安装完ISS之后,需要检查一下NanoCode安装目录下data目录下ndb.cfg文件的ipcapi的路径是否正确,如果不正确,需要修改一下,比如ipcapi=C:\IntelSWTools\system_studio_2020\tools\python3\Lib\site-packages\py2ipc\windows\x64\IpcApiAccess_x64.dll,如果路径带空格,使用双引号括起来。查找时,一般这串(tools\python3\Lib\site-packages\py2ipc\windows\x64\IpcApiAccess_x64.dll)是一致的。

目标机GDK7(Win10):

目标机Win10没有预装任何需要的软件。

目标机GDK7(Ubuntu):

目标机Ubuntu预装了服务ndsrv和内核模块ndb.ko,应该是和主机通信的组件。可以从高端调试下载安装:http://advdbg.org/gdk/resource.aspx,如果二进制无法安装,可以通过编译源码来安装。

尝试中断目标Ubuntu和Windows

中断Ubuntu:

1,目标机GDK7开机进入Ubuntu,可以先lsmod | grep ndb确认ndb.ko是否正常运行;

2,主机Win10启动NaoCode;选择“去调试”或者直接选择左边的内核调试;

3,选择调试选项,点击“确定”;

4,然后等待工具栏上的“break”按钮变亮,同时右下角任务栏也会多出OpenIPC_x64.exe的图标;

5,此时,目标价GDK7的Ubuntu还在活蹦乱跳,准备点击“break”按钮了,看看能不能中断下来了(中断下来就抽根烟,中断不下来就抽二根烟);

6,很遗憾,如二烟所愿,没有中断下来;此时,点击Output->Nano Code查看输出,发现了问题(…no GPC threads in this domain),果断打开设备管理器,发现设备不正常。

7,将“通用串行总线控制器中”带“叹号”的设备先禁用一次,然后在启用一次,这样就正常了,输出窗口也输出了一些信息;

8,在试试,看看能不能中断,这次,如我所愿,断下来了,也进入了输入模式;

9,然后输入.reload,在输入lm,显示了很多模块;

10,先到这里,输入g或者按F5或者点击工具栏的”运行”按钮继续运行,Ubuntu又活了。

中断Windows10:

1,GDK7开机进入Win10;

2,重新启动NanoCode(以后使用不重启),进入内核调试,选择调试选项;

3,点击确定之后,等待一会,直接中断下来了,同时会启动“IntelExdiServer”;

4,还是比较顺利的,重新g起来,也没有问题;

总结:

  1. 主要使用了GDK7和NanoCode,环境搭建,中断系统,后续在介绍单独的调试过程;

  2. 下次调试一下Linux内核函数,尝试中断printk;

作者:李宜桐  创建时间:2024-03-20 11:47
最后编辑:沈根成  更新时间:2024-04-26 11:30