Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Работа с памятью игры

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

1. Ilya001 - 10 Апреля, 2022 - 10:04:02 - перейти к сообщению
Здравствуйте!
В одной игре искал HP(health points) игрока через CheatEngine, нашёл нужный адрес(HEX) HP,
и как теперь читать значение этого адреса через кибор? С процессами через кибор не работал, и по документации сложновато мне что-то понять.
Адрес HP: 5658A5BDFB0, тип double
Дайте пожалуйста пример в виде кода))
2. Zireael - 10 Апреля, 2022 - 10:36:49 - перейти к сообщению
 Цитата:
Адрес HP: 5658A5BDFB0

Кибор не работает с 64 битными процессами.
 Цитата:
Дайте пожалуйста пример в виде кода

CODE:
int adr = 0x149F4A38; // адрес
win w = window (-1, "l2UnrealWWindowsViewportWindow", -1); // окно
if(w) // если найдено
{
int prc=openprocess(w); // открыть процесс
if(prc) // если открылся
{
char hp[4];
if(readmemory(#hp[0], 4, adr, prc)) // прочитать 4 байта
{
int HP = codhexi(#hp[0], 4); // перевод в int
messagebox(HP);
}
}
else messagebox("Процесс не открылся");
}
else messagebox("Окно не найдено");
3. Ilya001 - 10 Апреля, 2022 - 11:00:53 - перейти к сообщению
 Zireael пишет:
Кибор не работает с 64 битными процессами.

А можно что нибудь предпринять чтобы он работал?
К сожалению игра 64 битный как и OC, и может есть какое нибудь решения?
4. Ilya001 - 13 Апреля, 2022 - 04:15:26 - перейти к сообщению
Нашёл 32 битную игру, там HP тоже в double храниться, как его можно прочитать через кибор?
С вашим кодом ничего не находить кибор, можете дать еще один пример если не сложно?)
Адрес: 4037F128, тип double
5. Kibor - 13 Апреля, 2022 - 04:37:33 - перейти к сообщению
double adr = 0x149F4A38; // адрес
6. Ilya001 - 13 Апреля, 2022 - 04:44:27 - перейти к сообщению
 Kibor пишет:
double adr = 0x149F4A38; // адрес

CODE:
win w = window ("newwind", "window", -1); // окно
double adr = 0x149F4A38; // адрес

if(w) // если найдено
{
int prc=openprocess(w); // открыть процесс
if(prc) // если открылся
{
char hp[4];
if(readmemory(#hp[0], 4, adr, prc)) // прочитать 4 байта
{
int HP = codhexi(#hp[0], 4); // перевод в int
messagebox((HP);
}
}
else messagebox("Процесс не открылся");
}
else messagebox("Окно не найдено");

Возвращает -247483648, это нормально? Адрес хранить в себе цифру без минуса, и значение(в игре) не может быть больше 600 и меньше 0, может в коде я допустил ошибку?
7. Zireael - 13 Апреля, 2022 - 05:14:44 - перейти к сообщению
 Цитата:
HP тоже в double храниться

 Цитата:
int HP = codhexi(#hp[0], 4); // перевод в int

codhexd позволяет перевести шестнадцатеричный hex код в дробное число double (float).
8. Ilya001 - 14 Апреля, 2022 - 10:07:54 - перейти к сообщению
Как из 4037F128 получилось это?
 Kibor пишет:
double adr = 0x149F4A38; // адрес

(Добавление)
 Ilya001 пишет:
Как из 4037F128 получилось это?
 Kibor пишет:
double adr = 0x149F4A38; // адрес

Можете дать ответ?
9. Zireael - 14 Апреля, 2022 - 18:40:13 - перейти к сообщению
 Цитата:
Как из 4037F128 получилось это?
double adr = 0x149F4A38; // адрес

Никак, 0x149F4A38 из моего примера взято.

По байтам посмотрите что читается.
CODE:
int adr = 0x27CB7738; // адрес
win w = window (-1, "l2UnrealWWindowsViewportWindow", -1); // окно
if(w) // если найдено
{
int prc=openprocess(w); // открыть процесс
if(prc) // если открылся
{
char hp[4];
if(readmemory(#hp[0], 4, adr, prc)) // прочитать 4 байта
{
messagebox(formatci(hp[0]));
messagebox(formatci(hp[1]));
messagebox(formatci(hp[2]));
messagebox(formatci(hp[3]));
}
}
else messagebox("Процесс не открылся");
}
else messagebox("Окно не найдено");
10. Ilya001 - 16 Апреля, 2022 - 11:30:00 - перейти к сообщению
 Zireael пишет:
По байтам посмотрите что читается
(для просмотра ссылки Вам необходимо авторизоваться) - вот так)
Что не так?

Powered by ExBB FM 1.0 Final