Тема: Warden
Показать сообщение отдельно
Старый 23.04.2011, 14:59   #90
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


PS : поизучал тут проверки модуля, кто-нить может сказать в чем практическое применение LUA, MPQ чеков, я понял их суть, но по-моему они бесполезны, MPQ - просто проверять, не изменен ли файл внутри архива, так? а LUA - ну я не представляю себе что может палится таким образом.

И еще такой вопрос, уже вне темы, толи лыжи не едут, толи...
PAGE_CHECK - я так понял по коду модуля, перебираются дллки через GetModuleHandle - потом для переданного address + base address dll вызывается VirtualQuery
У меня почему-то эта проверка всегда возвращает E9, хоть какой хэш посылай, точно так же и MODULE_CHECK, мб я хэш неверно формирую

Код:
			byte[] buffer = new byte[10];
			int address = baseAddr.ToInt32() + 0x4040;     // относительный адрес - 0x4040
			IntPtr handle = OpenProcess(0x0010, true, p.Id);
			uint bytes = 0;
			ReadProcessMemory(handle, (IntPtr)address, buffer, 10, ref bytes);
			byte[] seed = {0xD4,0x3A,0x3F,0xB3};

			HMACSHA1 hmac = new HMACSHA1(seed);
			byte[] hash = hmac.ComputeHash(buffer);

			HexOutput("Seed: ", 0, seed, seed.Length, true);
			HexOutput("Hash: ", 0, hash, hash.Length, true);
Проверял, читает все верно, всмысле совпадает результат чтения и то, что в памяти.

Последний раз редактировалось MaS0n; 15.05.2011 в 13:22.
MaS0n вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Ranger (15.05.2011)