Inforcer Опубликовано 20 апреля, 2015 Поделиться Опубликовано 20 апреля, 2015 Ребят,выручайте,при поиске определенного значения aob в памяти процесса через Cheat Engine к примеру 00 01 00 00 FF , и после замены на 00 ?? ?? 00 AA , два значения под вопросиками останутся нетронутыми, чит енжин пропускает и исправляет нужное значение,в данном примере FF на AA , но если такое реализовать в Delphi 7, делфи эти вопросики преобразует в "88" то есть значение исправленное в делфи с вопросиками имело бы такой результат 00 88 88 00 AA , вот собственно как реализовать пропуск этих двух значений в Delphi 7 , может какие то другие символы для пропуска? Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 20 апреля, 2015 Поделиться Опубликовано 20 апреля, 2015 Привет! Покажи код, используя чудо-теги code и spoiler (у последнего должно быть имя, чтобы он нормально работал). Сканер сигнатур - это алгоритм поиска строки в подстроке, так что, скорее всего, ты просто что-то делаешь неправильно, ибо алгоритм простой и в нем довольно тяжело ошибиться. Ссылка на комментарий Поделиться на другие сайты Поделиться
Inforcer Опубликовано 20 апреля, 2015 Автор Поделиться Опубликовано 20 апреля, 2015 (изменено) Привет!Покажи код, используя чудо-теги code и spoiler (у последнего должно быть имя, чтобы он нормально работал). Сканер сигнатур - это алгоритм поиска строки в подстроке, так что, скорее всего, ты просто что-то делаешь неправильно, ибо алгоритм простой и в нем довольно тяжело ошибиться.beginSearch := SearchEngine.NewSearch('01 00 FF 00');trySearch.OPT_READPAGE_EXECUTEREADWRITE := True;Search.OPT_READPAGE_READWRITE := True;Search.OPT_READPAGE_EXECUTEREAD := True;Search.OPT_READPAGE_READONLY := True;if Search.Next then beginSearchResult := Search.GetFindedAddressObject;SearchResult.WriteHEX(0, '01 ?? AA 00'); Изменено 20 апреля, 2015 пользователем Inforcer Ссылка на комментарий Поделиться на другие сайты Поделиться
Inforcer Опубликовано 20 апреля, 2015 Автор Поделиться Опубликовано 20 апреля, 2015 С такой же хренью я сталкивался , там находилось 3 сигнатуры , а из-за модуля сканирования менялась только первая сигнатура а нужна была вторая ( Пришлось 2 кнопки создавать и на них кидать код замены)у меня находится 1 значение какое и нужно, но пробела не в этом , в том что при замене ?? меняется на 88 а не пропускает значение под вопросом Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 20 апреля, 2015 Поделиться Опубликовано 20 апреля, 2015 Это не совсем то. Нужен исходник SearchEngine, где и происходит поиск. Ссылка на комментарий Поделиться на другие сайты Поделиться
Inforcer Опубликовано 20 апреля, 2015 Автор Поделиться Опубликовано 20 апреля, 2015 Это не совсем то. Нужен исходник SearchEngine, где и происходит поиск.Всмысле исходник, вот это стоитpublic SearchEngine: TMemorySearchEngine; SearchResult: TMSE_FindedAddress; и далее сразу на кнопку прописан поиск,больше ничего Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 20 апреля, 2015 Поделиться Опубликовано 20 апреля, 2015 Дык TMemorySearchEngine - это явно не стандартный компонент Delphi. У него тоже должен быть исходник, на который мне и хочется взглянуть. Я могу и ошибаться, само собой. Ссылка на комментарий Поделиться на другие сайты Поделиться
Inforcer Опубликовано 20 апреля, 2015 Автор Поделиться Опубликовано 20 апреля, 2015 Дык TMemorySearchEngine - это явно не стандартный компонент Delphi. У него тоже должен быть исходник, на который мне и хочется взглянуть. Я могу и ошибаться, само собой.Нету ) Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 21 апреля, 2015 Поделиться Опубликовано 21 апреля, 2015 1. Нужен код Функции WriteHEXSearchResult.WriteHEX(0, '01 ?? AA 00'); 2. Попробуй вместо вопросов поставить "XX" 3. Если хочешь помощи, то пиши код функции WriteHEX Если у тебя его тоже нет, тогда как ты себе представляешь помощь от нас? Мы не можем ни определить ошибок кода, ни поддержку пропуска байтов, ни поддерживаем символы для пропуска байт. Можно было бы exe поковырять в дизассемблере, но это вряд ли кто делать будет. Ссылка на комментарий Поделиться на другие сайты Поделиться
∟DarkPan Опубликовано 21 апреля, 2015 Поделиться Опубликовано 21 апреля, 2015 (изменено) Народ ну что вы с этим uMSE! у вас же dcu! что мешает создать цикл для замены всех сигнатур? к тому же деактивация на байты ?? не осуществляется! SearchEngine - это класс! Изменено 21 апреля, 2015 пользователем MasterGH Большие картинки прячем под спойлеры Ссылка на комментарий Поделиться на другие сайты Поделиться
∟DarkPan Опубликовано 22 апреля, 2015 Поделиться Опубликовано 22 апреля, 2015 (изменено) 1. Нужен код Функции WriteHEXSearchResult.WriteHEX(0, '01 ?? AA 00'); 2. Попробуй вместо вопросов поставить "XX" 3. Если хочешь помощи, то пиши код функции WriteHEX Если у тебя его тоже нет, тогда как ты себе представляешь помощь от нас? Мы не можем ни определить ошибок кода, ни поддержку пропуска байтов, ни поддерживаем символы для пропуска байт. Можно было бы exe поковырять в дизассемблере, но это вряд ли кто делать будет.function TMSE_FindedAddress.WriteHEX(const From: Integer; const Data: string; const AddrID: Integer): Boolean;var Buffer: array of Byte; i: Integer; Len: Integer; Size: Integer; TmpByte: Byte;begin Len := Length(Data); SetLength(Buffer, Len shr 1); try i := 1; Size := 0; while i <= Len do begin if Data[i] <> ' ' then begin TmpByte := HEXToInt(Data[i]); Inc(i); Buffer[Size] := (TmpByte * 16) + HEXToInt(Data[i]); Inc(Size); end; Inc(i); end; Result := Write(From, @Buffer[0], Size, AddrID); finally SetLength(Buffer, 0); end;end; Изменено 22 апреля, 2015 пользователем ∟DarkPan Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения