gpt4 book ai didi

c - GDB - 修改 C 字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:09 24 4
gpt4 key购买 nike

我得到了一些使用 sprintf() 创建格式化字符串的汇编代码:

...
0x00304272: call 0x557b2 <dyld_stub___sprintf_chk>
...

我试图找出字符串的格式,所以我找到了格式参数 "%s%s" , 它存储在 $ecx 中登记。现在,我不知道一个字符串在哪里结束,下一个字符串从哪里开始,所以我想将格式参数更改为 "%s@%s" .

我试过使用 set $ecx = "%s@%s" (这似乎有效,根据 print (char *) $ecx ),但出于某种原因, sprintf()使用格式字符串而不是新格式字符串。

我错过了什么吗?如何修改格式字符串?

最佳答案

I have tried to use set $ecx = "%s@%s"

如果您处于 32 位模式(我假设您是,因为您使用的是 ecx 而不是 rcx),当您停止在call ...sprintfsprintf的参数已经入栈。

如果参数来自%ecx,您需要在之前将新值重新分配给%ecx > 该值被压入堆栈。

关于c - GDB - 修改 C 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8190861/

24 4 0
文章推荐: python - 将一个 numpy 数组的值添加到特定索引处的 2D numpy 数组的最快方法
文章推荐: linux - 无法在 CentOS 6.5 中查看 MP4
文章推荐: python - 'str' 对象没有属性 'dt'
文章推荐: jquery - 我想更改在带有单选按钮的组合框 (