Изменить вызов функции dll в скомпилированном exe

У меня есть исполняемый файл, который я написал некоторое время назад и не могу найти исходный код для него (он был написан на C ++).

Это вызывает MessageBoxA функция в user32.dll и передает необходимые параметры ему. Я хочу изменить параметр флагов, чтобы включить MB_ICONERROR (0x10) флаг.

Как мне найти, какие байты в exe-файле нужно изменить, чтобы добиться этого?

0

Решение

Вам нужен дизассемблер, такой как ICE или IDA. https://www.hex-rays.com/products/ida/support/download.shtml.
Загрузите исполняемый файл. Найдите вызов Win32 API в окне имен, чтобы найти его, просто введите имя функции. Затем дважды щелкните CODE XREF, чтобы перейти к вызывающему абоненту.

введите описание изображения здесь

Тогда вы получите то, что хотите:
введите описание изображения здесь

Просто выберите строку и нажмите на Hex-View, чтобы получить адрес.

введите описание изображения здесь

2

Другие решения

Других решений пока нет …