Описание: Работа с памятью процесса. Поиск, чтение, запись в память процесса игры |
Поиск в теме | Версия для печати |
SOLNCE |
Отправлено: 23 Апреля, 2021 - 01:50:40
|
Наблюдатель
Покинул форум
Сообщений всего: 26
Дата рег-ции: Сент. 2016
Репутация: 0
|
Zireael пишет: Цитата: такую возможность можно добавить данной функции? очень бы помогла
Это поможет только в плане ускорения поиска. Пройтись в цикле по найденным адресам чтобы найти все, которые меньше указанного, можно и сейчас.
Да, нужно именно для ускорения поиска, ибо это очень большая задержка, каждый раз например мне нужно сканировать область памяти 7FFF FFFF FFFF вместо 50 0000, которая сканируется мгновенно(Отредактировано автором: 23 Апреля, 2021 - 01:51:15) |
|
|
Zireael |
Отправлено: 23 Апреля, 2021 - 03:22:16
|
Эксперт
Покинул форум
Сообщений всего: 4462
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Длл распаковать и закинуть в папку с кибор.
https://drive.google.com/file/d/...view?usp=sharing
Особо не тестил, попробуйте.
CODE:external(INT, "find_memory", "findmemory", "findmemory.dll");
external(INT, "set_step", "set_step", "findmemory.dll");
external(INT, "set_ending", "set_ending", "findmemory.dll");
char poisk[4];
codhex(1339, #poisk[0]); // что искать, число 1339 в данном случае
int adr[9999]; // сюда запишутся найденные адреса
int Pid=findprocess("l2.exe"); // имя процесса
if (Pid != -1)
{
int prc = openprocess(Pid);
if(prc>0)
{
//set_ending("40"); // окончание адреса в hex
//set_step(4); // шаг поиска, по умолчанию 1
int t = gettime();
int result = find_memory(sizearray(adr), address(#poisk[0]), 4, address(#adr[0]), 0x0E20C840, 0x13B01740, prc);
messagebox("Найдено адресов: "+format(result)+"^r^nЗатрачено времени: "+format(gettime()-t));
if(result)
{
messagebox(adr[0]); // первый найденный адрес
}
}
else messagebox("Процесс не открылся");
}
else messagebox("Процесс на найден");
Параметры функции find_memory:
1 - сколько искать адресов
2 - адрес массива с данными для поиска
3 - сколько искать байт
4 - адрес массива, в который запишутся найденные адреса
5 - адрес начала поиска
6 - адрес конца поиска или -1 искать все.
7- процесс, в котором искать.
Функция set_ending принимает строку, которой должен заканчиваться адрес.
Например set_ending("A4" ); будут найдены только адреса, которые оканчиваются A4, т. е. 0D9D8CA4, 2B4C25A4 и подобные.
Функции set_step принимает шаг поиска. Для чисел имеет смысл указывать 4. |
|
|
SOLNCE |
Отправлено: 23 Апреля, 2021 - 04:02:51
|
Наблюдатель
Покинул форум
Сообщений всего: 26
Дата рег-ции: Сент. 2016
Репутация: 0
|
Zireael пишет: Длл распаковать и закинуть в папку с кибор.
https://drive.google.com/file/d/...view?usp=sharing
Особо не тестил, попробуйте.
CODE:external(INT, "find_memory", "findmemory", "findmemory.dll");
external(INT, "set_step", "set_step", "findmemory.dll");
external(INT, "set_ending", "set_ending", "findmemory.dll");
char poisk[4];
codhex(1339, #poisk[0]); // что искать, число 1339 в данном случае
int adr[9999]; // сюда запишутся найденные адреса
int Pid=findprocess("l2.exe"); // имя процесса
if (Pid != -1)
{
int prc = openprocess(Pid);
if(prc>0)
{
//set_ending("40"); // окончание адреса в hex
//set_step(4); // шаг поиска, по умолчанию 1
int t = gettime();
int result = find_memory(sizearray(adr), address(#poisk[0]), 4, address(#adr[0]), 0x0E20C840, 0x13B01740, prc);
messagebox("Найдено адресов: "+format(result)+"^r^nЗатрачено времени: "+format(gettime()-t));
if(result)
{
messagebox(adr[0]); // первый найденный адрес
}
}
else messagebox("Процесс не открылся");
}
else messagebox("Процесс на найден");
Параметры функции find_memory:
1 - сколько искать адресов
2 - адрес массива с данными для поиска
3 - сколько искать байт
4 - адрес массива, в который запишутся найденные адреса
5 - адрес начала поиска
6 - адрес конца поиска или -1 искать все.
7- процесс, в котором искать.
Функция set_ending принимает строку, которой должен заканчиваться адрес.
Например set_ending("A4" ); будут найдены только адреса, которые оканчиваются A4, т. е. 0D9D8CA4, 2B4C25A4 и подобные.
Функции set_step принимает шаг поиска. Для чисел имеет смысл указывать 4.
Спасибо огромное заранее! проверю
(Добавление)
ошибка в коде функции.. что то там не так значит, с обычным findmemory сделал все работает |
|
|
|
Поиск в теме | Версия для печати |
Страниц (24): В начало « 16 17 18 19 20 21 22 [23] 24 » |
Сейчас эту тему просматривают: 4 (гостей: 4, зарегистрированных: 0) |
« О программе Кибор » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|