【问题标题】:Change one function call for another将一个函数调用更改为另一个
【发布时间】:2019-06-20 15:46:35
【问题描述】:

我有一个闭源的 win32 可执行文件,它可以播放声音;声音是硬编码的,我想做的是让它播放一个不同的声音。

我正在使用 x32dbg,我可以找到我想要更改的函数调用 - 它似乎正在使用 OpenAL 播放声音,如果我找到 alSourcePlay 并返回而不是调用它,则没有声音,因为我期待。

我的计划是将它换成对 PlaySoundW 的调用,因为该程序已经包含对该库的引用,我可以让它在同一目录中播放波形文件。我已经检查了调用 PlaySoundW 调用的方式的反汇编,并且我尝试修改调用的点以将它们复制进去,但是由于进入的指令比当前的指令多,exe 立即崩溃时你继续跑步。

我发现了很多关于这个过程开始的文章(主要是破解文章,例如在 exe 中找到一个函数调用并跳过它),但没有一篇涵盖我正在尝试做的事情。

我正在尝试做的事情可能吗?有没有更好或不同的方法来做到这一点?

提前致谢!

【问题讨论】:

    标签: debugging winapi disassembly


    【解决方案1】:

    你想做的事是可能的。如果您遵循函数的参数,您可以找到声音的二进制文件并将该数据更改为您的新声音。您将需要查找函数参数。我会反转文件,找到函数的偏移量,然后修改它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多