Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 27.11.2013, 21:39   #1
Новичок
 
Регистрация: 19.11.2013
Сообщений: 5
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Sanek2 пока неопределено
По умолчанию inject dll с помощью LordPe, CFF Explorer

Моя dll на с++ - hook addNetworkQueue, работает при обычном инжекте. Но на том сервере, где щас играю, какая - то защита, при обычном инжекте сразу бан по hwid. По этому помогите найти другой способ инжекта или разобраться с импортом в клиентские dll.

Пытаюсь сделать импорт dll с помощью Cff Explorer:
захожу в Import Adder
жму Add выбираю мою dll получаю ошибку:
Invalid PE file. Possible reason: no export table present

Тоже самое в LordPe при открытии моей dll и нажатии export. Если все-таки сделать импорт моей dll в dll клиента, то получаю крит клиента (вроде функции которые были в dll клиента исчезают).

//Способ найден, не актуально....

Последний раз редактировалось Sanek2, 27.11.2013 в 22:45. Причина: Найден другой способ...
Sanek2 вне форума   Ответить с цитированием
Старый 28.11.2013, 01:38   #2
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

все таки "метод инжекта" ?
или все-таки контролируется целостность самой функции (первые 5 байт) ?
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 28.11.2013, 01:59   #3
Новичок
 
Регистрация: 19.11.2013
Сообщений: 5
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Sanek2 пока неопределено
По умолчанию

Оказалось что дело не в инжекте, а в перехвате API функций (определил методом тыка в виртуалке, слава Снапшотам), при вызове GetProcAdress.
При вызове GetModuleHandleA, Read|WriteProcessMemory бана не наблюдается.

И бан какой - то локальный (не пускает при попытке логина), т.е при инжекта без интернета все-равно бан, решается переустановкой виндовс или откатом с помощью снапшота в виртуалке.
Sanek2 вне форума   Ответить с цитированием
Старый 28.11.2013, 02:13   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
при вызове GetProcAdress.
вызывай GetProcAdress + 5
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от:
Старый 28.11.2013, 23:29   #5
Новичок
 
Регистрация: 19.11.2013
Сообщений: 5
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Sanek2 пока неопределено
По умолчанию

Ок попробую, пока использовал функцию аналог, бан не получаю
Код:
FARPROC _stdcall HideGetProcAddress(HMODULE hModule, char* lpProcName)
{
	ULONG PE;
	PIMAGE_EXPORT_DIRECTORY ED;
	PULONG NamePointerRVA;
	PUSHORT OrdinalTableRVA;
	PULONG AddressTableRVA;

	ULONG ret = 0;
	USHORT hint = 0;
	USHORT index;
	char * name;
	ULONG addr;
	ULONG CNT_FUNC;

	if ((ULONG)lpProcName <= 0xFFFF)// если импорт по ординалу
	{
		hint = (USHORT)lpProcName; // запишем наш ординал
	}

	if (hModule) // если указан модуль откуда грузить
	{
		PE = *(ULONG*)((ULONG)hModule + 0x3C) + (ULONG)hModule;// адрес PE заголовка
		ED = (PIMAGE_EXPORT_DIRECTORY)(*(ULONG*)((ULONG)PE + 0x78) + (ULONG)hModule); // адрес таблицы экспорта

		NamePointerRVA = (ULONG*)(ED->AddressOfNames + (ULONG)hModule); // адрес таблицы имен
		OrdinalTableRVA = (USHORT*)(ED->AddressOfNameOrdinals + (ULONG)hModule); // адрес таблицы ординалов
		AddressTableRVA = (ULONG*)(ED->AddressOfFunctions + (ULONG)hModule); // адрес таблицы адерсов

		// вычесляем наибольшее значение - кол-во функций
		if (ED->NumberOfNames > ED->NumberOfFunctions)
		{
			CNT_FUNC = ED->NumberOfNames;
		}
		else
		{
			CNT_FUNC = ED->NumberOfFunctions;
		}

		// пройдемся по всем функциям
		for (USHORT x = 0; x < CNT_FUNC; x++)
		{
			if (x < ED->NumberOfFunctions) // если есть имя у функции
			{
				name = (char*)(NamePointerRVA[x] + (ULONG)hModule); // запомним имя
				index = OrdinalTableRVA[x]; // запомним ординал
			}
			else // если имени нет
			{
				name = 0; // имени нет
				index = x; // ординал = текущей позиции
			}

			// вычесляем адрес функции 
			addr = AddressTableRVA[index] + (ULONG)hModule;
			if ((hint == index + ED->Base) || // если это наш ординал
				(name && !strcmp(name, lpProcName))) // если есть имя и оно наше
			{
				ret = addr; // нашли адрес
				break; // прекратим обход экспорта
			}
		}
	}

	return (FARPROC)ret; // вернем адрес 
}
Добавлено через 19 часов 18 минут
Хмм, тут защита GameGuard, почитал о ней в википедии, неужели все так безнадежно, как там написанно?

Последний раз редактировалось Sanek2, 28.11.2013 в 23:29. Причина: Добавлено сообщение
Sanek2 вне форума   Ответить с цитированием
Старый 30.11.2013, 19:29   #6
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

1) если размер файла изменяется ( основных типа л2.ехе, енгайн, коре и тп ) - тебя банит автоматом - локальная защита ( размер файла изменяется когда добавляешь через импорт адд)
2) я почти уверен, что твоя хук процедура не будет работать с геймгвардом, ГГ чекает в енгайн длл некоторые адреса, которые нужны для хука
St1mul вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 00:51.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!