![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| alexnef |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 14.4.2010 Репутация: нет Всего: нет |
В .map файле нахожу адрес соответствующий строке начала процедуры, шифрую. Процедура должна выполнятся при нажатии на кнопку - следовательно приложение должно запустится - нажал - выскакивает ошибка. А приложение не запускается - ошибка выскакивает сразу. Подозреваю, что шифруется не тот участок, т. е. адрес в мап файле неверный (или относительный). Как найти реальный адрес процедуры?
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
А теперь ещё раз и по-русски.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Если мне не изменяет память, оно там в формате секция:смещение, ну или на директории увязано. Не конечный VA точно, так что нужно еще в PE порыться чтобы найти относительно чего отсчитывать.
-------------------- Обижено школьников: 8 |
|||
|
||||
| alexnef |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 14.4.2010 Репутация: нет Всего: нет |
bems
Спасибо. Буду искать инфу. |
|||
|
||||
| alexnef |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 14.4.2010 Репутация: нет Всего: нет |
Опытным путем выяснил, что адреса в map файле даны для рантайма. В exe пришлось их искать сигнаурным поиском в hex редакторе. Сигнатуру находил выписывая первые байты функции в отладчике.
Добавлено через 2 минуты и 49 секунд Адрес оказался смещенным на $00000400(магическое число?) дальше указанного в map файле. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Смотри на список секций и на число до двоеточия в адресе функи. Делай выводы. -------------------- Обижено школьников: 8 |
|||
|
||||
| CodeMonkey |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Тебе по имени найти адрес через .map файл, что-ли?
Рекомендую использовать JclDebug.pas из JCL. Там всё есть. Единственное волшебное число там - ModuleCodeOffset = $1000; - смещение секции кода от начала модуля. И то может оно вычисляется. А так - смотрим начало .map-файла: <= D2005
или: >= D2006
0001 - это номера сегментов. 00401000 - смещение. Если там 0000000 - то это смещение от секции кода и надо брать умалчиваемое (base + $1000; base для .exe обычно равна $400000). Ну а далее - смотреть адреса:
0001 - номер сегмента из оглавления в начале .map. Т.е. (D2005-) OemToAnsi = 0001:00005A5C = 00005A5C + 00000000 + $00400000 + $1000 = $00406A5C (D2006+) OemToAnsi = 0001:00005A5C = 00005A5C + 00401000 = $00406A5C $00406A5C - абсолютный адрес начала OemToAnsi в памяти. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||||
|
|||||||
| alexnef |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 14.4.2010 Репутация: нет Всего: нет |
Извиняюсь за некорректно поставленный вопрос. Требовалось найти адрес процедуры в незапущенном exe файле, зашифровать процедуру внешней программой. Map файл показывает адреса процедур во время выполнения. Пока exe не загружен в память эти адреса(в map и фактический в exe) не совпадают.
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
А это как и для чего? Понятно, что речь идёт о своей программе. Аппаратные ключи осваиваем? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |