阅读:2786回复:5
如何调试入口函数是NtProcessStartup的Native Application
Native Application(入口函数是NtProcessStartup)是在Windows的驱动加载好之后,在Windows登陆画面弹出之前执行的应用程序。该应用程序的启动是在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute中设置的。由于该应用程序是在Windows登陆画面弹出之前执行的,且该类应用程序无法在通常的windows模式下执行,所以在通常windows模式下无法调试。
请问有哪位大牛做过该类Native Application的开发。对于该类应用程序的开发该用什么工具,如何来调试它。可能的话,能详细的调试的方法写一下吗?小弟在网上找了许久,还是未找到关于如何调试该类应用程序的方法。请不吝赐教。在此先谢过了! |
|
沙发#
发布于:2008-06-04 10:15
还请大牛们不吝赐教。
|
|
板凳#
发布于:2008-06-04 17:27
就像调driver 一样调试它啊,同样是用windbg + virtual pc, 在运行它之前找个机会break, 然后用 命令 bu 模块名!NtProcessStartup. Run 起来之后过一会应该会断下来.
|
|
地板#
发布于:2008-06-05 15:36
谢谢albert21st回答。但我试过了,VMWare里的操作系统一起动,在没运行这个Native应用程序时,马上break,在那个Native应用程序里设置断点,接下来继续执行,结果在那个断点的地方没停下来。同样的方法在driver中能够停下来。所以我想问一下各位是否碰到过这样的问题。
|
|
地下室#
发布于:2008-06-24 07:59
是ntldr代码中的函数吧?
貌似楼主想调试nt代码? 用bochs吧。。从计算机加载MBR开始就可以调试了,不过速度很慢,似乎在实模式只有这个工具来。。 |
|
5楼#
发布于:2008-07-19 23:11
在程序开始处先加上
DbgBreakpoint(); 或者 __asm int 3; 强行中断。 当中断后,使用 .reload -user 装入你的 models 就可以使用源代码调试了 |
|