• XSS.stack #1 – первый литературный журнал от юзеров форума

Ошибка вызова LoadLibraryA, FASM x64

DrClinker

RAID-массив
Пользователь
Регистрация
03.12.2020
Сообщения
63
Решения
1
Реакции
37
Пишу программу ну ассемблере, при вызове LoadLibraryA("winhttp.dll") происходит ошибка, НО!, что очень интересно, если в файле есть секция импорта и где угодно есть вызов функции из User32.dll например то LoadLibraryA завершается без ошибок!!

1668016458873.png


Вызов LoadLibraryA с закоментированным вызовом MessageBoxA в конце файла результат ниже

1668016582253.png


Ошибка
Теперь в этой же программе убираю комментарий с вызова MessageBoxA в конце файла-

1668016696563.png


И что же я вижу в отладчике


Безымянный.png


Функция вызвалась успешно, как так я не понимаю, кто знает что происходит и как справить прошу отпишите.
Если вам нужен исходный код или исполняемые файлы то вот: https://dropmefiles.com/6TiiF
Файл sample1.exe это файл без вызова MessageBoxA, source1 - его исходный код.
Файл sample2.exe это файл с вызовом MessageBoxA, ну и source2 его исходный код.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пишу программу ну ассемблере, при вызове LoadLibraryA("winhttp.dll") происходит ошибка, НО!, что очень интересно, если в файле есть секция импорта и где угодно есть вызов функции из User32.dll например то LoadLibraryA завершается без ошибок!!

Посмотреть вложение 45560

Вызов LoadLibraryA с закоментированным вызовом MessageBoxA в конце файла результат ниже

Посмотреть вложение 45561

Ошибка
Теперь в этой же программе убираю комментарий с вызова MessageBoxA в конце файла-

Посмотреть вложение 45562

И что же я вижу в отладчике


Посмотреть вложение 45563

Функция вызвалась успешно, как так я не понимаю, кто знает что происходит и как справить прошу отпишите.
Если вам нужен исходный код или исполняемые файлы то вот: https://dropmefiles.com/6TiiF
Файл sample1.exe это файл без вызова MessageBoxA, source1 - его исходный код.
Файл sample2.exe это файл с вызовом MessageBoxA, ну и source2 его исходный код.
Пиши в ЛС qtox,telegram помогу.
 
Если уж используешь FASM и тем более 64 бита, почитай статейки про программирование в этом режиме и силу макросов FASM.
Пробовал конечно через invoke вызывать, все равно не получается, что странно до вызова LoadLibrary, вызывались GetProcAddress, VirtualAlloc, GetTickCount без проблем. Я так понимаю у меня какие-то проблемы со стеком, x64 dbg выдает stack buffer overrun. Тот же самый код под x32 работает без проблем
 
Последнее редактирование:
Ошибку исправил. Причиной было то что я в качестве буффера использовал PROCESS HEAP, все функции вызывались нормально, но LoadLibrary - нет.
 
Решение


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх