Вопрос EXCEPTION_ACCESS_VIOLATION x32 Syscalls

Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
Добрый день посидельцы форума югеймточкабиз. Возникла у меня проблема, при вызове функции NtClose с помощью cysycall'а вылетает исключение EXCEPTION_ACCESS_VIOLATION при инжекте. Компилятор: CLang 15.0. В чем может быть проблема ?
C++:
unsigned long __attribute__((__stdcall__) Thread( [[maybe_unused]]] void *pVoid ) {
    MessageBoxA( nullptr, "???", "???", 0 );
    return 0;
}
 
NTSTATUS __attribute__((naked)) Close( [[maybe_unused]]] void *pVoid ) {
    asm volatile (
            "movl $0x3000F, %%eax;"
            "call *%%FS:0xC0;"
            "retn $0x4;"
            :
            :
            : "%eax"
            );
}
 
...
 
if ( const auto pThread = CreateThread( nullptr, 0, &Thread, m_pDllHandle, 0, nullptr ); pThread )
            Close( pThread );
 
anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пообещай никогда больше не юзать clang и всё это современное говно, да оно "круто" работает но мозгоёбка там конкретная, лучше будь норм пацаном и сделай по старинке.



Будет работать на любой платформе, подчеркну на любой! а syscall откажет если выкатят обнову винды и сиди копайся потом. вмпротектом накроешь и конфетка будет.
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
Пообещай никогда больше не юзать clang и всё это современное говно, да оно "круто" работает но мозгоёбка там конкретная, лучше будь норм пацаном и сделай по старинке.



Будет работать на любой платформе, подчеркну на любой! а syscall откажет если выкатят обнову винды и сиди копайся потом. вмпротектом накроешь и конфетка будет.
Проект делается без использования CRT и с использованием сисколов, поднять планку опыта так сказать. Про то что я могу гетнуть функцию через GetProcAdress ( или его имплементацию ) я и без того знаю. Так же сделать парсер номеров для сискола из ntdll не составит труда, так что обнова винды - не так страшна.
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
Пообещай никогда больше не юзать clang и всё это современное говно, да оно "круто" работает но мозгоёбка там конкретная, лучше будь норм пацаном и сделай по старинке.



Будет работать на любой платформе, подчеркну на любой! а syscall откажет если выкатят обнову винды и сиди копайся потом. вмпротектом накроешь и конфетка будет.
Ебанутся, тип задал вопрос про сисколлы, а ты ему хуйню с 3 класса )
Добрый день посидельцы форума югеймточкабиз. Возникла у меня проблема, при вызове функции NtClose с помощью cysycall'а вылетает исключение EXCEPTION_ACCESS_VIOLATION при инжекте. Компилятор: CLang 15.0. В чем может быть проблема ?
C++:
unsigned long __attribute__((__stdcall__) Thread( [[maybe_unused]]] void *pVoid ) {
    MessageBoxA( nullptr, "???", "???", 0 );
    return 0;
}

NTSTATUS __attribute__((naked)) Close( [[maybe_unused]]] void *pVoid ) {
    asm volatile (
            "movl $0x3000F, %%eax;"
            "call *%%FS:0xC0;"
            "retn $0x4;"
            :
            :
            : "%eax"
            );
}

...

if ( const auto pThread = CreateThread( nullptr, 0, &Thread, m_pDllHandle, 0, nullptr ); pThread )
            Close( pThread );
Лучше прыгать в х64 среду выполнять вызов сисколла обычным способом и возвращаться в х86 , можешь погуглить heaven's gate
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
12 Ноя 2022
Сообщения
63
Реакции[?]
23
Поинты[?]
3K
Пообещай никогда больше не юзать clang и всё это современное говно, да оно "круто" работает но мозгоёбка там конкретная, лучше будь норм пацаном и сделай по старинке.
Зачем ты оправдываешь свою зону комфорта и нежелание развиваться.
 
anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Зачем ты оправдываешь свою зону комфорта и нежелание развиваться.
Боже, ну давай давай, сколько людей столько и мнений, можно сьесть лангуста, а можно дошика заварить, а можно вообще придумать капсулу где все микроэлементы будут, и так и так ты насытишся, чо выбереш


edit:
Ладно, я понял, если ты хочешь жостко порвать сраку, пожалуйста
Пожалуйста, авторизуйтесь для просмотра ссылки.
т.к скорее всего у тебя неправильные параметры ntclose
Код:
   asm volatile (
            "movl $0x3000F, %%eax;"
            "call *%%FS:0xC0;"
            "retn $0x4;"
            :
            :
            : "%eax"
            );
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
Боже, ну давай давай, сколько людей столько и мнений, можно сьесть лангуста, а можно дошика заварить, а можно вообще придумать капсулу где все микроэлементы будут, и так и так ты насытишся, чо выбереш


edit:
Ладно, я понял, если ты хочешь жостко порвать сраку, пожалуйста
Пожалуйста, авторизуйтесь для просмотра ссылки.
т.к скорее всего у тебя неправильные параметры ntclose
Код:
   asm volatile (
            "movl $0x3000F, %%eax;"
            "call *%%FS:0xC0;"
            "retn $0x4;"
            :
            :
            : "%eax"
            );
Мужик ты скинул репозиторий с х64 сисколами :FeelsBadMan:
Боже, ну давай давай, сколько людей столько и мнений, можно сьесть лангуста, а можно дошика заварить, а можно вообще придумать капсулу где все микроэлементы будут, и так и так ты насытишся, чо выбереш


edit:
Ладно, я понял, если ты хочешь жостко порвать сраку, пожалуйста
Пожалуйста, авторизуйтесь для просмотра ссылки.
т.к скорее всего у тебя неправильные параметры ntclose
Код:
   asm volatile (
            "movl $0x3000F, %%eax;"
            "call *%%FS:0xC0;"
            "retn $0x4;"
            :
            :
            : "%eax"
            );
Не знаю ни одного чела у которого есть возможность питаться вкусно и дорого, и он выберет дошик , звучит как оправдание типо "Бля это у меня не бабок нет , это мне просто дошик нравится больше всего на свете"
 
anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Мужик ты скинул репозиторий с х64 сисколами :FeelsBadMan:


Не знаю ни одного чела у которого есть возможность питаться вкусно и дорого, и он выберет дошик , звучит как оправдание типо "Бля это у меня не бабок нет , это мне просто дошик нравится больше всего на свете"
Ну тут с тобой согласен, я утрировал конечно, но ты прав, у кого варит мозг можно на асме свою винду написать чо уж там
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,596
Реакции[?]
605
Поинты[?]
46K
а почему ты не используешь инструкцию syscall? почему ты толкаешь значение в %%eax, а не в %eax?
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
почему ты толкаешь значение в %%eax, а не в %eax?
Таков прикол у asm volatile, иначе неправильно значение в регистр вроде помещалось, потому сделано так. Ну и про инструкцию syscall тебе ответили уже выше.
 
Сверху Снизу