使用 ntdll 里面的 DbgPrint 是不能使用 DbgView 看到调试信息的 不管里 是否点了 Capture Kernel 只有程序在调试的情况下 才能从调试器里面看到使用这个函数输出的 调试信息 。。。
不过 可以在机器外面连接一个内核调试器 当系统处于调试状态的时候 就可以看到调试信息了。。。。
测试代码
LONG (__cdecl * _DbgPrint)(LPCSTR Format, ... ); void main(){// __asm int 3 *(FARPROC *)&_DbgPrint = GetProcAddress(GetModuleHandle("ntdll.dll"), "DbgPrint"); _DbgPrint("%s","I am sincoder");}