wwx
wwx
驱动牛犊
驱动牛犊
  • 注册日期2001-09-30
  • 最后登录2013-09-26
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:2786回复:5

如何调试入口函数是NtProcessStartup的Native Application

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

返回顶部