Вопрос EXCEPTION_ACCESS_VIOLATION x32 Syscalls

sg
Участник
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
507
Реакции
315
Добрый день посидельцы форума югеймточкабиз. Возникла у меня проблема, при вызове функции NtClose с помощью cysycall'а вылетает исключение EXCEPTION_ACCESS_VIOLATION при инжекте. Компилятор: CLang 15.0. В чем может быть проблема ?
C++:
Expand Collapse Copy
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 );
 
Пообещай никогда больше не юзать clang и всё это современное говно, да оно "круто" работает но мозгоёбка там конкретная, лучше будь норм пацаном и сделай по старинке.

epWw2eU.png


Будет работать на любой платформе, подчеркну на любой! а syscall откажет если выкатят обнову винды и сиди копайся потом. вмпротектом накроешь и конфетка будет.
 
Пообещай никогда больше не юзать clang и всё это современное говно, да оно "круто" работает но мозгоёбка там конкретная, лучше будь норм пацаном и сделай по старинке.

epWw2eU.png


Будет работать на любой платформе, подчеркну на любой! а syscall откажет если выкатят обнову винды и сиди копайся потом. вмпротектом накроешь и конфетка будет.
Проект делается без использования CRT и с использованием сисколов, поднять планку опыта так сказать. Про то что я могу гетнуть функцию через GetProcAdress ( или его имплементацию ) я и без того знаю. Так же сделать парсер номеров для сискола из ntdll не составит труда, так что обнова винды - не так страшна.
 
Пообещай никогда больше не юзать clang и всё это современное говно, да оно "круто" работает но мозгоёбка там конкретная, лучше будь норм пацаном и сделай по старинке.

epWw2eU.png


Будет работать на любой платформе, подчеркну на любой! а syscall откажет если выкатят обнову винды и сиди копайся потом. вмпротектом накроешь и конфетка будет.

Ебанутся, тип задал вопрос про сисколлы, а ты ему хуйню с 3 класса )
Добрый день посидельцы форума югеймточкабиз. Возникла у меня проблема, при вызове функции NtClose с помощью cysycall'а вылетает исключение EXCEPTION_ACCESS_VIOLATION при инжекте. Компилятор: CLang 15.0. В чем может быть проблема ?
C++:
Expand Collapse Copy
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
 
Последнее редактирование:
Пообещай никогда больше не юзать clang и всё это современное говно, да оно "круто" работает но мозгоёбка там конкретная, лучше будь норм пацаном и сделай по старинке.
Зачем ты оправдываешь свою зону комфорта и нежелание развиваться.
 
Зачем ты оправдываешь свою зону комфорта и нежелание развиваться.
Боже, ну давай давай, сколько людей столько и мнений, можно сьесть лангуста, а можно дошика заварить, а можно вообще придумать капсулу где все микроэлементы будут, и так и так ты насытишся, чо выбереш


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


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

Мужик ты скинул репозиторий с х64 сисколами :FeelsBadMan:
Боже, ну давай давай, сколько людей столько и мнений, можно сьесть лангуста, а можно дошика заварить, а можно вообще придумать капсулу где все микроэлементы будут, и так и так ты насытишся, чо выбереш


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

Не знаю ни одного чела у которого есть возможность питаться вкусно и дорого, и он выберет дошик , звучит как оправдание типо "Бля это у меня не бабок нет , это мне просто дошик нравится больше всего на свете"
 
Мужик ты скинул репозиторий с х64 сисколами :FeelsBadMan:


Не знаю ни одного чела у которого есть возможность питаться вкусно и дорого, и он выберет дошик , звучит как оправдание типо "Бля это у меня не бабок нет , это мне просто дошик нравится больше всего на свете"
Ну тут с тобой согласен, я утрировал конечно, но ты прав, у кого варит мозг можно на асме свою винду написать чо уж там
 
а почему ты не используешь инструкцию syscall? почему ты толкаешь значение в %%eax, а не в %eax?
 
почему ты толкаешь значение в %%eax, а не в %eax?
Таков прикол у asm volatile, иначе неправильно значение в регистр вроде помещалось, потому сделано так. Ну и про инструкцию syscall тебе ответили уже выше.
 
Назад
Сверху Снизу