使用条件断点,我可以更改函数的返回值。例如,在 return 指令上设置断点时,以下 IDC 表达式可确保函数始终返回 false:
EAX=0
现在我想用零值覆盖函数接收的第二个参数。断点设置在函数 ( push 1Ch)的第一条指令上。不幸的是,我无法让以下 IDC 表达式按预期工作:
(ESP+8)=0
当函数被调用时,位于的值ESP+8是指即将接收一堆值的缓冲区的大小。通过故意将缓冲区大小设置为零,该函数将不会返回任何值。
如何使用 IDA 配置条件断点,将值设置ESP+8为零?是否可以通过简单地编辑断点而不是运行脚本来做到这一点?
您必须使用 IDC 函数来写入内存地址。我推荐 write_dbg_memory() 函数。
我仍然无法让脚本成功运行。使用该write_dbg_memory函数时,我收到以下错误消息:
Runtime error at _idc+0x00000022: Attempt to call undefined function 'write_dbg_memory'