Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284

Анти-инжектор

21.09.2013, 01:32. Показов 5824. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, пишу анти-инжектор, сам инжектор я уже написал, вот сейчас делаю dll, которая будет проверять использует ли процесс функцию VirtualFreeEx, но дело в том что почему-то определяется эта функция, если инжектор инжектиться сам в себя ( Cheat Engine инжектит в Cheat Engine ) эту dll...))) А если в другой инжектить, то почему-то не срабатывает... Возможно Вы найдете ошибку ? Заранее спасибо. Ах да, пишу в VisutalStudio 2012.

Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <windows.h>
#include <stdio.h>
#include "Hook.h"
#include <detours.h>
using namespace std;
 
 
//===================================================
typedef BOOL (WINAPI *_VirtualFreeEx)(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD dwFreeType);
_VirtualFreeEx oVirtualFreeEx;
//===================================================
BOOL WINAPI CVirtualFreeEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD dwFreeType)
{
        char* dll_in = "Log.txt";
char dll_out[255] = {0}; 
GetFullPathNameA(dll_in, MAX_PATH,dll_out, NULL);
 
WCHAR* pWName = NULL;
int len = MultiByteToWideChar( CP_ACP, 0, dll_out, -1, NULL, 0);
pWName = new WCHAR[len+1];
MultiByteToWideChar( CP_ACP, 0, dll_out, -1, pWName, len);
pWName[len] = L'\0';
Log(pWName,"VirtualFreeEx(0x%X,0x%X,%d,0x%X)\n\tИспользуеться инжектор",hProcess,lpAddress,dwSize,dwFreeType);
return oVirtualFreeEx(hProcess,lpAddress,dwSize,dwFreeType);
}
//===================================================
bool WINAPI DllMain(HMODULE hDll, DWORD dwReason, LPVOID lpReserved)
{
DisableThreadLibraryCalls(hDll);
 
if(dwReason == DLL_PROCESS_ATTACH)
{ 
FARPROC Adr_VirtualFreeEx = GetProcAddress(GetModuleHandleA("kernel32.dll"),"VirtualFreeEx");
oVirtualFreeEx = (_VirtualFreeEx)DetourFunction((PBYTE)Adr_VirtualFreeEx,(PBYTE)CVirtualFreeEx);
}
 
return true;
}
Hook.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <io.h>
#include <time.h>
#include <iostream>
#include <fstream>
using namespace std;
#pragma warning(disable:4996)
 
void Log(char *Name_File,char* fmt, ...)
{
char buf[1024] = {0};
va_list va_alist;
ofstream output;
 
va_start(va_alist, fmt);
vsnprintf(buf, sizeof(buf), fmt, va_alist);
va_end(va_alist);
 
output.open(Name_File, ios::app);//Имя фаила с логом текстур
if(output.fail()) return;
output << buf << endl;
output.close();
}
Добавлено через 8 часов 27 минут
UP... Нужен срочный совет.....
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2013, 01:32
Ответы с готовыми решениями:

Инжектор крашит CS:GO на Windows 10
Здравствуйте! Столкнулся с проблемой при которой инжектор крашит CS:GO, при этом на Windows 10, на остальных вроде всё нормально. Ошибка...

Инжектор dll, не выполняется вызов MessageBox
имеется код: #include &lt;windows.h&gt; #include &lt;TlHelp32.h&gt; #include &lt;iostream&gt; using namespace std; DWORD func(const char...

Инжектор инжектит только у меня, но на других он не работает
Вообщем проблема такова, я сделал инжектор, скомпилил, проверил на себе, вроде бы работает, но как я скинул его другу, он проверил его...

12
43 / 40 / 2
Регистрация: 21.09.2009
Сообщений: 145
21.09.2013, 01:49
смею предположить что используется VirtualFree?
Цитата Сообщение от IceSqueez Посмотреть сообщение
if(dwRea
C++ (Qt)
1
2
3
case
DLL_THREAD_ATTACH:
OutPutDebugString("Successed!");
1
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
21.09.2013, 04:01  [ТС]
Как я понял, надо было изменить код так ?
C++
1
2
3
4
5
6
7
8
DisableThreadLibraryCalls(hDll);
switch (dwReason)
{
case DLL_THREAD_ATTACH:
    FARPROC Adr_VirtualFreeEx = GetProcAddress(GetModuleHandleA("kernel32.dll"),"VirtualFreeEx");
    oVirtualFreeEx = (_VirtualFreeEx)DetourFunction((PBYTE)Adr_VirtualFreeEx,(PBYTE)CVirtualFreeEx);
}
return true;
Но с таким оно тоже на работает, мало того скажу...))) перестал создаваться файл "Log.txt", а спал создаваться файл "С"... Или я что-то не так понял ?
0
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
22.09.2013, 14:19  [ТС]
На правах UP'a
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
22.09.2013, 15:33
Цитата Сообщение от IceSqueez Посмотреть сообщение
Доброго времени суток, пишу анти-инжектор
А подробнее можно ?
На чем основан принцип работы анти-инжектора (тоже этой темой занимался) ?

Цитата Сообщение от IceSqueez Посмотреть сообщение
вот сейчас делаю dll, которая будет проверять использует ли процесс функцию VirtualFreeEx
А при чем здесь VirtualFreeEx ?
Инжект - это в первую очередь CreateRemoteThread, SetThreadContext, WriteProcessMemory...

Цитата Сообщение от IceSqueez Посмотреть сообщение
но дело в том что почему-то определяется эта функция, если инжектор инжектиться сам в себя
Очевидно потому, что Detours тоже использует VirtualFreeEx.
1
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
22.09.2013, 16:56  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
А подробнее можно ?
Да можно, по сути я пишу анти-чит к одной игре, анти-инжектор, это немного не то, если быть точнее это детектор инжекторов, античит инжектить длл по всем процессам, если процесс использует инжект, то должен создаться лог-файл с данными, дале античит отправляет на сервер информацию...

Дело еще в том, что, я сам проект пишу не на С++ ибо С++ я не знаю, мне просто скинули ( другой программист, который ушел с этой работы ) эту длл и я что-бы не переделывать, решил её просто доработать... но вот получаю одни только проблемы...

Не подскажете как мне быть ?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
22.09.2013, 17:04
Цитата Сообщение от IceSqueez Посмотреть сообщение
Не подскажете как мне быть ?
Напишите тестовое приложение, которое бы использовало VirtualFreeEx.
С минимально возможным кодом. И тестируйте анти-инжектор на нем.
1
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
22.09.2013, 17:19  [ТС]
Я не знаю может я не так объясняю, смотрите, длл инжектить во все процессы, и если хотя-бы один процесс ( возьмем на пример инжектор Cheat Engine ) будет инжектить какую-либо длл в другой процесс, то моя длл должна создать лог-файл... Она сейчас создает этот лог файл, но только тогда если я например из программы PerX буду инжектить в PerX, а если из PerX инжектить в Cheat Engine результат = 0...
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
22.09.2013, 17:38
Сделайте нормальную проверку ошибок.
Например, Вы уверены, что функции Log хватает прав, чтобы создавать Log.txt ?
0
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
22.09.2013, 18:22  [ТС]
Конечно, я даже запускал от прав. адиминистратора не чего не изменилось...
Меня больше интересует или код сам по себе рабочий ?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
22.09.2013, 18:43
Невозможно сказать, рабочий код или нет, видя фрагмент в тридцать строк.
К тому же лишенной нормальной проверки ошибок.
0
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
24.09.2013, 16:08  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
видя фрагмент
Это не фрагмент, это весь код DLL... Которую я инжек... короче впихиваю в процессы с помощью инжектора...
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
24.09.2013, 16:44
Цитата Сообщение от IceSqueez Посмотреть сообщение
Конечно, я даже запускал от прав. адиминистратора не чего не изменилось...
Запускали что ? Инжектор ? Или инжектируемую программу ?
Я имел в виду второе, конечно, т.к. dll будет выполняться в
ее контексте безопасности.

Цитата Сообщение от Убежденный Посмотреть сообщение
Невозможно сказать, рабочий код или нет, видя фрагмент в тридцать строк.
К тому же лишенный нормальной проверки ошибок.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2013, 16:44
Помогаю со студенческими работами здесь

Анти - Установка бара (Анти бар яндекс)
Подскажите такое дело - вот все время устанавливаеться бар от яндекс от деймон тулс да и всего полно. Вобщем мне лично надоело!!! хочу...

Инжектор длл
Добрый день раньше пользовался на delphi 7 таким способом инжекта но потом перешел на xe8 и он почему то перестал работать подскажите в чем...

Инжектор на Java
Можно ли написать инжектор dll на Java, желательно нужно пошаговое руководство

Инжектор dll
Всем привет, помогите пожалуйста с инжектором. Суть такая инжектор инжектит dll в игру, но сама dll не работает мне нужно чтобы dll...

Инжектор DLL
Напишите пожалуйста простой инжектор DLL для Windows Form(Проект оконное приложение) Наподобие вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru