Перейти к содержанию

gamehikker

Заблокированные
  • Постов

    44
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные gamehikker

  1. Ну мне нужен адрес инструкции . Адрес у неё динамический и после перезапуска игры , адрес поменяется и инструкцию придётся искать снова .
    _gQ1sJH21_s.jpg
    Может быть как-то с помощью трассировки можно ?

  2. А можно как-то найти нужный адрес без сканера ? Я нашёл сигнатуру в игре на движке unity .Эта сигнатура связана с самим движком . Как можно было бы её находить без сканера ?
    Т.к. сканер ищет довольно таки долго , если по памяти всего процесса (там гигабайт точно )

  3. 10 минут назад, partoftheworlD сказал:

    2 сигнатуры выходит?

    Да . Но ведь такое может быть , если я нашёл одну сигнатуру , но её части в разных страницах памяти . Это недоработка получается и все используют это код . Эх...

     

    @gamehikker прочтите -> жмяк

  4. Ребята , недавно задался вопросом (возможно глупым) .Все знают функцию findpattern ? Но многие точно пользовались и знают , зачем она нужна .
    У меня вопрос , что если одна часть сигнатуры находится в одной странице памяти , а другая часть в другой ? Найдёт ли функция сигнатуру в таком случае ?
    код:
     

    Скрытый текст
    
    DWORD FindSignature(HANDLE m_hProc,DWORD base, DWORD size, BYTE* sign, char* mask)
    {
    	LoadNTFunction();
    	MEMORY_BASIC_INFORMATION mbi = { 0 };
    	DWORD offset = 0;
    
    	while ((offset < size))
    	{
    		VirtualQueryEx(m_hProc, (LPCVOID)(base + offset), &mbi, sizeof(MEMORY_BASIC_INFORMATION));
    		
    
    		if (mbi.State != MEM_FREE)
    		{
    
    			BYTE* buffer = new BYTE[mbi.RegionSize];
    			ReadProcessMemory(m_hProc, mbi.BaseAddress, buffer, mbi.RegionSize, NULL);
    
    			for (size_t i = 0; i < mbi.RegionSize; i++)
    			{
    				if (DataCompare(buffer + i, sign, mask))
    				{
    					delete[] buffer;
    
    					return (DWORD)mbi.BaseAddress + i;
    				}
    			}
    			delete[] buffer;
    		}
    		offset += mbi.RegionSize;
    	}
    	return 0;
    }
    
    bool DataCompare(BYTE* data, BYTE* sign, char* mask)
    {
    	for (; *mask; mask++, sign++, data++)
    	{
    		if (*mask == 'x' && *data != *sign)
    			return false;
    	}
    	return true;
    }

     

     

  5. В 03.10.2017 в 17:19, partoftheworlD сказал:

     

    Если составлена уникальная сигнатура, то в памяти ни как не может быть ещё одна такая же. И не обязательно делать сигнатуру на ту инструкцию которая тебе нужна.
     

    Так тут мне советуют делать сигнатуру из своего девайса, чтобы найти девайс , который использует сама игра .Да и вообще возможно создание vmt hook'а без сигнатуры ?

  6. 6 часов назад, 2zolo2 сказал:

    gamehikker, так глаза разуй, там даже код есть, вот.

    Это адрес своего созданного девайса .А мне нужен адрес игрового девайса

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.