Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+6 невидимых) |
eXeL@B —› Основной форум —› OllyDbg не сохраняет брейки в самомодифицирующихся |
Посл.ответ | Сообщение |
|
Создано: 31 января 2005 02:31 · Личное сообщение · #1 Ставлю я брейкпоинт (или комментарий к коду) внутри некой самораспаковывающейся программы. Все хорошо работает, но Оля херит все брейкпонты и комменты при повторном запуске программы, т.к. она видит - в момент загрузки приложения брейкпонты ссылаются на изменившиеся инструкции. Может есть настройка, чтобы Оля не херила мне брейки и либо ловила их только по адресам (адреса брейков не меняются при повторных запусках), либо пыталась установить через определенные промеждутки времени? Или может внешние утилиты/плагины есть, чтобы заставлять Олю восстанавливать брейки? Ну, я понимаю конечно, что нужно там вначале распаковать траляляля, потом ломать. Но нет времени, чтобы тратить его на распаковку. |
|
Создано: 31 января 2005 04:12 · Личное сообщение · #2 |
|
Создано: 31 января 2005 05:17 · Личное сообщение · #3 Как-то не работает он.. До этого кода руками дотрейсить могу. Если сразу при запуске оли пойти поставить брейк и нажать F9 - сработает. А если ставить хардварный - не работает. В меню Debug->Hardware breakpoints имеется указанный мной адрес с пометкой Execute. В неупакованном коде самого начала приложения тестовый хардварный брейкпоинт работает. Хотя теперь хоть из менюшки Debug->Hardware breakpoints можно ткнуть мышью и быстро перейти к нужному месту. У меня программа упакована Аспром. С exeшника Stripper_v211rc2 снимает Аспр хорошо, а на всех DLL виснет во время исправления таблицы импорта. Руками доделать не выходит. Брейкпоинт пытаюсь ставить как раз в DLL. Еще сама программа на Кларионе написана и нужно извращаться, читая эту ахинею... |
|
Создано: 31 января 2005 06:26 · Личное сообщение · #4 |
|
Создано: 31 января 2005 06:45 · Личное сообщение · #5 |
|
Создано: 31 января 2005 12:26 · Личное сообщение · #6 |
|
Создано: 31 января 2005 19:44 · Личное сообщение · #7 |
|
Создано: 01 февраля 2005 00:49 · Личное сообщение · #8 |
|
Создано: 01 февраля 2005 08:06 · Личное сообщение · #9 У меня ехешник приложение распакован. Так же имеется десяток DLL от языка программирования (брейки сохраняются) и несколько DLL упакованных Аспротектом (брейки херятся). С хардварными брейками разобрался. В настройках Оли они естествено сохраняются. Брейк в упакованной DLL на выполненние не работает. Брейк на память в упакованной DLL работает, только если код, который пытается читать/писать память, находится вне упакованной DLL. Это весьма приятно, т.к. все переменные пишутся из системных библиотек языка программирования. Ну, теперь понятно, в некоторых случах их Аспр стирает, но делает это не полностью. С Олиными брейками менее понятно. Итак, во время ПЕРЕЗАГРУЗКИ брейки в упакованных DLL пропадают. Но если загрузить приложение и не выполнять ни одной команды (оно встает на EntryPoint), то можно установить обычный брейк по F2 куда угодно и он сработает. Я собственно так и вынужден делать: 1) нажать "Список всех функций всех модулей", поиск своей по первым буквам названия, установка по F2 в этом списке. 2) окошки с дапмами памяти и даже места установки курсора при перезапуске не исчезают, поэтому можно нажать Ctrl+TAB и быстро восстановить брейки на места памяти. Почему надо заниматься таким маразмом? Неужели нельзя это делать автоматически? Паки с Олей не трогал. Оладка неупакованных программ вопросов не вызывает. Файлы *.udd от модулей пишутся и сохраняются в текущем каталоге оли. Но с упакованными DLL проблема - оля их не воспринимает по время перезапуска приложения. А при окончании отладки и вовсе стирает. Ну, это-то понятно, раз нет никаких изменений, файл нужно убрать. |
|
Создано: 01 февраля 2005 11:44 · Личное сообщение · #10 |
|
Создано: 01 февраля 2005 22:24 · Личное сообщение · #11 |
eXeL@B —› Основной форум —› OllyDbg не сохраняет брейки в самомодифицирующихся |