gpt4 book ai didi

windows - WinDbg - 将字符串参数与内存中的字符串进行比较

转载 作者:可可西里 更新时间:2023-11-01 09:44:25 25 4
gpt4 key购买 nike

我需要将作为参数传递给 WinDbg 的字符串与内存中的字符串进行比较。如何实现?

例如,字符串位于加载的 PE 中的特定偏移处。所以,我可以通过执行 da /c 100 <addr> 轻松读取字符串.但是,我如何使用这个字符串,将它与 arg1 进行比较? ,在 WinDbg 脚本中,使用 .if ? (和 $SPAT(),我猜)

我试图读取 da 的输出命令进入别名用户定义的寄存器,但我没有成功。

最佳答案

您可以使用 as/c 将字符串分配给别名:

0:012> as /c Hello .printf "%ma", 06130000
0:012> .echo @"${Hello}"
Hello world

然后您可以在其上使用 $spat():

0:012> ? $spat(@"${Hello}","*ell*")
Evaluate expression: 1 = 00000000`00000001
0:012> ? $spat(@"${Hello}","x*")
Evaluate expression: 0 = 00000000`00000000

要从命令行控制模式,请使用 -c 命令行开关设置另一个别名:

windbg -c "as Pattern *ell*"

// this line is from the command line argument
0:006> as Pattern *ell*

0:006> .dvalloc 1000
Allocated 1000 bytes starting at 04610000
0:006> ea 04610000 "Hello world"
0:006> as /c Hello .printf "%ma", 04610000
0:006> .echo ${Pattern}
*ell*
0:006> .echo ${Hello}
Hello world
0:006> ? $spat(@"${Hello}", @"${Pattern}")
Evaluate expression: 1 = 00000001

关于windows - WinDbg - 将字符串参数与内存中的字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46432087/

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