![]() |
eXeL@B —› Вопросы новичков —› Ошибка при вызове функции из DLL |
Посл.ответ | Сообщение |
|
Создано: 06 июля 2013 22:53 · Поправил: Dmitry89 · Личное сообщение · #1 Мне нужно добавить MessageBoxA в программу, чтобы он выводился при запуске. Для этого я через CFF Explorer в разделе Import Adder подключил библиотеку USER32.dll, импортировал по имени MessageBoxA и нажал Rebuild Import Table. В меню Import Directory я получил FTs (IAT) для USER32.dll и сложил ее с 00400000 (Import Base) Получил 16-ричное число - адрес для вызова MessageBoxA. В Olly я добавил JMP на этот адрес, и функция вызова MessageBoxA автоматически определилась (выводится как JMP <&user32.MessageBoxA> ). Затем в коде я заполнил необходимые параметры через PUSH, и добавли CALL с адресом на JMP <&user32.MessageBoxA>. Code:
Проблема в том, что программа просто вылетает на строчке CALL. Я думал что возможно неправильно задаю параметры. Чтобы это проверить я сделал свою DLL с фуекцией f(), которая вызывает мессенжбокс. Затем я подключил ее аналогично тому, как это делал с USER32. Но к сожалению CALL тоже крашит программу. dll я проверил и она нормально подцепляется программой, которую я написал в VC2010, т.ч. проблема явно не в ней. Если кто с таким сталкивался, подскажите как можно это исправить? ![]() |
|
Создано: 06 июля 2013 23:19 · Личное сообщение · #2 |
|
Создано: 07 июля 2013 00:25 · Личное сообщение · #3 |
|
Создано: 07 июля 2013 12:31 · Личное сообщение · #4 |
![]() |
eXeL@B —› Вопросы новичков —› Ошибка при вызове функции из DLL |
Эта тема закрыта. Ответы больше не принимаются. |