gpt4 book ai didi

string - 如何确定 WinDbg 中以空字符结尾的字符串的长度

转载 作者:行者123 更新时间:2023-12-02 15:17:25 27 4
gpt4 key购买 nike

正在调试的目标进程的地址空间中存在以null结尾的ASCII字符串。我想写一个 WinDbg 脚本来打印出这个字符串的长度。假设我知道字符串的起始字符地址,如何计算它的长度?

最佳答案

也许是笨拙的 windbg 脚本语言
但当然可以即兴发挥
将其放入一些 foo.txt 并将其保存在类似 e:\blah\foo.txt

的位置
r $t0 = ${$arg1}; 
r $t1 = @$t0;
.while( @@c++(*(BYTE *) @$t0) != 0) {r $t0 = @$t0+1}
.printf "Len( \"%ma\" ) = 0n%08d\n" , @$t1 ,@$t0-@$t1

并像执行任何普通脚本一样执行

零终止检查的例子

0:000> .foreach (place {s -[1]sa ntdll L400} ) { $$>a< e:\\xxx\\strlen.txt place }
Len( "!This program cannot be run in DOS mode. $" ) = 0n00000044
Len( "gA=é/né/né/nà~½nè/nà~ºn¨/nà~«nÛ/nà~¬nÜ /nà~»nè/nà~¾nè/nRiché/n" ) = 0n00000071
Len( "/nRiché/n" ) = 0n00000010
Len( ".text" ) = 0n00000005
Len( "`RT" ) = 0n00000003
Len( "`.data" ) = 0n00000006
Len( ".rsrc" ) = 0n00000005
Len( "@.reloc" ) = 0n00000007

关于string - 如何确定 WinDbg 中以空字符结尾的字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39445322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com