Изменить один вызов функции на другой - PullRequest
0 голосов
/ 27 января 2019

У меня есть исполняемый файл win32 с закрытым исходным кодом, который воспроизводит звук;звук жестко запрограммирован, я пытаюсь заставить его воспроизводить другой звук.

Я использую x32dbg и могу найти вызов функции, которую хочу изменить- кажется, что он использует OpenAL для воспроизведения звука, и если я нахожу alSourcePlay и просто возвращаюсь вместо вызова его, звука, как я и ожидаю, нет.

Я планировал обменять его на вызов PlaySoundWпотому что программа уже содержит ссылки на эту библиотеку, и я могу просто заставить ее воспроизводить волновой файл в том же каталоге.Я изучил разборки способа вызова вызова PlaySoundW, и я попытался изменить точку, в которой выполняется вызов, чтобы скопировать их, но, поскольку в него входит больше инструкций, чем в настоящее время, исполняемый файл немедленно вылетает, когдаВы возобновляете работу.

Я нашел много статей о начале этого процесса (в основном о взломе, например, о поиске вызова функции в exe и его пропуске), но не о том, что я пытаюсь выполнить.делать.

Возможно ли то, что я пытаюсь сделать?Есть ли лучший или другой способ сделать это?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 января 2019

То, что вы хотите сделать, возможно.Если вы следуете аргументам функции, вы можете найти двоичный файл звука и изменить эти данные на ваш новый звук.Вам нужно будет найти аргументы функции.Я бы перевернул файл, нашел бы смещение функции и затем изменил бы его.

...