IT点滴

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  调试

调试
摘要:先开启真机内核态kernel调试 !process 0 0 svchost.exe 找到进程cid的地址 然后进入 .process /p fffffa8032be2870 然后 .process /i; g 再次中断后继续 一定要重新加载用户态调试符号 .reload /f /user 或者 .p 阅读全文

posted @ 2018-11-13 16:31 Ady Lee 阅读(1364) 评论(0) 推荐(0)

摘要:这里先介绍两个指令: sx指令: The sx* commands control the action that the debugger takes when an exception occurs in the application that is being debugged, or wh 阅读全文

posted @ 2018-11-09 17:23 Ady Lee 阅读(790) 评论(0) 推荐(0)

摘要:1 . 条件断点是断点命令 ( bp 或者 bu ) 与j命令或者.if命令一起使用的,后面跟着一个gc命令 0:000> bp Address "j (Condition) 'OptionalCommands'; 'gc' " 0:000> bp Address ".if (Condition)  阅读全文

posted @ 2018-08-05 12:25 Ady Lee 阅读(6352) 评论(0) 推荐(0)

摘要:本文关键字:Minidumps, Windows, SEH, VisualC, .NET摘要本文讲述了 minidumps 是怎样工作的、当你的程序崩溃的时候应该如何生成它们、以及如何在 Visual Studio .NET 中将它们重新读入。原文作者:Andy Pennell中文翻译:Victor原文链接:http://www.codeproject.com/debug/postmortemdebug_standalone1.asp如果你的程序在客户的机器上崩溃了,那么你现在可以使用 minidumps 和 Microsoft Visual Studio .NET 调试器在事后进行调试。本文 阅读全文

posted @ 2013-11-19 09:51 Ady Lee

摘要:http://www.cppblog.com/Walker/archive/2012/11/08/146153.htmlhttp://blog.sina.com.cn/s/blog_48f93b530100fsln.html在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想解决引起问题的bug,最困难的应该就是调试release版本了。因为release版本来就少了很多调试信息,更何况一般都是发布出去由用户使用,crash的现场很难保留和重现。本文将给出几个解决方案,完成对release版应用程序crash错误的调试。(本文只讨论Windows平台MSVC环境 阅读全文

posted @ 2013-11-19 09:03 Ady Lee

摘要:使用内核调试会话也可以执行一些用户态调试任务,比如向位于用户态的模块设置断点。但这样做与使用用户态调试器有什么不同呢?我们就以向NTDLL.dll模块的ZwTerminateProcess函数(Stub)为例谈谈二者的区别。区别一、在内核调试会话中设置这个断点的“难度”略大些。这是因为NTDLL不属于内核态的模块,所以内核会话通常不会加载这个模块(的符号),因此当执行bp命令时很可能被自动蜕化为bu命令。0:kd>bpntdll!ZwTerminateProcessBpexpression'ntdll!ZwTerminateProcess'couldnotberesolv 阅读全文

posted @ 2013-03-14 16:47 Ady Lee 阅读(506) 评论(0) 推荐(0)

摘要:!process 0 0 winlogon.exe.process /p /r 815196c0!peb (不用此命令,x列不出msgina的符号表).reload /s /f msgina.dllx msgina!*bu msgina!xxxx 阅读全文

posted @ 2013-03-14 14:03 Ady Lee 阅读(243) 评论(0) 推荐(0)

摘要:之前的调试winlogon程序,要在系统注册表做些设置。后来看到网上调试lsass程序只要按如下方法:!process 0 0 lsass.exe.process /p /r 815196c0我发觉按上面的方法做,连设置注册表都不需要了,非常方便。接着我们就可以按调用户模式的程序一样下断点调试了。举个例子,我们在登录的过程中需要输入用户名、密码,按如下过程就可以看到输入的内容了。我在user32!GetDlgItemTextW下了个断点,这个API我是在OD下看它的调用参考得来的(你可以复制一份,不运行它,只用来看反汇编,OD反出来的汇编码还是蛮好的)。kd>!process 0 0 w 阅读全文

posted @ 2013-03-14 14:02 Ady Lee 阅读(832) 评论(0) 推荐(0)

摘要:调试winlogon尽管winlogon也是用户模式的程序,但是它处理用户的登录、注销、以及CTRL+ALT+DELETE的操作,如果用一般的方法调试,一旦它切换桌面,就无法输入,无法控制调试器了。这里我用“虚拟机+WinDbg+系统自带ntsd”的方法调试。启动虚拟系统先按设置允许winlogon调试,如下:1、建立键值“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File ExecutionOptions\WinLogon.EXE\Debugger”使它的类型REG_SZ,值为“ntsd -d 阅读全文

posted @ 2013-03-14 14:01 Ady Lee 阅读(725) 评论(0) 推荐(0)

摘要:by Nicolas FalliereThis paper classifies and presents several anti-debugging techniques used on Windows NT-based operating systems. Anti-debugging techniques are ways for a program to detect if it runs under control of a debugger. They are used by commercial executable protectors, packers and malici 阅读全文

posted @ 2013-03-14 11:52 Ady Lee 阅读(615) 评论(0) 推荐(0)