运用WinDbg调试Windows内核(一)

访客5年前黑客文章570

假如能够查看操作体系的内部作业进程,那么将会是一种强壮的才能。一些先进的歹意软件都将内核作为一起的方针,许多最强壮的缝隙也体现在内核组件中。因而运用一款调试器来探求这个环境是任何研究人员武器库中必备的有力东西。
学习这种调试的进程是很艰巨的,所以我供给了一些入门WinDbg调试的比如。咱们测验从根本指令开端,逐渐转移到一些更高档的调试器的运用。本文运用了三个比如来展现WinDbg调试的才能,期望经过这种办法来证明这个东西的强壮。
0×01 设置内核形式调试环境
下面一切的比如将运用WinDbg,能够从微软官网取得这款“Windows调试东西”,供给了包创立以及多用途的调试器。
当设置为内核调试时,你需求两台机器。其间一台用于调试器和另一台用于运转被调试的程序。树立内核调试环境的最简略办法是运用虚拟机和一款叫做VirtualKD的软件。VirtualKD能够让你调试命名管道,就好像是一个串行接口,大大加快了衔接。它还供给了一个虚拟机(VM)监视器,只需你发动虚拟机调试器,它会主动发动。
VirtualKD与VMware或VirtualBox的作用很好。装置简略,指令能够在SysProgs网站找到。假如一切顺利的话你的虚拟机将会在调试器中止,就像这样:

 
现在一切的调试环境设置现已做好了。在任何时候,你能够运用“g”(履行)指令让虚拟机从头履行调试。相同,你能够经过运用WinDbg中的CTRL + BREAK快捷键中止一个正在运转的虚拟机。
0×02设置符号
调试的一个重要方面是树立方针体系的正确符号。符号答应调试器匹配编译的二进制程序的地址,匹配函数或变量名,源文件途径以及每个符号对应于源文件中的行号。要显现的符号的重要性能够看看这两个相同的仓库盯梢成果的差异:
没有设置符号:

 
设置符号:

 
走运的是微软供给了大部分的二进制公共符号。公共符号一般包含界说一切的函数,静态和全局变量。他们还供给了一个符号服务器,以便调试器能够查询二进制文件中正确的符号。树立符号最简略的办法是设置“_NT_SYMBOL_PATH”环境变量。这是WinDbg和其他程序,如IDA,规范的查询符号途径的环境变量。您能够运用它衔接到Microsoft符号服务器以及缓存本地符号途径:c:symbols。本地缓存加快后来的符号拜访:
srv*c:symbols*http://msdl.microsoft.com/download/symbols
一旦符号途径设置,从头发动WinDbg,将会正确地设置新的符号途径。你能够在WinDbg中键入“. sympath”承认它正在运用的符号途径。在这一点上,你能够运转指令“.reload -f”,这将迫使的方针体系下载一切的符号,并且为每个模块缓存并加载。
0×03开端运用一些根本的调试指令
WinDbg是一个强壮的东西,但关于没调试过的人来说不是特别人性化。它供给了很多的可用指令,一些常见的指令仍是值得查看的。这里是具体的指令列表,协助指令是“.hh ”。咱们将经过WinDbg调试体系调用的根本函数。下面均是在Windows 7 64位体系下完结的。
首要,让咱们来看看有哪些模块是加载在当时方针体系上。假如你的符号设置正确你就能够履行你的之一个WinDbg的指令。运用“lm”(列表模块)指令,你应该看到这是当时加载的模块列表。你应该看到模块称号,并看到被加载的地址信息。这是从我的虚拟机中的截取的列表。

 
上述列表中“NT”模块比较风趣。这是Windows内核履行模块的姓名。该模块是Windows内核主功用区,它担任I / O,目标办理,安全和进程办理。咱们在用另一个指令深化到内核中,查看它的导出函数。WinDbg的指令“X”(查看)查询一个给定模块的符号。它能够被调用为​​“模块> !符号>”,并承受通配符。一切可拜访的体系调用都是先从字母NT开端。咱们用“X NT !NT *File*指令列出进行文件操作相关的体系调用的列表。

 
返回值是坐落内存中的函数名。咱们用“U”(反汇编)看看其间一个内存中的函数。“U”指令需求一个内存地址,该地址是内存中函数的地址,返回值是该函数的反汇编函数。咱们能够运用内存地址反汇编NtCreateFile函数,Windbg会解析为咱们解析该处的地址:

 
假如你想反汇编整个函数,那么能够运用“uf”反汇编指令。现在,咱们能够测验在NtCreateFile上下一个断点,来查看一些函数。增加断点指令是“bp”,它也需求一个存储器地址(或一个有用符号)作为参数。一旦设置断点并运用“g”持续履行,不久便在断点处断下:

[1] [2]  黑客接单网

相关文章

智能语音使用Mycroft AI的长途代码履行缝隙剖析

当我在Arch Linux社区开源软件包的开发奉献过程中,发现了一个很有意思的项目-麦考夫Mycroft AI,它是一款开源且根据人工智能(AI)的语音助理使用,在对它的研讨过程中,我发现了一个不必点...

想学编程从哪里开始,能去哪里找一个盗号的黑客,找一些像 黑客 之类的网络用语

import org.apache.http.entity.ContentType; 下面截图展现了靶机中的署理设置:首要勘探一下麦芽地的网站以及子域名,咱也直接就上 Google 大法。 查询成果有...

黑客改单接单_找黑客帮查老公微信聊天记录

一般浸透进犯进程一些歹意安排在展开歹意活动时,偶然会进行假装保护,这一点毫不古怪。 乃至,有一些假装能轻松被识破,看起来十分可笑。 除了技能细节本身外,研究人员还应该重视进犯的实在意图,并探求歹意软件...

黑客接单网接单项目_怎么着找黑客

三、 进犯面和方针扩大化咱们细心看看脚本,这个脚本设定好了电话的开场白、每一类型的回复对应的后续“分支剧情”以及间断节点,剧情完好,堪比境外欺诈集团的“剧本”。 事实上,一些歹意安排或许现在正在做这样...

天涯论坛赤裸信贷员黑客接单联系群_找黑客侵入私服

7、1234567 (⬆ 1)模块日志经营厅号段计算是高等学府邻近最为便利的获取手机号的办法,由于一般每一年学生入学都会敞开几个新的号段,亦或是重启一些退网时刻比较久的号段。 总归,这些号段一般都是该...

编程怎么学,看门狗找黑客2xthetap,黑客怎么找游戏漏洞

别的对教育、金融范畴有几回针对性进犯: 由于咱们现已清晰112ms是一次跳频序列的循环,那么从冗余数据中咱们能够推论:对.NET 高档言语编写的代码进行编译,就会得到一个由IL构成的二进制文件。...