eXeL@B —› Софт, инструменты —› Посоветуйте ПО для определения адреса TLabel в чужом ПО |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 19 апреля 2014 17:53 · Личное сообщение · #1 Здравствуйте! Посоветуйте инструмент (программу), которая позволит осуществить следующее: В чужом ПО, написанном на Delphi, мне нужно получить текст метки. Я бы мог это сделать с помощью ReadProcessMemory, зная, что это TLabel и зная его смещение. Чем определить класс я уже нашел (но пока не определил, доступ к жертве в понедельник): 1) rtdoi (Run time Delphi / C++ Builder forms object inspector 2) Delphi Application Peeper обе работают по принципу щелкнул мышью по контролу - получил инфу. А нет ли такой программы, чтобы получить и адрес этого контрола ? Желательно чтоб работала без инсталляции. В принципе давно использую по мелочам WinHex версии 15.4. Может с помощью него это возможно ? Если да, то подскажите как. А то я с его помощью даже не смог найти в памяти приложения текст нужной метки. Также, пробовал декомпилировать программу в DeDe - тоже не нашел. Или может посоветуйте другие способы ? Спасибо. |
|
Создано: 20 апреля 2014 18:34 · Поправил: TryAga1n · Личное сообщение · #2 Не знаю, может поможет В памяти, описание лейбла выглядит следующим образом: Начиная снизу-вверх, можно получить все его параметры. Нас интересует Caption, у него значение 3 байта, но как понял я, это 2 параметра Первый параметр - 020D, второй параметр - 07. Далее, встаем на адрес второго байта(0D) первого параметра(020D), этим адресом является 01C525E9 и начиная от него отнимаем первый параметр(020D). 01C525E9-020D=1C523DC - данный адрес - это начало памяти нашего лейбла(на самом деле не так. я не знаю как правильно назвать). Следующий шаг. К началу памяти 1C523DC прибавляем 0С(вроде константа), байт по получившемуся адресу (01C523DC) = A8. Это смещение, по которому находится текст лейбла в данный момент. Получаем следующую математику: 01C525E9-020D+0С+A8=1C52490 p.s.: гонял на приатаченном выше приложении, в других может иначе все...лень ковыряться) |
|
Создано: 20 апреля 2014 20:09 · Личное сообщение · #3 |
|
Создано: 20 апреля 2014 20:16 · Личное сообщение · #4 |
|
Создано: 20 апреля 2014 20:18 · Личное сообщение · #5 |
|
Создано: 20 апреля 2014 20:38 · Личное сообщение · #6 |
|
Создано: 21 апреля 2014 00:49 · Поправил: travnik · Личное сообщение · #7 подскажите, пож-ста, как воспроизвести вашу картинку вторую. установил OllyDbg 1.10 взял тут ( http://exelab.ru/download.php?action=get&n=MzYw ) открыл ваш Project1.exe, окно CPU, если это оно на картинке, выглядит не так красиво. в колонке ASCII ни одного читаемого слова не увидел, может в шрифтах проблема. Наверно надо потратить время, смотрю на этом форуме программа распространенная. TryAga1n пишет: Hex-редактор в твоем вопросе совершенно не поможет WinHex позволяет просматривать и редактировать содержимое виртуальной памяти процессов (кнопочка Open RAM) Разве этого не достаточно ? В WinHex вижу участок с картинки, только адреса в колонке слева другие. Впрочем, в OllyDbg тоже. |
|
Создано: 21 апреля 2014 05:33 · Личное сообщение · #8 |
|
Создано: 21 апреля 2014 15:11 · Личное сообщение · #9 1. Ищем код, создающий форму на которой лежит TLabel Code:
2. Смотрим в RTTI класса формы, где лежит объект TLabel Code:
3. Нужный TLabel по смещению 0x2F8 от начала объекта формы Code:
4. Идем по ссылкам на созданный объект формы (pForm1) и отсчитываем от начала объекта 0x2F8 байт Code:
5. Идем по ссылке на созданный компонент TLabel Code:
6. Считаем смещение на переменную, хранящую текстовую строку Code:
7. Автоматизируем процесс 8. ??? 9. PROFIT!!!11 | Сообщение посчитали полезным: travnik |
|
Создано: 23 апреля 2014 14:51 · Поправил: travnik · Личное сообщение · #10 rmn спасибо за такой подробный ответ, правда я опять не знаю какой программой вы получили такой код ? мне нужно получить лишь смещение TLabel (п.3), остальное трудностей не вызывает. Кстати, я вчера решил задачу, а именно нашел переменную, значение которой присваивается метке Я и раньше ее находил, но там был юникод а у меня Delphi 7 не юникодная и думал просто мусор, потом прочитал как юникод и о чудо ! БОЛЬШОЕ СПАСИБО всем кто помогал Но тему не закрываю, ради интереса хочу глубже разобраться в данном вопросе. |
|
Создано: 23 апреля 2014 15:21 · Личное сообщение · #11 travnik Закрой сам тему и не позорься. После вопроса к скринам TryAga1n , я задумался, что за бред, такое в днк должно быть и как ты ольку не модифицируй это видно в любом скрине, что это оттуда. travnik пишет: WinHex позволяет просматривать и редактировать содержимое виртуальной памяти процессов (кнопочка Open RAM) Разве этого не достаточно ? В WinHex вижу участок с картинки, только адреса в колонке слева другие. Впрочем, в OllyDbg тоже. Это убило! travnik пишет: спасибо за такой подробный ответ, правда я опять не знаю какой программой вы получили такой код ? А это даже поразило | Сообщение посчитали полезным: Jaa, GroundHog |
|
Создано: 23 апреля 2014 15:49 · Личное сообщение · #12 |
|
Создано: 23 апреля 2014 16:24 · Поправил: Vovan666 · Личное сообщение · #13 |
|
Создано: 23 апреля 2014 17:29 · Личное сообщение · #14 Vovan666 пишет: Ты понятия не имеешь, что такое диззасемблеры и отладчики всё верно ! Vovan666 пишет: ты не можешь даже на дельфи показать зачем ? мне не нужна помощь в делфи, что мне надо было и зачем описано вначале. Vovan666 пишет: Как ты собрался что-то инжектить куда-то? с чего ты это взял ? не надо фантазировать, не собирался вовсе. |
|
Создано: 23 апреля 2014 23:45 · Личное сообщение · #15 |
|
Создано: 24 апреля 2014 22:43 · Личное сообщение · #16 |
|
Создано: 24 апреля 2014 23:15 · Личное сообщение · #17 |
<< . 1 . 2 . |
eXeL@B —› Софт, инструменты —› Посоветуйте ПО для определения адреса TLabel в чужом ПО |