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

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

 Страниц (24): В начало « 12 13 14 15 [16] 17 18 19 20 » В конец    

> Описание: Работа с памятью процесса. Поиск, чтение, запись в память процесса игры
AdryV
Отправлено: 26 Марта, 2019 - 16:50:56
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




в общем пробуй это и выясняй в чем проблема, скорее всего в адресах
я проверил на своих адресах для игры 32 бит все нормально работает
CODE:
//external(INT, "WideCharToMultiByte", "WideCharToMultiByte", "Kernel32.dll"); //зачем эт надо в тесте?
//
int x, y;//координаты
win wind;//окно
int prc;//процесс
int start_adr=2931312;//4198400(0x00401000) эмм кажись это минимальный статистический адрес
//загрузки любого приложения, все что меньше у меня в игре это чтото типа регистров
//хотя игры бывают разными
char xp[4];
//
textout(0, 0, 20, "наведите курсор на игру и нажмите Ё~", 0);
while(getkeystate(192)!=1)sleep(50);
getmouse(x, y);
wind=getwindow(1, x, y);
textout(0, 0, 20, "Указатель на окно получен = "+ wind.name +" | "+ wind.class, 0);
sleep(1000);
prc=openprocess(wind);
//
activate(wind);
//
messagebox(start_adr);
if(wind>0) {
if(readmemory(#xp[0], 4, start_adr, prc)!=0) {
int ykaz=codhexi(#xp[0], 4);
messagebox(ykaz);
}else messagebox("не считало данные из адреса памяти");
}else messagebox("не нашло окно");

(Отредактировано автором: 26 Марта, 2019 - 16:52:08)

 
 Top
goa
Отправлено: 26 Марта, 2019 - 22:37:06
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 13
Дата рег-ции: Март 2019  
Репутация: 0




ну никак не получается кто знает помогите пожалуйста уже столько дней бьюсь без успешно((
вообщем пытаюсь я найти многоуровневые указатели из шага 8 cheat engine 64x.
В самом CE все находиться и работает а вот кибор ни как не хочет у меня находить значение базового уровня у меня его адрес 1002CBA70 и дальше 4 смещения до нужного значения.
вот скрин

Нажмите для увеличения
 
 Top
konctantin777
Отправлено: 27 Марта, 2019 - 06:30:43
Post Id



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


Покинул форум
Сообщений всего: 1134
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




А что за игра ? (самому попробовать- чтоб лично видеть)
 
 Top
AdryV
Отправлено: 27 Марта, 2019 - 07:14:56
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




 goa пишет:
cheat engine 64x.

в общем ни как так как 64 бит
(Добавление)
а так вообще вот пример

CODE:
int x, y;//координаты
win wind;//окно
int prc;//процесс
int start_adr=6280800;//адрес заменить на свой
char xp[4];
//
textout(0, 0, 20, "наведите курсор на игру и нажмите Ё~", 0);
while(getkeystate(192)!=1)sleep(50);
getmouse(x, y);
wind=getwindow(1, x, y);
textout(0, 0, 20, "Указатель на окно получен = "+ wind.name +" | "+ wind.class, 0);
sleep(1000);
prc=openprocess(wind);
//
activate(wind);
//
messagebox(start_adr);
if(wind>0) {
int ykaz0=rmem(start_adr);
int ykaz1=rmem(ykaz0+12);
int ykaz2=rmem(ykaz1+20);
int ykaz3=rmem(ykaz2);
int znachenie=rmem(ykaz3+24);
messagebox(znachenie);
}
//
function rmem(int adr)
{
if(readmemory(#xp[0], 4, adr, prc)!=0)return codhexi(#xp[0], 4);
return 0;
}


[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
(Добавление)
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
(Добавление)
можно ваще так =)
int znachenie=rmem(rmem(rmem(rmem(rmem(start_adr)+12)+20))+24);
 
 Top
goa
Отправлено: 27 Марта, 2019 - 08:48:35
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 13
Дата рег-ции: Март 2019  
Репутация: 0




как раз проблема в int start_adr у меня он 1002CBA70 что переводя в DEC ==4297898608
что больше 2 147 483 647 нельзя ли использовать массив или long вместо int или еще как нибудь??
 
 Top
Kibor
Отправлено: 27 Марта, 2019 - 08:59:40
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8094
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 goa пишет:
нельзя ли использовать массив или long вместо int или еще как нибудь??

double используйте если адреса большие.
 
 Top
AdryV
Отправлено: 27 Марта, 2019 - 09:00:47
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




CODE:
Int16 -- (-32,768 to +32,767)

Int32 -- (-2,147,483,648 to +2,147,483,647)

Int64 -- (-9,223,372,036,854,775,808 to +9,223,372,036,854,775,807)


как я понял кибор умеет кушать только 32 бит
а ты пытаешься софтом 32 битным(это кибор) анализировать программу 64 бит... но значения просто напросто не вмещаются
CE работает так как он 64 бит
и еще тебе скорее всего надо будет считывать не по 4 байта а по 8

(Отредактировано автором: 27 Марта, 2019 - 09:02:59)

 
 Top
Kibor
Отправлено: 27 Марта, 2019 - 09:06:54
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8094
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 AdryV пишет:
как я понял кибор умеет кушать только 32 бит

Ему без разницы с какого адреса читать.
Просто для переменной адреса надо использовать double
CODE:
double start_adr=4297898608;//1002CBA70
 
 Top
goa
Отправлено: 27 Марта, 2019 - 09:10:58
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 13
Дата рег-ции: Март 2019  
Репутация: 0




CODE:
int x, y;//??????????
win wind;//????
int prc;//???????
double start_adr=4297898608;//????? ???????? ?? ????
char xp[4];
//
textout(0, 0, 20, "???????? ?????? ?? ???? ? ??????? ?~", 0);
while(getkeystate(192)!=1)sleep(50);
getmouse(x, y);
wind=getwindow(1, x, y);
textout(0, 0, 20, "????????? ?? ???? ??????? = "+ wind.name +" | "+ wind.class, 0);
sleep(1000);
prc=openprocess(wind);
//
activate(wind);
//
messagebox(start_adr);
if(wind>0) {
double ykaz0=rmem(start_adr);
double ykaz1=rmem(ykaz0+10);
double ykaz2=rmem(ykaz1+18);
double ykaz3=rmem(ykaz2);
double znachenie=rmem(ykaz3+18);
messagebox(ykaz0);
}
//
function rmem(double adr)
{
if(readmemory(#xp[0], 4, adr, prc)!=0)return codhexi(#xp[0], 4);
return 0;
}


все ровно не находит
 
 Top
Kibor
Отправлено: 27 Марта, 2019 - 09:23:45
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8094
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 goa пишет:
все ровно не находит

Вы уже сами поняли что адрес не влазит в 4 байта. Так почему вы его считываете с 4 байт?
Может считайте с 8? И преобразуйте эти 8 байт в double как то.
 
 Top
Страниц (24): В начало « 12 13 14 15 [16] 17 18 19 20 » В конец
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by