мучаюсь уже 2-й день...
надо просто сканить адреса от 401000 до 7FFFFFFF и найти по маске 1 адрес
если даже по 50000 адресов сканить одновременно то выходит что надо сканить очень долго... а надо в 1 клик, тоесть нажал кнопку и тут же он нашёл, если же брать память и сканить сразу по 5000000 то опять же толку 0 он зависает на на соединениии и на маске
code_33701.txt
подскажите хоть кто неть в какую сторону мне копать???
Этот топик читают: Гость
Ответов: 1343
Рейтинг: 31
|
|||
карма: 2 |
| ||
файлы: 1 | code_33701.txt [2.9KB] [232] |
Ответов: 2059
Рейтинг: 132
|
|||
Was ist das - сканить адреса? Как это будет по русски?
Это значения что ли по этим адресам? Быстрее чем for I := 401000 to 401000 + Length do ничего не придумаешь. И if ....then exit ; I - конечно локальная переменная, которая на стеке. while ... do и Repeat ... Until будет помедленней. В заисимости, что сравниваем, тоже немножко можно в скорости выиграть, но не с Integer. Понятно, что сравнивать один байт очень накладно! Быстрее будет наложить маску с нужным байтом. Но и по простому, разницы не заметишь. Через doWork и onEvent это маразм. |
|||
карма: 6 |
|
Ответов: 4631
Рейтинг: 749
|
|||
flint2 писал(а): Быстрее чем for I := 401000 to 401000 + Length do ничего не придумаешь. |
|||
карма: 26 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Поскольку программа занимает не всю память, а под данные память выделяется блоками, то нужно перебирать только занятые блоки. Разумеется. Есть такой компонент PEAnalysis, через него и смотрим, чего надо. Правда я не знаю, входит он в комплект поставки, или нет. Я часто им пользуюсь. |
|||
карма: 6 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Netspirit писал(а): искать только в занятых страницах памятихммм, спасибо попробую, это значительно облегчит поиск но блин вот если попробовать исключать большие блоки в которых есть там 00 00 00... но как это сделать? ------------ Дoбавленo в 14.11: flint2 писал(а): Есть такой компонент PEAnalysisчё то нехочет лезть в пакет delphi ------------ Дoбавленo в 14.26: блин чё как назло нету точки Clear у компонента соединение строк в FTCG ------------ Дoбавленo в 15.29: вот к примеру Cheat Engine ищет за несколько секунд точный адрес и причём написан он вроде на дельфи |
|||
карма: 2 |
|
Ответов: 2059
Рейтинг: 132
|
|||
карма: 6 |
|
Ответов: 1343
Рейтинг: 31
|
|||
flint2 писал(а): нехочет и всё, перекидываю конфиг в hiasm выбираю дельфи и вкладок нету а если пропишу пишет чё то ругаеться аналогично бывает при добавлении компонента из другого пакета ------------ Дoбавленo в 19.18: может посоветуешь как найти указатель на адрес? адрес меняется после каждого раунда, присвоение идёт после старта раунда. блок памяти в котором адрес появляется постоянно меняется ну или хотя бы как маску нормальную сделать, а то надо ловить кое чё в раунде и одновременно искать. если сделать маску то сразу будет находить то что надо и уже гораздо лучше будет |
|||
карма: 2 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Rysik писал(а): может посоветуешь как найти указатель на адрес?Поиск по памяти значения, равного адресу, по которому лежит интересующее значение. |
|||
карма: 10 |
|
Ответов: 2059
Рейтинг: 132
|
|||
может посоветуешь как найти указатель на адрес? Assasin Дал очень толковый совет. ну или хотя бы как маску нормальную сделать А на что? На байт, бит, впрочем всё равно, "and" то что читаешь из памяти с твоей маской. Там, где нужно проверять - в маске должны быть единицы. т.е. 4 - проверяем третий бит, если байт то ff т.е 0000ff00 - второй байт. |
|||
карма: 6 |
|
Ответов: 1343
Рейтинг: 31
|
|||
flint2 писал(а): А на что? На байт, бит, впрочем всё равно, "and" то что читаешь из памяти с твоей маской. Там, где нужно проверять - в маске должны быть единицы. т.е. 4 - проверяем третий бит, если байт то ff т.е 0000ff00 - второй байт.ничё непонятно... наверно просто пользоваться вот этим
{ Mask="*0000ff00*" } ------------ Дoбавленo в 21.31: да впрочем маску уже сделал, причём максимальную наверно, из 191 байта это конечно упростило поиск того, что мне нужн,о но всё же как вот сделать так, что бы при чтении этих больших скоплений 00 00 00 00... , они удалялись и не лезли дальше в соединение строк? ------------ Дoбавленo в 21.38: всё уже сделал простой replace ноликов колличество которых есть в маске но + ещё несколько дабы не портить маску и выходит так что будет думаю побыстрей работать |
|||
карма: 2 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Так откуда может быть известно, что тебе нужно сравнивать строки по маске? Нигде об этом и слова не было сказано.
Тогда что это за бред? Mask="*0000ff00*" Сначала надо понимать, что в конечном итоге надо конкретно, а не в терминах абстракции. Тогда и вопросы будут внятные, на которые можно ответить. да впрочем маску уже сделал, причём максимальную наверно, из 191 байта Лихо ты лампочки с апельсинами скрещиваешь, но лампасинов не получится! Нет! Mask="*0000ff00*" |
|||
карма: 6 |
|
Ответов: 1841
Рейтинг: 369
|
|||
Rysik писал(а): Cheat Engine ищет за несколько секунд точный адресВот основная часть, отвечающая за первоначальный поиск code_33703.txt Вообще, это напоминает спагетти-код, хотя и шустро работает:lol ------------ Дoбавленo в 00.57: модуль memscan.pas, если что ------------ Дoбавленo в 01.12: Вот так получаем дампы регионов памяти процесса.
В общем, даже и не рассчитывайте на быстрый поиск без IC. |
|||
карма: 1 |
| ||
файлы: 1 | code_33703.txt [15.8KB] [263] |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2025-01-09 23:45:42 |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2025-01-09 23:45:42 |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2025-01-09 23:45:42 |
|||
карма: 0 |
|