![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Reaper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2003 Репутация: нет Всего: нет |
Необходимо загрузить программу, изменить в ней кой-чего
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
круто загнул, почетче задачу опиши
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Ars |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 28.8.2003 Где: Московская обл. Репутация: 2 Всего: 2 |
IMHO, система может и не дать рихтовать код после загрузки exe-шника в память
-------------------- Есть многое на свете, друг Горацио, С чем очень долго можно прое..! |
|||
|
||||
| Reaper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2003 Репутация: нет Всего: нет |
Объясню подробнее.
Есть программа (А) . Она кое-что делает не так как мне бы хотелось. Выход - поменять в ней пару байт. НО! Программа А при запуске хитрым способом считает свою контрольную сумму. Если написать программу Б, которая загрузит программу А в память, изменит в ней эти самые два байта и запустит ее, не изменяя при этом программу А на диске, то все будет ок или так сделать нельзя? |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
можно, сам так делаю. Прада нек-е программы не дадут запустить себя с DebugActiveProcess... Тебе когда (на каком этапе) нужно патчить прогу?
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Это точно можно. Я видел где-то код на asm. Сам не писал такого, но давно собираюсь попробовать. А там, где я видел, это использовалось для запутывания кода, что взломать было сложно. Дизассемблировать такой код нельзя и пошагово выполнять заемучаешься. Там программа была закодирована. Сама себя время от времени раскодировала, перекодировала, переписовала куски с места на место. Короче, жуть.
|
|||
|
||||
| Reaper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2003 Репутация: нет Всего: нет |
На каком этапе патчить сам не знаю. Пока хочу перед запуском.
|
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Если программа запакована, то при старте ее патчить не следует, т.к. в той области будет скорее всего зашифр. код. Если программа показывает окно, то лучше патчить с момента появления окна.
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Reaper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2003 Репутация: нет Всего: нет |
Программа не запакована. IDA дизассемблирует без проблем.
|
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
ну так и патч если она не запакована
единственное что CRC потом подправить нада будет если ты говориш что она его проверяет -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Reaper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2003 Репутация: нет Всего: нет |
Не все так просто. Я же говорил что она его ХИТРЫМ способом считает (HASP).
|
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
отруби заодно проверку CRC... какие проблемы вообще - патчишь, так до конца
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
а вообще в таком случае
да поможет тебе Hasp emulator Mete0 вроде написал да и другие есть дампиш ключь и запускаеш емулятор уже без ключа -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Reaper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2003 Репутация: нет Всего: нет |
Проверку CRС отрубал. Получил unhandled exception. Глубоко ковыряться неохота.
|
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
значение/место в программе, к-е ты хочешь патчить - используются/выполняются сразу при загрузке?
Если нет - загружай процесс, через нек-е время (1-3 сек) патчи его... иначе - проверка контр. суммы идет до момента, когда выполняется код, к-й ты хочешь патчить или после? -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
в случае с хаспами догле и всякими другими кеями
там есть проверка и во время исполднения (в sdk ихнем покрайне мере) так что там отрубать много чего придется -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
если программа дает себя отлаживать (DebugActiveProcess), то можно использовать такую вещь, как отладочные регистры для контроля точки выполнения программы и контроля чтения/записи участка памяти. Особенно, если проверка целостности проводится неоднократно в процессе работы программы... Для начала прогу надо исследовать хорошо, например, для начала - неплохо было бы пропатчить ее руками в SoftIce и проверить - слетит при дальнейшей работе или нет.
В конце концов можно подгрузить свою dll к процессу, и пусть исправляет значения... -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Reaper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2003 Репутация: нет Всего: нет |
В SoftIce патчил - не слетает. А насчет регистров и dll нельязя ли поподробнее. :-)
|
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
Reaper
ну так если не слетает чеб ее нафиг жестко не отпатчить поменять в хекс едиторе все че надо да и пусть себе работает или боевая задача именно патчить в памяти ? -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
у меня с DebugRegisters есть код на Delphi... Давай адрес, вышлю. Там пример, как заморозить переменную в другом процессе.
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Reaper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2003 Репутация: нет Всего: нет |
oleg1973
правлю в хекс едиторе - получаю "один из компонентов программы изменен ...". правлю проверку CRC - получаю "анхандлед эксептион" теперь пытаюсь решить что легче - копать глубже или на лету исправить. Адрес - [email protected] |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |