|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
|
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
Во первых: Спасибо. Вы, ну, ооооочень сильно помогли. Писал на форуме и не надеялся что ктото поможет.
Во вторых, хотел узнать как я могу вас отблагодарить? И еще .. хочу разобраться полностью в вашем коде. Откуда вы взяли эти смещения, олькой вытягивали?: const ArrFieldOffset = 752; и oldvmtSelfPtr = -88; oldvmtClassName = -56; oldvmtInstanceSize = -52; А вообще, не хотел наглеть, но мне еще нужны данные из компонента TAngularMetter «ТАЙМЕР». Там сейчас значения "--s" и меняются уже при работе железа, отсчитывается время в обратном порядке. Думал заняться этим компонентом как то на досуге. |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
"спасибо" достаточно да, вытаскивал дебагером
эти константы объявлены в System.pas только называются без слова old они иногда изменяются между версиями дельфи и соответственно в моей версии значения уже другие. поэтому я и приписал туда old чтение данных из VMT класса я использую только для уверенности что я попал куда нужно, так что можно и их убрать Добавлено через 9 минут и 4 секунды ок, посмотрю на таймер -------------------- Обижено школьников: 8 |
|||
|
||||
bems |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
проверь на железе
-------------------- Обижено школьников: 8 |
|||
|
||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
Извиняюсь что сразу не ответил, срочно лепил программу в кучу и разбирался в Вашем коде.
У меня просто слов нету, это шедевр, почти универсальный метод чтения подобных компонентов. Компонент TAngularMetter прочитался с первого раза. Порвали как тузик грелку. Я сомневаюсь что смог бы такое написать. Исчезла привязка к версии программы, все на поиске полей компонента. Я так понял что в FindWinControl(TopWnd.Wnd, AngularMetterClassName, 0), 0 - это порядковый номер компонента. Не понял с процедурой ReadBoolean, что она проверяет - FValueClear активность компонента TAngularMetter? Как Вы узнали с каких полей (FVolumeMeasured, FValueClear, FValuePos) читать, делали запись в память по адресу? Посоветуйте пож. что почитать, по поводу структуры (архитектуры) памяти, и вообще о том как Вы находите эти смещения. Потому что мои познания по работе с памятью сводится к отсеву на подобие артмани и разной мелочи. |
|||
|
||||
bems |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
среди published-свойств компонента я нашел свойство ValueVar: Variant у которого есть геттер и сеттер. с помощью Иды я заглянул в геттер и увидел что он обращается к двум полям. сначала проверяет равен ли байт нулю и если равен то делает что-то с другим полем, рассматривая его как Double. я записал смещения этих полей и получил имена с помощью процедуры DumpFields. и действительно одно оказалось Boolean а другое Double. Что касается FVolumeMeasured, то я тоже сначала получил смещение в отладчике/дизассемблере, но уже не помню как я на него натолкнулся тогда.
-------------------- Обижено школьников: 8 |
||||
|
|||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
...
Это сообщение отредактировал(а) bikovrm - 22.10.2018, 20:16 |
|||
|
||||
bikovrm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.10.2010 Репутация: нет Всего: нет |
Пожалуйста, не могли бы Вы помочь мне ещё раз.
Нужно прочитать TCategoryButtons, в котором количество строк может быть разным. Уже задолбался в нём ковыряться. прога: В проге нужно "открыть тест-план F9", -> закладка "пользовательский тест-план" и открыть какой нибуть. В компоненте TCategoryButtons появится список тестов который и нужно прочитать. ------------------ Если читать Вашим методом, то можно получить список полей:
Кинув на форму компонент CategoryButtons1, посмотрел что поля нужно добавлять в "Categories -> (TButtonCategories)". В прочитанных выше полях это скорее всего "FButtonCategories : TButtonCategories @ 760". А дальше не могу найти смещение. Пробовал также найти эти поля через "указатели на указатели" (как в артмани или Cheat Engine), но именно в этом объекте некоторые строки через время все равно теряются, меняется смещение. Нашаманьте пож. ещё раз Это сообщение отредактировал(а) bikovrm - 25.10.2018, 10:21 |
|||
|
||||
STest69 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 24.1.2020 Репутация: нет Всего: нет |
||||
|
||||
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |