Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Не работает поиск сигнатуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему выдает ошибку в строке "for(Data::iterator p=stats.begin(); p!=stats.end(); ++p)" http://www.cyberforum.ru/cpp-beginners/thread520457.html
"Read a sequence of possibly whitespaceseparated (name,value) pairs, where the name is a single whitespaceseparated word and the value is an integer or a floatingpoint value. Compute and print the...
C++ Можете скомпилировать и сказать работает ли? Не хочу качать компилятор для 4-5 заданий, точнее занимали бы они меньше места как, например, Dev-CPP для С. Можете скомпилировать данный код и сказать работает он вообще или нет? Если нет то какие... http://www.cyberforum.ru/cpp-beginners/thread520443.html
Написать программу удаления букв «б» из введенного слова C++
Написать программу удаления букв «б» из введенного слова
C++ Найти наибольшую клику в заданном орграфе, используя алгоритм нахождения независимых множеств
Клика – полный подграф неориентированного графа. Другими словами, клика графа есть подмножество его вершин, такое, что между каждой парой вершин этого подмножества существует ребро и, кроме того, это...
C++ не компилируется http://www.cyberforum.ru/cpp-beginners/thread520424.html
Вот кусок кода class Game; class View { private: static int left;
C++ Компилятор выдает ошибку при объявлении массива. Не могу понять где соль Объясните пожалуйста в чем моя ошибка. Вот исходник #include <iostream> // cin, cout,endl #include <math.h> // Мат функции #include <iomanip> // формат вывода using namespace std; const int... подробнее

Показать сообщение отдельно
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
18.03.2012, 20:37  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
да чёрт его знает, навскидку вроде тяжеловато будет, смотри, за поиск в считанном дампе отвечает memchr, это ты должен без считывания если накропать некое подобие memchr, причём всё равно каждый байт ТЫ ОБЯЗАН БУДЕШЬ СЧИТАТЬ, подумай сам- а иначе как ты его распознаешь???. Короче без ReadProcessMemory вряд ли обойдёшся; то есь какой-то промежеточный буфер- файл ли, массив ли всё равно должен быть. Думай, короче.
Ок, спасибо, буду раскуривать...
Но по идее поиск сигнатуры организован этой функцией
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
        for(;*szMask;++szMask,++pData,++bMask)
                if(*szMask=='x' && *pData!=*bMask )
                        return false;
        return (*szMask) == NULL;
}
 
DWORD dwFindPattern(DWORD dwAddress,DWORD dwLen, BYTE *bMask, char * szMask) {
        for(DWORD i=0;i<dwLen;i++)
                if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
                        return (DWORD)(dwAddress+i);
        return NULL;
}
Это как раз наверное и есть подобие memchr. Просто выделяется не массив, а пространство сканируемых адресов... Раскрутить логику этой функции мешает недостаток знаний в плюсах и жена... Попробую раскрутить и по возможности улучшить... Сейчас функция отрабатывает, но что-то там затык с маской..
Хотя, эта функция без ReadProcessMemory работать не сможет наверно? Т.е. нужно сначала считать память, а потом искать...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru