ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [C++] Обходим Анти-стиллер by DarkP1xel v5.1.0 (https://forum.antichat.xyz/showthread.php?t=1330688)

ЯedЯuM 22.02.2019 12:59

Опустим пояснения за шмот (что это, зачем и нахуя ты это выложил) и перейдём сразу к делу.

Коротко о том как сейчас работает последняя версия анти-стиллера.

> WIN API хуки на интернет функции и тд. (После обновления их число несколько уменьшилось в целях оптимизации, часть хуков на опасные функции были перенесено в ntdll.dll (NT API)

> NATIVE API хуки (запись в память стороннего процесса, выделение и смена прав памяти в процессах, создание своего процесса, создание удалённых потоков, Windows хуки, переборы списков запущенных процессов а так же поиски окон.

В кратце сейчас анти-стиллер делает всё чтобы не позволить даже такие обходы как инжект дллки в левый процесс а так же создание своего собственного каким либо образом.

Даже попытки получить адрес какой либо интересующей функции NT/WIN API через GetProcAddress либо непосредственно через свой кастомный парсер Export TABLE обречены на провал поскольку анти-стиллер хукает таблицу экспорта в загруженных системных модулях. При попытке достать какой либо адрес на захуканую им функцию вы получите не её реальный адрес а сразу же адрес хука анти-стиллера(Здесь сразу же отсев долбоёбов, весьма умно).

Так же в нём весьма распространено перекрёстное перехвачиванние внутренних функций из реализации какой либо WIN/NT API функции чтобы наверняка не помог даже перепрыг хука.

Его самозащита организована следующим образом - отнимаются права памяти на перехваченную функцию благодаря чему нельзя удалить хук, но как же VirtualProtect? Опять таки не всё так просто, он тоже не имеет в себе прав на запись в память и сам же захукан чтобы им нельзя было менять атрибуты памяти там где не нужно.

Так какие варианты у нас есть?

> Эмуляция прямого системного вызова на Native API функции (Но это чревато проблемами с разными номерами сервисов от версии и даже от её номера текущего билда а так же различной архитектурой на x32-x64 системах)

> Эмуляция пролога системного вызова (первых 5 байт) с последующим переходом в оригинал но на 5 байт дальше (перепрыгивание хука) - разумеется что данный способ лучше за предыдущий но всё равно требует чтения номера сервиса в функциях которые находятся в коде выше/ниже текущего тела функции но в отличии от способа выше нам не нужно эмулировать остальные инструкции, достаточно лишь узнать номер сервиса. Но всё равно такой способ часто конфликтует, по непонятным мне причинам с некоторым перечнем .asi плагинов. Да и на разных ОС - порядок расположения функций может отличатся а некоторых и во все может не быть.

> Manual Mapping дубликатной системной библиотеки, например ntdll.dll но не уверен что она будет корректно работать под хуками анти-стиллера по скольку все её функции имеют тот же RVA что и в оригинале и внутренние функции из реализации экспортированного интерфейса могут вызывать не свои а "оригинальные". Вообщем у меня хватает сомнений касательно этого способа.

> Инжект своей DLL в сторонний процесс (например samp.exe который почти всегда запущен вместе с игрой до конца её сеанса), сама процедура инжекта будет производится посредством Native API.

(NtOpenProcess + NtAllocateVirtualMemory + NtWriteVirtualMemory + NtCreateThreadEx) но опять таки требует другого способа получения ида интересующегося процесса.

Каким путём пойдём мы?

Лично я выбрал последний способ потому что он самый простой и удобный в реализации а главное стабильный на различных версиях ОС. Я решил его несколько модифицировать чтобы у нас была возможность использовать весь тот перечисленный функционал не смотря на хуки анти-стиллера.

Открываем отладчик, зайдём внутрь тела хука и посмотрим что же там происходит и каким образом происходит отсев исключений для разрешенных вызовов.

В качестве примера выступит ZwWriteVirtualMemory

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

Залетаем внутрь тела хука и наблюдаем такую картину, по скольку анти-стиллер позволяет вызывать Nt/ZwWriteVirtualMemory для собственного процесса, ебашим у себя вызов, ставим железный бряк и трассируем, проделав тоже самое с хендлом к левому процессу можно увидеть что решающий момент определяет вот этот условный переход который и является фильтром вызова после которого нас перекидает в место откуда передаются параметры функции и осуществляется переход на трамплин.

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

Но как же нам его пропатчить если в предыдущем месте у нас не было прав на запись?

Переходим к карте памяти и смотрим какие права у нас есть на само тело хука

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

Благодаря тому что автор забыл забирать права на запись внутри самого хука - его можно патчить.

Накидаем простенькую функцию патчущую нужную нам функцию. Но стоит помнить что это нам поможет только в том случае если у функции есть трамплин.

C++:





Код:

void
PatchAS
(
const
char
*
libname
,
const
char
*
funcName
)
{
DWORD JE_Offset
=
(
DWORD
)
GetProcAddress
(
GetModuleHandleA
(
libname
)
,
funcName
)
;
// Поскольку // гетпрокадрес захукан - он вернёт нам сразу же базовый адрес хука который нам и нужен.
while
(
*
(
byte
*
)
JE_Offset
!=
0x74
)
JE_Offset
++
;
// ищем первую встречную JE инструкцию
*
(
byte
*
)
JE_Offset
=
0xEB
;
// патчим её на короткий безусловный прыжок
}



Отлично! Теперь можно пропатчить все необходимые нам NT функции из цепочки необходимой для DLL инжекта. А уже когда наша длл попадёт в сторонний процесс - мы можем с неё творить всё что душе влезит :)

Проблему с поиском ида нужного нам процесса решим следующим образом, анти-стиллер патчит перебор процессов но не патчит перебор потоков внутри структуры которых можно узнать ид процесса к которому он пренадлежит и через OpenProcess + GetModuleInformationEx узнать его имя что даст нам возможность найти нужный ид процесса.

C++:





Код:

DWORD
GetProcID
(
const
char
*
ProcName
)
{
THREADENTRY32 th32
;
HANDLE hSnapshot
=
NULL
;
th32
.
dwSize
=
sizeof
(
THREADENTRY32
)
;
hSnapshot
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPTHREAD
,
0
)
;
if
(
Thread32First
(
hSnapshot
,
&
th32
)
)
{
do
{
if
(
th32
.
th32OwnerProcessID
==
GetCurrentProcessId
(
)
)
continue
;
HANDLE hProc
=
OpenProcess
(
PROCESS_ALL_ACCESS
,
FALSE
,
th32
.
th32OwnerProcessID
)
;
if
(
!
hProc
)
continue
;
if
(
!
strcmp
(
GetProcName
(
hProc
)
.
c_str
(
)
,
ProcName
)
)
{
CloseHandle
(
hProc
)
;
CloseHandle
(
hSnapshot
)
;
return
th32
.
th32OwnerProcessID
;
}
else
CloseHandle
(
hProc
)
;
}
while
(
Thread32Next
(
hSnapshot
,
&
th32
)
)
;
}
if
(
hSnapshot
!=
INVALID_HANDLE_VALUE
)
CloseHandle
(
hSnapshot
)
;
return
-
1
;
}



Гайд by ЯedЯuM специально для портала blast.hk

Help_Admins 22.02.2019 13:03

охх щас обновы стилеров пойдут

ЯedЯuM 22.02.2019 13:06

Цитата:

Сообщение от Help_Admins

охх щас обновы стилеров пойдут

Таир быстро обнову выпустит, такая статья ему только поможет улучшить защиту.

Help_Admins 22.02.2019 13:08

Цитата:

Сообщение от ЯedЯuM

Таир быстро обнову выпустит, такая статья ему только поможет улучшить защиту.

эхх ну зря тогда силил

ЯedЯuM 22.02.2019 13:09

Цитата:

Сообщение от Help_Admins

эхх ну зря тогда силил

Для этого и старался, чем хардкорнее будет ебашить обходы - тем меньше стиллермэнов.

Ded Perded 22.02.2019 13:32

Спасибо тебе, помогаешь остаться на рынке одному)

sаnеk 22.02.2019 13:37

Цитата:

Сообщение от ЯedЯuM

Таир быстро обнову выпустит, такая статья ему только поможет улучшить защиту.

лучше в лс тогда кинуть

ЯedЯuM 22.02.2019 13:39

Цитата:

Сообщение от sanєk

лучше в лс тогда кинуть

Так у него будет больше мотивации +Пипл донатом захочет поддержать разработку увидев что зло не дремлет.

palenkov 22.02.2019 14:02

Цитата:

Сообщение от ЯedЯuM

Для этого и старался, чем хардкорнее будет ебашить обходы - тем меньше стиллермэнов.

так и не реализовал в своем крипторе обход)0)00)0

ЯedЯuM 22.02.2019 14:03

Цитата:

Сообщение от justpl

так и не реализовал в своем крипторе обход)0)00)0

Криптор 3 года как заброшен, о чём сейчас речь.

anti.steller 22.02.2019 14:42

Опкодер, на путь исправления встал, или что?

ЯedЯuM 22.02.2019 14:49

Цитата:

Сообщение от anti.steller

Опкодер, на путь исправления встал, или что?

Не буду лгать, у меня свой мотив но он не идёт в разрез разработчику анти-стиллера, в какой то степени ему это тоже выгодно - лишний повод людям задонатить на обновления.

#Northn 22.02.2019 19:10

Лучший обход антистиллера — загрузиться раньше него и удалить его самого

:-|

ЯedЯuM 22.02.2019 19:15

Цитата:

Сообщение от #Northn

Лучший обход антистиллера — загрузиться раньше него и удалить его самого
:-|

Интересно как же ты впаришь на аудиторию файл с нужным именем так чтобы его ещё не переименовали после скачивания.

#Northn 22.02.2019 19:17

Цитата:

Сообщение от ЯedЯuM

Интересно как же ты впаришь на аудиторию файл с нужным именем так чтобы его ещё не переименовали после скачивания.

Запретить переименовывание)))

ЯedЯuM 22.02.2019 19:23

Цитата:

Сообщение от #Northn

Запретить переименовывание)))

Ты ещё принудительно запрашивай через манифест админ права... тоже самое по смыслу. Такую хуету сразу снесут, тем более те кто знает как использовать антистиллер а рядовые самперы и во все не поймут что от них хотят и почему не пашет а просто снесут твоё говно.

Rose_Winchester 23.02.2019 00:17

Месяц назад скачал один скрипт сф, после захода сампа открылась кмд, но её блокнул антивирус.

Через 5 минут появляется на весь экран рикардо милос :beach:

Годный стиллер был, кек)

FYP 23.02.2019 01:00

мне кажется довольно сомнительной затея выкладывать обходы антистиллера в публичный доступ один за другим с целью помочь разработчику в улучшении защиты, ты в ощутимо большей степени помогаешь разработчикам стиллеров, нежели улучшению защиты. антистиллер не обовляется автоматически и не имеет оповещений о доступных обновлениях, а значит пользователи становятся уязвимыми после очередного обхода, если доверяют антистиллеру. вдобавок, тех разработчиков стиллеров, которые полезут в такие дебри ради обхода, можно пересчитать по пальцам, а сколько же из них смогут его реализовать? а ты просто даёшь им готовое - бери и юзай.

публикуя эту инфу, ты заставляешь пикселя в спешке исправлять очередной обход и выкладывать обновление, пока информация по обходу не успела получить широкое распространение, а затем сделаешь и выложить новый обход (и т.к. 100% защита невозможна, можешь делать это пока не надоест) - это больше похоже на издевательство.

в общем, если твоей целью действительно является помощь в улучшении защиты, хочу сказать, что обыкновенное сотрудничество было бы более продуктивным и не приводило бы к утрате доверия к антистиллеру.

а статья поучительная и хорошо написана. было бы замечательно видеть на форуме таких обучающих материалов побольше (но не по обходам антистиллера, конечно же).

ЯedЯuM 23.02.2019 01:48

Цитата:

Сообщение от FYP

мне кажется довольно сомнительной затея выкладывать обходы антистиллера в публичный доступ один за другим с целью помочь разработчику в улучшении защиты, ты в ощутимо большей степени помогаешь разработчикам стиллеров, нежели улучшению защиты. антистиллер не обовляется автоматически и не имеет оповещений о доступных обновлениях, а значит пользователи становятся уязвимыми после очередного обхода, если доверяют антистиллеру. вдобавок, тех разработчиков стиллеров, которые полезут в такие дебри ради обхода, можно пересчитать по пальцам, а сколько же из них смогут его реализовать? а ты просто даёшь им готовое - бери и юзай.
публикуя эту инфу, ты заставляешь пикселя в спешке исправлять очередной обход и выкладывать обновление, пока информация по обходу не успела получить широкое распространение, а затем сделаешь и выложить новый обход (и т.к. 100% защита невозможна, можешь делать это пока не надоест) - это больше похоже на издевательство.
в общем, если твоей целью действительно является помощь в улучшении защиты, хочу сказать, что обыкновенное сотрудничество было бы более продуктивным и не приводило бы к утрате доверия к антистиллеру.

а статья поучительная и хорошо написана. было бы замечательно видеть на форуме таких обучающих материалов побольше (но не по обходам антистиллера, конечно же).

Я тебя понимаю, но что насчёт дополнительной мотивации помочь разработчику с донатом? Когда люди увидят множество опасных уязвимостей они потребуют скорого обновления и они будут знать за что и ради чего его требовать, значит не только один san3k поможет Таиру а возможно определенная группа людей профинансирует разработку, если честно я вообще не понимаю зачем он это делает за спасибо, работы слишком много. Люди совсем не благодарные. Говоря открыто как минимум 2 из описаных мной обхода в теме давным давно известны Таиру ещё за долго до публикации темы, я лишь дополнил тему более новыми и простыми способами чтобы мотивировать пользователей профинансировать разработку такой полезной вещи. Ведь чтобы что-то поддерживать - им нужно видеть ради чего это делать.

Bobr52x 23.02.2019 01:48

Я за все прибывание время в сампе - ни разу не использовал АнтиСтиллер,всем доверял :buba:

Losososo 24.02.2019 12:12

Цитата:

Сообщение от ЯedЯuM

Я тебя понимаю, но что насчёт дополнительной мотивации помочь разработчику с донатом? Когда люди увидят множество опасных уязвимостей они потребуют скорого обновления и они будут знать за что и ради чего его требовать, значит не только один san3k поможет Таиру а возможно определенная группа людей профинансирует разработку, если честно я вообще не понимаю зачем он это делает за спасибо, работы слишком много. Люди совсем не благодарные. Говоря открыто как минимум 2 из описаных мной обхода в теме давным давно известны Таиру ещё за долго до публикации темы, я лишь дополнил тему более новыми и простыми способами чтобы мотивировать пользователей профинансировать разработку такой полезной вещи. Ведь чтобы что-то поддерживать - им нужно видеть ради чего это делать.

такое ощущение, что ты не знаешь менталитет русского комьюнити. Они скорее скажут «пошли на***, я не поддержу кодера АС», чем пойдут и кинут копеечку, тем самым поддержав Пикселя. Поэтому глупо искать обходы и публиковать их ради поддержки кодера АС и быстрого фикса.

Bobr52x 24.02.2019 12:49

Цитата:

Сообщение от LameShark

такое ощущение, что ты не знаешь менталитет русского комьюнити. Они скорее скажут «пошли на***, я не поддержу кодера АС», чем пойдут и кинут копеечку, тем самым поддержав Пикселя. Поэтому глупо искать обходы и публиковать их ради поддержки кодера АС и быстрого фикса.

Нормальное коммунити,чо врешь :( :sad_frog:

Losososo 24.02.2019 17:04

Цитата:

Сообщение от Bobr52x

Нормальное коммунити,чо врешь :( :sad_frog:

Хотелось бы, врать.


Время: 03:27