-
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
猜您喜欢
- Win7笔记本小技巧:如何关闭触摸板,..2024-04-30
- win7安全证书过期,如何轻松解决?快..2024-04-30
- Win7本本无线网络不显示?这5招轻松解..2024-04-29
- windows7开机密码遗忘?别急,教你轻松..2024-04-29
- Win7电脑锁屏壁纸轻松换,让你的Wind..2024-04-29
- win7电脑开机无法进入桌面?看这里,..2024-04-29
相关推荐
- win7系统玩不了英雄无敌3怎么办?win..2022-11-03
- pp助手安装app旧版本根本安装不了 sa..2022-04-18
- Win7资源管理器不停重启问题?轻松几..2024-02-02
- Win7系统下文件夹无法拖动?这些方法..2024-01-23
- win7蓝屏怎么分析dmp文件 win7蓝屏dmp文件..2022-05-01
- Win7按Ctrl+Alt+Del打不开任务管理器怎么..2022-09-28