Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Поиск в файле - FindPattern();

-

Общение разработчиков

- Программирование для Point Blank, общение и обсуждение разработок

Ответ
 
Опции темы
Старый 05.12.2012, 12:04   #1
 Разведчик
Аватар для MeowFlow
 
MeowFlow никому не известный тип
Регистрация: 05.12.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Smile Поиск в файле - FindPattern();

Хай всем! Мне нужна помощь, Найти произвольную последовательность байт в файле большого объема.Решение придумал , но видимо настолько примитивное, что и результат не устраивает , а именно работает все так медленно , что проще ничего не искать :3
Вот функция:

Код:
int FindPattern(FILE *dat,unsigned char *p,unsigned long int idx) 
{ 
long int i,j; 
unsigned char buf; 
// в idx кол-во эл-ов в p[] 
i=idx;j=0; 
while(!feof(dat) && i!=0) { 
fread(&buf,1,1,dat); 
if(buf==p[j]) 
{ 
i--; 
j++; 
} 
else { 
j=0; 
if(i!=idx) fseek(dat,i-idx,SEEK_CUR); 
i=idx; 
} 
} 

if(i==0) return 1; 
else return 0; 
}
Вероятно что все коряво, но ускорить такой алгоритм уже имхо нельзя.
Есть ли иной способ? :3
Заранее спасибо
  Ответить с цитированием
Старый 05.12.2012, 12:43   #2
 Старший сержант
Аватар для slava-zis
 
slava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норриса
Регистрация: 18.02.2011
Сообщений: 232
Популярность: 8824
Сказал(а) спасибо: 43
Поблагодарили 801 раз(а) в 240 сообщениях
Отправить сообщение для slava-zis с помощью Skype™
 
По умолчанию Re: Поиск в файле - FindPattern();

Для решения производительности выдели в памяти участок и в него копируй кусок файла (если очень большой файл по нескольку раз копируй туда) и в этой памяти уже проверяй нормальной функцией FindPattern, а не той что у тебя... Производительность возрастет на 10000000000000.99%, по сравнению с тем кодом что у тебя. В конце не забудь память очистить
________________
Hack for ShadowCompany
Hack for War Thunder
Дно геймхакинга

Последний раз редактировалось slava-zis; 05.12.2012 в 12:45.
  Ответить с цитированием
Старый 05.12.2012, 16:37   #3
 Разведчик
Аватар для MeowFlow
 
MeowFlow никому не известный тип
Регистрация: 05.12.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Smile Re: Поиск в файле - FindPattern();

Цитата:
Сообщение от slava-zisПосмотреть сообщение
Для решения производительности выдели в памяти участок и в него копируй кусок файла (если очень большой файл по нескольку раз копируй туда) и в этой памяти уже проверяй нормальной функцией FindPattern, а не той что у тебя... Производительность возрастет на 10000000000000.99%, по сравнению с тем кодом что у тебя. В конце не забудь память очистить

Я то понял что у меня херовый код)
Есть одно но, Куда копировать мои атрибуты? Ну я допустим нашел по фиду.

Код:
FindPattern ((DWORD)i3exec, 0x2A315B2, (PBYTE)"\x55\x8B\xEC\x81\xEC\x9C\x01\x00\x00\x56\x89\x8D\x88\xFE\xFF\xFF", "x?xxxxx??xxxxxxxxx");
Вот как то так
  Ответить с цитированием
Старый 05.12.2012, 19:13   #4
 Старший сержант
Аватар для slava-zis
 
slava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норрисаslava-zis троюродный дядя Чака Норриса
Регистрация: 18.02.2011
Сообщений: 232
Популярность: 8824
Сказал(а) спасибо: 43
Поблагодарили 801 раз(а) в 240 сообщениях
Отправить сообщение для slava-zis с помощью Skype™
 
По умолчанию Re: Поиск в файле - FindPattern();

Цитата:
Сообщение от MeowFlowПосмотреть сообщение
Я то понял что у меня херовый код)
Есть одно но, Куда копировать мои атрибуты? Ну я допустим нашел по фиду.

Код:
FindPattern ((DWORD)i3exec, 0x2A315B2, (PBYTE)"\x55\x8B\xEC\x81\xEC\x9C\x01\x00\x00\x56\x89\x8D\x88\xFE\xFF\xFF", "x?xxxxx??xxxxxxxxx");
Вот как то так

вообще i3exec должен содержать адрес области памяти где хранится кусок файла, а вместо 0x2A315B2 должен быть размер области памяти...

остальное зависит от того что надо найти
________________
Hack for ShadowCompany
Hack for War Thunder
Дно геймхакинга
  Ответить с цитированием
Старый 06.12.2012, 00:16   #5
 Разведчик
Аватар для MeowFlow
 
MeowFlow никому не известный тип
Регистрация: 05.12.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Smile Re: Поиск в файле - FindPattern();

Цитата:
Сообщение от slava-zisПосмотреть сообщение
вообще i3exec должен содержать адрес области памяти где хранится кусок файла, а вместо 0x2A315B2 должен быть размер области памяти...

остальное зависит от того что надо найти

Дак это же геморойно.. Впринципе можно изначально не трогать вообще память. Можно задать
Код:
int main() {
int* array = new int[10];
cout<<"array:";
for(unsigned int i=0; i<10; i++)
     cout<<array[i]<<" ";
cout<<endl;
delete [] array;
array=0; 
}
и вообще даже не атрагивать память, она станет динамической :3
  Ответить с цитированием
Ответ


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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FindPattern YogurtMen Вопросы и ответы, обсуждения 0 14.09.2012 18:42
[Помогите!] FindPattern c# Stereo[TIP] Вопросы и ответы, обсуждения 8 17.08.2012 12:58
[Помогите!] Поиск в файле Лесоруб Вопросы и ответы, обсуждения 2 28.02.2011 20:07

Заявление об ответственности / Список мошенников

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net