LoadLibraryA detecter v2

В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Проверка на вызов LoadLibraryA
вашим инжектором.



Обновлённая версия данного софта.
Инструкция:
Запускаем "test.exe"
Инжектим в него dll.

Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.

 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
Не очень. Ты не то хукаешь. Если хочешь чтоб палило LoadLibrary то надо хукать LdrLoadDll в ntdll.dll Так как LoadLibraryA и LoadLibraryW Все они обращаются к этой функции для дальнейшей загрузки библиотеки. Так же и античиты все палят LdrLoadDll а не LoadLibraryA. То что смысла нет следить за LoadLibraryA когда можно инжектить сразу через LdrLoadDll. Короче замути хук здесь LdrLoadDll и будет более интерестней.

А так если хочешь замутить норм прогу для детекта инжекта просто хукай создание потока. И потом проверяй адресс функции которую запускает поток и сравнивай адресса проги от начала до конца и если поток создан в другом региене адрессного пространства то блокируй. Тем самым можно еще палить Инжект Мапингом
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Не очень. Ты не то хукаешь. Если хочешь чтоб палило LoadLibrary то надо хукать LdrLoadDll в ntdll.dll Так как LoadLibraryA и LoadLibraryW Все они обращаются к этой функции для дальнейшей загрузки библиотеки. Так же и античиты все палят LdrLoadDll а не LoadLibraryA. То что смысла нет следить за LoadLibraryA когда можно инжектить сразу через LdrLoadDll. Короче замути хук здесь LdrLoadDll и будет более интерестней.

А так если хочешь замутить норм прогу для детекта инжекта просто хукай создание потока. И потом проверяй адресс функции которую запускает поток и сравнивай адресса проги от начала до конца и если поток создан в другом региене адрессного пространства то блокируй. Тем самым можно еще палить Инжект Мапингом
Я всё это прекрасно знаю. С хуком ntdll функции не интересно, а вот с потоками щас буду делать
 
Последнее редактирование:
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
давай замутишь зацениш протестим)
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
Я уже написал охуенный листенер тредов. Осталось понять когда поток действительно дллшный.
ну тут должно сработать через хук например на NtResumeThread или RtlUserThreadStart тут лучше помойму. В хуке уже можно получить контекст потока и посмотреть адресс функции. Потом этот адресс сравнить со всеми модулями которые допустимы. например Адресс потока и сравнивать от базого адресса стандартного модуля + размер модуля и так по порядку все разрешеные модули если не один не совпал значить поток запущен из запрещеного модуля))
Капец тут целый античит получается)) Кстати даже лучше чем Вак Фрост и таму подобные))
 
Либо такой вариант! Листаешь просто все потоки и сравниваешь адресс потока со модулями)) Так короче код получится_)
Но первый вариант лучше тем что можно блокировать поток еще до старта чита тоесть сложней уже будет сделать обход) Точно анти чит)))
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну тут должно сработать через хук например на NtResumeThread или RtlUserThreadStart тут лучше помойму. В хуке уже можно получить контекст потока и посмотреть адресс функции. Потом этот адресс сравнить со всеми модулями которые допустимы. например Адресс потока и сравнивать от базого адресса стандартного модуля + размер модуля и так по порядку все разрешеные модули если не один не совпал значить поток запущен из запрещеного модуля))
Капец тут целый античит получается)) Кстати даже лучше чем Вак Фрост и таму подобные))
 
Либо такой вариант! Листаешь просто все потоки и сравниваешь адресс потока со модулями)) Так короче код получится_)
Но первый вариант лучше тем что можно блокировать поток еще до старта чита тоесть сложней уже будет сделать обход) Точно анти чит)))
У меня именно листенер ивентов. Там есть событие THREAD_CREATED: , оно выполняется при создание нового потока. Так-же сам листенер получает dwThreadId, т.е. TID нам нужно использовать для работы
 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
Кстати вроде ты шаришь есть предложение насчет читов для объединения. На данный момент есть приват на ПБ. Можно остальные игры. Но у меня времени мало а в двоечка можно быстрей и больше замутить. Если интерестно тебе напиши в личку.
 
Эксперт
Статус
Оффлайн
Регистрация
12 Июн 2014
Сообщения
991
Реакции[?]
1,209
Поинты[?]
3K
Капец тут целый античит получается)) Кстати даже лучше чем Вак Фрост и таму подобные))
ну да ,конечно)))
простого определения потока мало. потоки можно "сдвинуть" относительно нужной секции. +можно врезаться в контекст уже выполняющегося потока и там крутить своими функциями... но как защита от дурочка пойдет)
 
Участник
Статус
Оффлайн
Регистрация
22 Фев 2017
Сообщения
968
Реакции[?]
357
Поинты[?]
0
ну да ,конечно)))
простого определения потока мало. потоки можно "сдвинуть" относительно нужной секции. +можно врезаться в контекст уже выполняющегося потока и там крутить своими функциями... но как защита от дурочка пойдет)
Если не ошибаюсь можно тред сместить "трамплином"
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну да ,конечно)))
простого определения потока мало. потоки можно "сдвинуть" относительно нужной секции. +можно врезаться в контекст уже выполняющегося потока и там крутить своими функциями... но как защита от дурочка пойдет)
Это всё конечно здорово. Но мы забыли, что это просто программка палящая инжект)
 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
ну да ,конечно)))
простого определения потока мало. потоки можно "сдвинуть" относительно нужной секции. +можно врезаться в контекст уже выполняющегося потока и там крутить своими функциями... но как защита от дурочка пойдет)
Не ну если ты поменяешь адресс поток тупо слетит на другой адресс и не выполнит нужный код. Мож я не правильно объяснил

Серег вот типо такого. Разве можно поменять адресс выполнения?
Код:
CONTEXT cont;
HANDLE th = CreateThread(0,0,(LPTHREAD_START_ROUTINE)tteess,0,0,0);
GetThreadContext(th,&cont);
DWORD AdressFunc = cont.Eip;
 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
Ну а так да если перехатишь основной поток то хук и не сработает тут уже нужно по другому. А так эта прога для скана чита палится в процессе нет это не нужно так как после инжекта восстановится поток. Ну а с другой стороны ну перехватил ты поток инжект возобновил старый и снова пошел скан и тут может попасть поток чита, даже если просто хук той же сцены будет, подвернется момент когда будет выполняться хук и поток перейдет на адресс чита
 
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,580
Реакции[?]
1,963
Поинты[?]
134K
Вы не надейтесь что если вы сделаете такой ач все будут пытаться сделать под него инжект))) проще сломать эту хрень либо ебнуть драйвер. Короч если улучшить оч сильно то может и можно попробовать в роли ач.
 
Пользователь
Статус
Оффлайн
Регистрация
15 Июн 2017
Сообщения
81
Реакции[?]
46
Поинты[?]
0
Разве можно поменять адресс выполнения?
Код:
CONTEXT cont;
HANDLE th = CreateThread(0,0,(LPTHREAD_START_ROUTINE)tteess,0,0,0);
GetThreadContext(th,&cont);
DWORD AdressFunc = cont.Eip;
Можно так делать ( если я правильно тебя понял ты хочешь пропатчить поток c помощью getthreatctx\setthreadctx ) , но советую создавать замороженный поток , выполнить над ним действия , а по окончанию разморозить . Также еах хранится стартовый адрес потока (при создании) , можешь его тоже изменить и посмотреть результат . Но это все плацебо и по сути не особо поможет при защите
 
Забаненный
Статус
Оффлайн
Регистрация
12 Май 2017
Сообщения
375
Реакции[?]
11
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Проверка на вызов LoadLibraryA
вашим инжектором.



Обновлённая версия данного софта.
Инструкция:
Запускаем "test.exe"
Инжектим в него dll.

Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.

Можно исходник?
 
Сверху Снизу