系统吧 专业的电脑操作系统,支持重装各种原版系统xp/win7/win8/win10 这个系统怎么样?试试系统吧系统,体验办公系统畅快愉悦感。 各种电脑系统安装过程一样,神一般的畅快!
-->
当前位置:主页 > win7 >

Win7系统中使用WinDbg与虚拟机调试驱动程序的操作方法和要点(9)

作者:宋惜瑶 分类:win7 发布时间:2017-10-12 21:37:56

g ------------------------------------------test2.txt完结--------------------------------------------- 首先对相关指令作一些介绍 BP 地址或者函数名 “命令” 命令参数是可选的...

g

------------------------------------------test2.txt完结---------------------------------------------

首先对相关指令作一些介绍

BP 地址或者函数名 “命令” 命令参数是可选的,存在的情况下,中断的同时会先运行那些命令。

J(条件表达式)‘命令1’;命令2 相当于.if但是又有点不同命令2只能是1个,后面所有命令会被忽略。

POI() 返回指针的指向位置的内容。

!= 不等于

这里用了条件中断的方法实现,第一个条件中断指令用$t0作为计数器,第二次中断的时候变修改堆栈中指针指向位置的内存区域。注意到调用API的返回地址在ESP中,直接跳出去,然后修改EAX就可以达到修改函数输出参数的效果了。

这里提供第二种可行的方法,并且更有可扩展性,现在看看test.txt中的代码。

-------------------------------------------test.txt------------------------------------------------

g $exentry

r $t0=0

bp messageboxw

bp getcommandlinew

bp exitprocess

.while (eip!=77e7b0bb){

g

.if($ip=77e116cc){

r $t0=$t0+1

.if($t0=2){

r $t1=poi(esp+8)

f $t1 l4 45

}

}

.if($ip=77e7c693){

g poi(esp)

r $t1=eax+5

f $t1 l4 55

}

.elsif($ip=77e7b0bb){

.break

}

}

g

------------------------------------------test.txt完结----------------------------------------------

仍然先介绍一些指令:

.while(条件表达式){} 跟C语言中的一样,循环结构,直到条件表示式为真

.elsif(){} 跟前面的.if用法一样,它的作用如字面上意思,只是小心别拼错为ELSEIF

.break 跟C语言中的一样,跳出循环。

如果在条件为真的时候不用.break跳出循环就会出错,这点要注意。

这里构造了一个循环结构,并且通过对比EIP的方法来识别函数,同样地因为我的虚拟机是WIN 2000 连SP1都不是,所以我不肯定该地址在你的机器中仍然可用。不过这里提供了一个思路,你可以用这个方法构造一个SCRIPT来加强WINDBG的功能,例如象OD一样中断的时候自动显示所有参数,并且带上英文提示那是什么参数。同样地,我们可以做一个自动化分析SCRIPT,分析每个CALL中包含了什么API,并且列出输入和输出参数,CALL的深度还指令数,并且自动生成报告文件,假如有人开发出这样一个SCRIPT,调试分析将会变得容易。WINDBG里面有个相似功能的指令。

WT 自动跟踪并生成报告,几乎跟我上面说的一样。带/l参数的时候可以设置深度,不过很多时候,我们看到一个CALL并不知道里面究竟有多深,但是我们希望得到一些关于那个CALL的详细信息来判断是否值得跟进。

两个问题:

1、递归,那这个指令不知道运行多久。

2、大量NATIVE API调用,显然大多数情况下,我们并不关心。

比起1,2更加常见,/i参数是用来避开指定模块的,不会用,帮助文件里也没提。。。。希望有大大能答我这个问题

WINDBG提供了下面3个指令用于保存分析过程进文件,通过适当的开关可以过滤一些无意义的信息,使分析过程易于观看。

.logopen 文件路径带/U参数则以UNICODE方式输入文本。重写整个文件,并记录当前命令窗口在使用该指令之后的所有内容。

.logclose 文件路径 停止记录并关闭文件。

.logappend 文件路径带/U参数则以UNICODE方式写文件。记录当前命令窗口在使用该指令之后的所有内容,并添加进文件。

提到了功能强化,大家都知道OD里面有个命令是运行到RET处吧,在WINDBG中似乎没有这样的指令,类似的有PC,即运行到CALL。我写了一个SCRIPT来模拟OD中的那个指令。现在我们来看看goret.txt

xp 更多>>
win7 更多>>
win8 更多>>
win10 更多>>
U盘 更多>>
电脑技术 更多>>
网站地图 | 豫ICP备2021035069号-4 | 友情链接qq:191064436
系统吧

版权所有 © 2012-2023 系统吧 免责声明:本站资源均收集于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时删除相应资源。