2.别名
执行的时候直接用内容替换原始操作数。别名有一种固定别名,另一种是自定义别名。
有10个固定别名,为\(u0~\)u9.在定义固定别名时要用r命令,同时要在字母u前面加一个.
用于自定义别名的命令有3个,分别是as,ad和al。as命令可以为内存中的一些字符串定义别名,ad用于删除别名,ad Name
表示删除某个别名,ad *
删除所有别名,al是列出别名。格式如下
我们现在查看一个字符串,地址是04040dc内容就是如下
用上面的格式设置别名并将其列出。alias:别名
3.表达式
WDG能够识别两种表达式类型,分别是MASM和C++表达式。.expr命令可以查看默认使用的表达式语法。这两种表达式的操作符和操作数都略有区别,使用“@@c++(...)”或者“@@masm(...)”来制定表达式的求值器。masm用?,c++用??
masm表达式除了可以使用+-*/算术运算符,类似转型运算符。
还有一些特殊的运算符支持复杂的调试命令。
4.流程控制语句
WDG定义一系列元命令和扩展命令来实现流程控制,列举如下。
5.实例
书中的例子是利用脚本对CreateFileA函数设断,判断第一个参数是不是“c:\1212.txt”若是则中断,具体如下
D:\script_ascii.txt内容如下
“poi(esp+4)”取地址的值。
给poi(esp+4)所指地址的内容别名\((fname)。“sicmp”用于进行字符串比较,判断\){fname}是否为“c:\1212.txt”。
调试功能扩展
WDG有良好的可扩展性。WDG的扩展模块也是导出了指定接口的DLL文件。
1.基本功能扩展
自带一部分扩展模块。在启动时默认加载。
扩展模块的功能涵盖了WDG常用命令集。例如观察peb的命令“!peb”,它的功能由winxp\exts.dll模块实现。
2.加载自定义调试扩展
用户可以自行加载一些扩展功能模块以丰富WDG功能。加载之前,需要指定搜索扩展模块DLL的路径。
3.自行编写扩展模块
提供了调试扩展的开发接口。
小结
可以通过阅读帮助文件来更好的使用WDG。熟悉了WDG命令模式后发现他是非常高效的,特别是调试系统模块及进行内核调试时,WDG是最佳选项。
标签:加密,WDG,扩展,解密,别名,调试,模块,第二章,表达式 From: https://www.cnblogs.com/Corax0o0/p/17024823.html