60.windbg----as、$u0(固定别名、自定义别名)

-------------------------------------------------------------------------------------
 

固定别名($u0~$u9)

有10个固定别名。他们是$u0, $u1, ..., $u9。他们的等价字符串可以是不包含ENTER键的任意字符串。

使用r (Registers)命令为固定别明指定等价字符串。定义固定别名时,必须在字母"u"之前插入点号(.)。等号(=)之后的文本是等价字符串。等价字符串可以包含空格或分号,但是头部和尾部的空格被忽略掉。不能用引号将等价字符串括起来(除非希望替代结果中包含引号)。

注意 r (Registers)命令设置固定别名容易混淆。这些别名不是寄存器或伪寄存器,即使使用了r命令来设置了他们的等价字符串。这些别名前不需要添加at符号(@),也不能使用r命令来显示这些别明的值。

默认情况下,如果没有定义固定别名,他们是空字符串。

0:000> r $.u0 = test1!wmain
0:000> .echo $u0
test1!wmain
0:000> u $u0 L2
test1!wmain [d:\windbg\test1\test1.cpp @ 16]:
01071a40 55              push    ebp
01071a41 8bec            mov     ebp,esp
注意是$.u0


 自定义别名

asaS 命令定义一个新的别名或重新定义已存在的别名

语法:

as Name EquivalentLine 
aS Name EquivalentPhrase 
aS Name "EquivalentPhrase" 
as /e Name EnvironmentVariable 
as /ma Name Address 
as /mu Name Address 
as /msa Name Address 
as /msu Name Address 
as /x Name Expression 
aS /f Name File 
as /c Name CommandString 

/e 设置别名的值为 EnvironmentVariable 指定的环境变量。 
0:000> as /e path_evn path
0:000> al
  Alias            Value  
 -------          ------- 
 path_evn         C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Common Files\Adobe\AGL;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\CMake\bin;C:\Program Files\doxygen\bin;C:\Python33;C:\GnuWin32\bin;C:\Qt\4.7.1;C:\Program Files\VanDyke Software\Clients\;D:\mysql\bin;C:\Program Files (x86)\SciTools/bin/pc-win32;C:\Program Files (x86)\Debugging Tools for Windows (x86) 
把环境变量path赋给了path_evn

/ma
将别名的等价值设置为从地址 Address 开始的null结尾的ASCII字符串。
/mu
将别名的等价值设置为从地址 Address 开始的null结尾的Unicode字符串。
/msa
将别名的等价值设置为从地址 Address 开始的null结尾的ANSI_STRING结构。
/msu
将别名的等价值设置为从地址 Address 开始的null结尾的UNICODE_STRING结构。
Address
指定用来决定别名的等价值的虚拟内存位置。 
/f
设置别名的等价值为 File 文件的内容。 /f 开关只能和 aS一起使用,不能和 as一起。
File
指定内容作为别名等价值的文件。 File可以包含空格,但是不能将 File用引号括起来。如果指定了非法的文件,会得到一个"Out of memory"的错误信息。 

如果用户别名是和命令的其他部分是连续的,就必须使用${用户别名}将用户别名包围起来,或者使用空格把别名和其他部分分隔开来:

0:000> as ENTRY $exentry
0:000> al
  Alias            Value  
 -------          ------- 
 ENTRY            $exentry 
0:000> dd ENTRY L2
00e2af95  358f36e9 63e1e900
0:000> dd ENTRY+2 L2
Couldn't resolve error at 'ENTRY+2 '
0:000> dd ENTRY +2 L2
00e2af97  e900358f 002c63e1
0:000> dd ${ENTRY}+2 L2
00e2af97  e900358f 002c63e1

但因为固定别名的长度是确定的,所以可以直接用$u0,而不需要大括号

0:000> r $.u0=$exentry
0:000> dd $u0+2
00e2af97  e900358f 002c63e1


使用al可以列出所有用户命令别名,使用ad可删除指定或全部(ad*)用户别名

0:000> al
  Alias            Value  
 -------          ------- 
 ENTRY            $exentry 
windbg> .hh ad
0:000> ad ENTRY            
0:000> al
No aliases


我们先找个字符串:

0:006> da 0136004d  
0136004d  "!This program cannot be run in D"
0136006d  "OS mode....$"


 

/ma 
将别名的等价值设置为从地址Address 开始的null结尾的ASCII字符串。 

 

0:006> as /ma asciistring 0136004d  
0:006> al
  Alias            Value  
 -------          ------- 
 asciistring      !This program cannot be run in DOS mode.
$ 


 

/f 设置别名的等价值为 File 文件的内容。 /f 开关只能和 aS一起使用,不能和 as一起。

如c盘下有1.txt,内容为

http://dump.gamesafe.qq.com/cgi-bin/susup/infocheck?FileHash=aee771cb&FileSize=18602&SusBaseAddr=0&FileName=2013-09-18-11-04-03.dmp&PgmName=test.exe&ClientPath=E:\项目SVN\ied_sec_client_proj\trunk\Tools\BugTraceEx\output\vc6\2013-09-18-11-04-03.dmp&ClientVersion=0&Uin=0&Qt=0&game_id=3&mac=8c89a5f50b24&guid=5d022ec05c6b100aec7dab5c26509d79&crashmodule_name=test.exe&crashmodule_version=0&crashexe_name=test.exe&crashexe_version=0&ime_count=1&ime_name_1=SOGOUWB.IME&ime_version_1=2.0.1.1198&safesoftware_count=1&safesoftware_name_1=QQPCTray.exe&safesoftware_version_1=8.4.10062.224&zone_id=265&os_main_version=6&os_minor_version=1                         
0:006> aS /f 1file c:\1.txt
0:006> al
  Alias            Value  
 -------          ------- 
 1file            http://dump.gamesafe.qq.com/cgi-bin/susup/infocheck?FileHash=aee771cb&FileSize=18602&SusBaseAddr=0&FileName=2013-09-18-11-04-03.dmp&PgmName=test.exe&ClientPath=E:\项目SVN\ied_sec_client_proj\trunk\Tools\BugTraceEx\output\vc6\2013-09-18-11-04-03.dmp&ClientVersion=0&Uin=0&Qt=0&game_id=3&mac=8c89a5f50b24&guid=5d022ec05c6b100aec7dab5c26509d79&crashmodule_name=test.exe&crashmodule_version=0&crashexe_name=test.exe&crashexe_version=0&ime_count=1&ime_name_1=SOGOUWB.IME&ime_version_1=2.0.1.1198&safesoftware_count=1&safesoftware_name_1=QQPCTray.exe&safesoftware_version_1=8.4.10062.224&zone_id=265&os_main_version=6&os_minor_version=1 


 

 

 

 

 

 

 

 

 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值