Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (2): [1] 2 »   

> Без описания
Arimor
Отправлено: 18 Декабря, 2020 - 13:03:54
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 125
Дата рег-ции: Сент. 2020  
Репутация: 1




Как искать значения в памяти и заменять, есть на форуме в видео инструкции. Но вот столкнулся с проблемой, что игра блокирует СЕ и АртМоней. А вот кибор, отлично ищет значения. Тема сложная и много чего не понятно. Может кто поделиться как вы отсеиваете значения которые нашли с помощью кибора?
 
 Top
Arimor
Отправлено: 21 Декабря, 2020 - 23:32:59
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 125
Дата рег-ции: Сент. 2020  
Репутация: 1




Как сравнить данные в переменной a с переменной b и удалить всё, что не совпало? И поместить в переменную c ?
 
 Top
Zireael
Отправлено: 21 Декабря, 2020 - 23:55:10
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4399
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Как сравнить данные в переменной a с переменной b и удалить всё, что не совпало?

Тип переменных и что в них записано?
 
 Top
Arimor
Отправлено: 22 Декабря, 2020 - 02:43:18
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 125
Дата рег-ции: Сент. 2020  
Репутация: 1




Я использую этот код с форума, чтоб найти нужные значения, они добавляются в блокнот

меняю данные тут codhex(1063675494, #poisk[0]);

CODE:
external(INT, "wsprintf", "wsprintfA", "User32.dll" );
win wind=window ("GemsofWar", "UnityWndClass", -1);

int prc=openprocess(wind);
int adr[1000];
char a[1024];

char poisk[4];
codhex(1063675494, #poisk[0]);

new char poiskmask[sizearray(poisk)];

for (int n=0; n<sizearray(poiskmask); n++)poiskmask[n]=1;

int count=findmemorymask (sizearray(adr), #poisk[0], sizearray(poisk), #adr[0], 0, #poiskmask[0], 100, prc);

//int count=findmemory (1000, #poisk[0], sizearray(poisk), #adr[0], 0, prc);//Ищем 8 байт ( числа 1032983058 одно за другим)


messagebox("Найдено адресов: "+format(count));

/*
char zz[1];
codhex(255, #zz[0]);
writememory(#zz[0], 1, adr[0], prc);
*/



if (fopen ("c:\5.txt", "w")!=0)
{
for(int i=0; i<count; i++)
{
wsprintf(address(#a[0]), "%x", adr[i]); // перевод в hex
//messagebox(format(i)+", "+format(adr[i])+", "+format(#a[0]));
fwrite(format(i)+", "+format(adr[i])+", "+format(#a[0]));
fwrite(ENDL);//записываем в файл перевод строки
}
fclose();//закрываем файл
}
start("c:\5.txt");
 
 Top
Zireael
Отправлено: 22 Декабря, 2020 - 08:27:55
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4399
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Я использую этот код с форума, чтоб найти нужные значения, они добавляются в блокнот

Как это соотносится с вопросом про сравнение переменных? Этот код найдёт адреса, тут нет переменных a и b.
findmemorymask для поиска числа не нужен, findmemory подойдёт. Часть адресов можно сразу отсеять, нужно только адреса кратные 4.
 
 Top
Arimor
Отправлено: 22 Декабря, 2020 - 11:19:15
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 125
Дата рег-ции: Сент. 2020  
Репутация: 1




 Zireael пишет:
Этот код найдёт адреса, тут нет переменных a и b.

я думал из текстового файла c:\5.txt поместить в переменную a , потом сделать ещё раз поиск, поместить данные в другу переменную b, сравнить и удалить всё что не совпало. Таким образом и делать отсев.
 
 Top
Zireael
Отправлено: 22 Декабря, 2020 - 12:03:34
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4399
Дата рег-ции: Нояб. 2017  
Репутация: 580




Текстовый файл вообще не нужен. Надо сравнивать 2 массива. Делаем первый поиск, получили массив с адресами, что-то делаем в игре чтобы искомое значение изменилось, делаем второй поиск получили второй массив. Берем первый адрес из первого массива ищем его втором, если нашёлся оставляем, если нет удаляем. Удаления элементов и сдвиг остальных в кибор нет, так что просто пишем 0 вместо адреса. Берем второй адрес из первого массива, сравниваем и т. д. до последнего элемента. В итоге в первом массиве останутся 0 и адреса, которые были при первом и втором поиске.
Это не быстро так что без длл не вариант.
 
 Top
Arimor
Отправлено: 22 Декабря, 2020 - 13:40:16
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 125
Дата рег-ции: Сент. 2020  
Репутация: 1




 Zireael пишет:
Это не быстро так что без длл не вариант.

А разве текстовые файлы не быстрее сравнить?
 
 Top
Zireael
Отправлено: 22 Декабря, 2020 - 13:48:37
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4399
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
А разве текстовые файлы не быстрее сравнить?

Нет. Сравнивать придётся точно также, брать первую строку искать её во втором файле и т. д.
 
 Top
Arimor
Отправлено: 22 Декабря, 2020 - 16:30:16
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 125
Дата рег-ции: Сент. 2020  
Репутация: 1




Zireael , на любом популярном языке программирования ддл пишется? Или лучше всё же на с++ делать?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by