Перейти к содержанию

Помогите прочитать указатель


Рекомендуемые сообщения

Привет, ребята. Я программирую я давно и тема хакинга была интересна всегда, но никак эта тема мне не поддавалась.
В общем со статическими адресами проблем нет, взял->прочитал->вывел - просто! Но решил все же разобраться с указателями, всё таки они на много чаще встречаются.
Нашел я адрес на ХП героя в Доте 2, потом нашел указатели, потом отсеял 3 раза, в итоге есть рабочий указатель, СЕ показывает верные значения.
-1H9mgqkeI0.jpg

У меня есть VAMemory думаю кто-то да знает что это за библиотека.
С помощью её я и пытался прочитать значения.


-uVzswJFKQA.jpg

 

Это выдавало 0, потом я наткнулся на статью где сказали что указатели всегда будут 0 и нужно идти по другому. Там использовали указатели (*) я пробовал по их методу - получил тоже самое.

Потом я нашел ещё статью где делали так

serverBase = getModuleAddress("server.dll", "dota2");

            var ptr1 = serverBase + 0x021E2CE0;
            var ptr2 = ptr1 + 0x0;
            var ptr3 = ptr2 + 0x128;

            while (true)
            {
                Console.WriteLine(vam.ReadInt32(ptr3));

                Thread.Sleep(100);
                Console.Clear();
            }

но тут тоже 0. Что я делаю не так? помогите, буду очень благодарен.

Ссылка на комментарий
Поделиться на другие сайты

Я не знаю ни одного языка программирования, но судя по скриншоту у тебя игра 64-битная и скорее всего не корректно использовать 

ReadInt32
Ссылка на комментарий
Поделиться на другие сайты

25 минуты назад, BashkaMen сказал:

Что я делаю не так? помогите, буду очень благодарен.

То что ты складываешь 2 значения, а их надо читать. Покажу на примере C++

Цитата

ReadProcessMemory(handle, (pbyte*)serverBase + 0x021E2CE0,&buffer, 4, 0 ) //получаешь 1 уровень базовый адрес  [baseaddr + 0x21E2CE0]

ReadProcessMemory(handle, (pbyte*)buffer, &buffer 4, 0 ) //получаешь 2 уровень указателя [[baseaddr + 0x21E2CE0] + 0x0]

ReadProcessMemory(handle, (pbyte*)buffer + 0x128, &buffer 4, 0 ) //получаешь 3 уровень указателя[[[baseaddr + 0x21E2CE0] + 0x0] + 0x128]

 

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

я читал int32 первое значение было огромным но второе уже 0, спасибо что ответил

Изменено пользователем BashkaMen
Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, BashkaMen сказал:

я читал int32 первое значение было огромным но второе уже 0, спасибо что ответил

первое значение у тебя будет огромным, потому что оно в QDWORD,а ты выводишь наверное int.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, BashkaMen сказал:

судя по коду ты все считываешь в указатель массив байтов?

Обычный буфер где будет хранится твой адрес.

Ссылка на комментарий
Поделиться на другие сайты

Только что, Garik66 сказал:

посмотри урок Coder как раз по твоей теме указатели и на C#, может поможет. 

как раз смотрю и пишу:D Спасибо, вроде иду к целе!!!

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.