Здравствуйте!
В одной игре искал HP(health points) игрока через CheatEngine, нашёл нужный адрес(HEX) HP,
и как теперь читать значение этого адреса через кибор? С процессами через кибор не работал, и по документации сложновато мне что-то понять.
Адрес HP: 5658A5BDFB0, тип double
Дайте пожалуйста пример в виде кода))
1. Ilya001 - 10 Апреля, 2022 - 10:04:02 - перейти к сообщению
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("Окно не найдено");
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
С вашим кодом ничего не находить кибор, можете дать еще один пример если не сложно?)
Адрес: 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("Окно не найдено");
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; // адрес
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("Окно не найдено");
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 пишет:
По байтам посмотрите что читается
(для просмотра ссылки Вам необходимо авторизоваться) - вот так)Что не так?