C++ Гайд Защита для вашего лоадера. Антидебаг без анти дебага или как на руси защиту придумывали

#define VOID void
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2017
Сообщения
120
Реакции[?]
24
Поинты[?]
13K
Можете пример создание потока с 0x40 скинуть?Не нашел у майков про это
C++:
HANDLE empty;
NtCreateThreadEx(&empty, MAXIMUM_ALLOWED, nullptr, GetCurrentProcess(),
    anti_debug_thread, nullptr, 0x40, 0, 0, 0, nullptr);
THREAD_CREATE_FLAGS_BYPASS_PROCESS_FREEZE (0x40) не работает в CreateThread
 
Ты че баклан, дефективный?
Пользователь
Статус
Оффлайн
Регистрация
18 Мар 2019
Сообщения
746
Реакции[?]
62
Поинты[?]
0
C++:
HANDLE empty;
NtCreateThreadEx(&empty, MAXIMUM_ALLOWED, nullptr, GetCurrentProcess(),
    anti_debug_thread, nullptr, 0x40, 0, 0, 0, nullptr);
THREAD_CREATE_FLAGS_BYPASS_PROCESS_FREEZE (0x40) не работает в CreateThread
Я как понял ниже 10 версии win работать не будет
 
Начинающий
Статус
Оффлайн
Регистрация
7 Мар 2019
Сообщения
16
Реакции[?]
14
Поинты[?]
0
Так зачем делать это в главном потоке если смысл дать потоку флаг 0х40 и защитить те потоки которые нужны?
в примере акцент на задержки и указание на ошибку. если ты делаешь гайд, будь добр пиши код без таких серьезных ошибок: бесконечный цикл в потоке без задержки, отсутствие информации по работоспособности флага(где и как работает).

а вот по поводу остального:
эта штука, с флагом работает только на функцию NtSuspendProcess:
C++:
NTSTATUS PsSuspendProcess(_EPROCESS* Process)
{
  const auto currentThread = KeGetCurrentThread();
  KeEnterCriticalRegionThread(currentThread);

  NTSTATUS status = STATUS_SUCCESS;
  if ( ExAcquireRundownProtection(&Process->RundownProtect) )
  {
    auto targetThread = PsGetNextProcessThread(Process, nullptr);
    while ( targetThread )
    {
      // Our flag in action
      if ( !targetThread->Tcb.MiscFlags.BypassProcessFreeze )
        PsSuspendThread(targetThread, nullptr);

      targetThread = PsGetNextProcessThread(Process, targetThread);
    }
    ExReleaseRundownProtection(&Process->RundownProtect);
  }
  else
    status = STATUS_PROCESS_IS_TERMINATING;

  if ( Process->Flags3.EnableThreadSuspendResumeLogging )
    EtwTiLogSuspendResumeProcess(status, Process, Process, 0);

  KeLeaveCriticalRegionThread(currentThread);
  return status;
}
Нет, нет и нет. Если скорость позволяет то все будет работать при проверке в самом потоке.
Проверка в самом потоке не работает , если ты будешь проверять это без задержки, что-то может промелькнуть, но тогда у тебя нагрузка на ЦП будет очень большая(привел пример нагрузки в предыдущем посте). при заморозке и разморозке потока, он сам не поймет, что был заморожен, единственный вариант чекать из другого потока.
 
Олдфаг
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
2,992
Реакции[?]
1,274
Поинты[?]
19K
Начинающий
Статус
Оффлайн
Регистрация
7 Мар 2019
Сообщения
16
Реакции[?]
14
Поинты[?]
0
У ТЕБЯ НАГРУЗКА НА CPU 33%, В САМОМ ПОТОКЕ 16%.ТЫ У СЕБЯ В ВИДЕО ПОКАЗЫВАЕШЬ ПРИМЕР БЕЗ SLEEP.
я о чем уже второй раз пишу? читаешь вообще?
Sleep(1) поставь, тогда ловить не будет, либо поймает с результатом 1 на 1000, но кому нужен этот рандом?
 
Олдфаг
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
2,992
Реакции[?]
1,274
Поинты[?]
19K
У ТЕБЯ НАГРУЗКА НА CPU 33%, В САМОМ ПОТОКЕ 16%.ТЫ У СЕБЯ В ВИДЕО ПОКАЗЫВАЕШЬ ПРИМЕР БЕЗ SLEEP.
я о чем уже второй раз пишу? читаешь вообще?
Sleep(1) поставь, тогда ловить не будет, либо поймает с результатом 1 на 1000, но кому нужен этот рандом?
xD
Ты видео вообще слушал? Я сказал делайте в отдельных потоках тоже и там ясно видно закомментированный слип, кому ты что доказыаешь(
 
IRQL_APC_LEVEL
Пользователь
Статус
Оффлайн
Регистрация
25 Авг 2018
Сообщения
211
Реакции[?]
88
Поинты[?]
3K
Мда, друг, ты чего зеродеи сливаешь?)

А теперь серьезно:
1) Тайминговые проверки - это, в буквальном смысле, прошлый век, но техника, конечно, действенная и имеет место быть.
2) Пример с ResumeThread - эт прост бред сумасшедшего, не думаю, что требуются какие-то объяснения.
*Для полноты картины не хватает какого-нить IsDebuggerPresent и CheckRemoteDebuggerPresent*

Мне не понятно только одно, а в чем смысл этой темы, если все - это можно найти по первому же запросу в гугле?
 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
От такой защиты толку нет) Если только от тех кто вообще не сооброжает).
Варианты обхода по этому коду
1. Убить поток
2. Пропатчить функцию потока
3. Пропатчить функцию закрытия процесса
и тд. Это самые простые варианты)
Лучший метод просто шифровать нормально чтоб при дампе или дебаги не разобрать было

Если ты накроешь прогу протектором там намного лучше будет антидебаг что твой код не какой роли не сыграет
 
Олдфаг
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
2,992
Реакции[?]
1,274
Поинты[?]
19K
И в сумме такой код в вашем потоке во первых будет критовать при заморозке его самого так еще и при заморозке другого потока
в видео также сказано что такую проверку можно добавлять и в другие потоки получая их хендлы
2. Пропатчить функцию потока
3. Пропатчить функцию закрытия процесса
P.s это только пример, пожалуйста, учтите что это легко патчится.
Дисклеймер. Не стоит сильно воспринимать всерьез сказанное в этой теме. Просто делюсь тем что смог случайно наверное реализовать
Лучший метод просто шифровать нормально чтоб при дампе или дебаги не разобрать было

Если ты накроешь прогу протектором там намного лучше будет антидебаг что твой код не какой роли не сыграет
ну а после этих слов я впринципе перестану воспринимать твое мнение
 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
Зачем тогда тему создал если сам понимаешь что это фигня все?
 
Escalation Project
Забаненный
Статус
Оффлайн
Регистрация
9 Май 2019
Сообщения
275
Реакции[?]
74
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Можно также использовать эту тему ->
Пожалуйста, авторизуйтесь для просмотра ссылки.

Как в свои добрые годы делал меддог, прятал лоадер в блокнот.
 
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,379
Реакции[?]
650
Поинты[?]
10K
Я как-бы все понимаю.
Но зачем это?
Что трудного поставить проверку лицензии на сервере,php скрипте?
И что останется после проверки на сервере?
Простое скачивание длл, на диск или в память апдейтора.
А что мешает ее на сервере зашифровать, а при инжекте разшифровать.
Как минимум то, что ты ее в конечном итоге расшифруешь на клиенте, и на этом моменте автоматический пойдешь нахуй со своей серверной криптой
 
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как минимум то, что ты ее в конечном итоге расшифруешь на клиенте, и на этом моменте автоматический пойдешь нахуй со своей серверной криптой
Как и в любом другом случае, в клиенте будет конечная длл.
 
Забаненный
Статус
Оффлайн
Регистрация
22 Апр 2020
Сообщения
731
Реакции[?]
752
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как и в любом другом случае, в клиенте будет конечная длл.
Но длл можно передать таким способом. Что 1 дампом кряк не оформить

ее шифрование это дело юзелесс
 
Забаненный
Статус
Оффлайн
Регистрация
19 Янв 2022
Сообщения
50
Реакции[?]
18
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
✊Rot Front✊
Пользователь
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
131
Реакции[?]
256
Поинты[?]
84K
Ребята,эта тема просто создана для рофлов. Просто успокойтесь и получайте удовольствие :smile:Screenshot_186.png
 
Сверху Снизу