Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Multi level pointer

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 23.01.2012, 16:21   #1
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Multi level pointer

Жуковцы, кто сталкивался с многоуровневыми поинтерами?
Нашел бейс адрес и 3 оффсета, в CE работает отлично, но как перенести данные адреса в C# чето не догоняю.
________________
Talk is cheap. Show me the code
— Linus Torvalds
  Ответить с цитированием
Старый 23.01.2012, 16:36   #2
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию Re: Multi level pointer

Если под многоуровневыми указателями подразумеваются многоуровневые указатели, то вероятно:
1. Читаешь по первому (статичному) адресу (очевидно базовый адрес + 1й оффсет) указатель на второй поинтер.
2. Читаешь по полученному адресу (если таковое требуется - смещаешь (оффсет) этот указатель) следующий указатель
3. Повторяешь п.2 до тех пор пока не получишь указатель на нужные данные
4. Извращаешься как душе угодно
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
  Ответить с цитированием
Старый 23.01.2012, 17:21   #3
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: Multi level pointer

Да это я вроде бы как понимаю, но почему то результата нет...

Код:
/// <summary>
        /// Читаем Int'овое значение из памяти приложения 
        /// с указанным оффсетом
        /// </summary>
        private Int32 HighLevelReadIntFromMemory(IntPtr handle, int offset)
        {
            int temp = 0;
            temp = LowLevelReadIntFromMemory(handle, baseAddress); 
            temp = LowLevelReadIntFromMemory(handle, temp + 0x002302E8); //pointer
            temp = LowLevelReadIntFromMemory(handle, temp + 0x698); //offset 2
            temp = LowLevelReadIntFromMemory(handle, temp + 0x734); //offset 1
            temp = LowLevelReadIntFromMemory(handle, temp + offset); offset 0
            return temp;
        }

        /// <summary>
        /// Читаем из памяти приложения массив байт по указанному адресу
        /// и возвращаем целочисленное его представление
        /// </summary>
        private Int32 LowLevelReadIntFromMemory(IntPtr handle, int address)
        {
            var buffer = new byte[4];
            IntPtr read;
            ReadProcessMemory(handle, (IntPtr)address, buffer, 4, out read);
            return (int)BitConverter.ToUInt32(buffer, 0);
        }
Так почему то не работает

Добавлено через 52 минуты
скачал библиотеку с [Ссылки могут видеть только зарегистрированные пользователи. ]
Код:
public void ReadMemory()
        {
            Memory editor = new Memory();

            editor.OpenProcess("l2.bin");

            editor.GetModules();

            foreach (var module in editor.GetModules())
            {
                listBox1.Items.Add(module.ToString());
            }

            int baseaddress = editor.BaseAddress("l2.bin");
            int basemoduleaddress = editor.BaseAddress("Core.dll");

            int moduleaddress = basemoduleaddress + 0x002302E8;

            int[] _hpOffset = { 0x698, 0x734, 0x2F0 };

            var HP = editor.ReadInt(moduleaddress, _hpOffset);

            label1.Text = "HP: " + Convert.ToString(HP);
        }
тоже не получается

Добавлено через 1 час 7 минут
Странно, ничего не менял последний вариант стал работать О_о
________________
Talk is cheap. Show me the code
— Linus Torvalds

Последний раз редактировалось Yukikaze; 23.01.2012 в 18:29. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] Map Pointer /BES\ Боты, скрипты и прочий софт для Perfect World 18 30.07.2011 12:53
Pointer Для Mail.ru Бильярдов FoomA Игры Mail.ru 0 27.05.2011 14:14
ask : Find the pointer TXB-Hero Общение и обсуждение, архив Point Blank 0 26.09.2010 13:18

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 17:59.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net