Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+6 невидимых)

 eXeL@B —› Основной форум —› OllyDbg не сохраняет брейки в самомодифицирующихся
Посл.ответ Сообщение

Ранг: 2.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 января 2005 02:31
· Личное сообщение · #1

Ставлю я брейкпоинт (или комментарий к коду) внутри некой самораспаковывающейся программы. Все хорошо работает, но Оля херит все брейкпонты и комменты при повторном запуске программы, т.к. она видит - в момент загрузки приложения брейкпонты ссылаются на изменившиеся инструкции. Может есть настройка, чтобы Оля не херила мне брейки и либо ловила их только по адресам (адреса брейков не меняются при повторных запусках), либо пыталась установить через определенные промеждутки времени? Или может внешние утилиты/плагины есть, чтобы заставлять Олю восстанавливать брейки? Ну, я понимаю конечно, что нужно там вначале распаковать траляляля, потом ломать. Но нет времени, чтобы тратить его на распаковку.



Ранг: 19.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 31 января 2005 04:12
· Личное сообщение · #2

ставь на адрес хардваре бряку
breakpoint->hardware,on execution



Ранг: 2.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 января 2005 05:17
· Личное сообщение · #3

Как-то не работает он..

До этого кода руками дотрейсить могу. Если сразу при запуске оли пойти поставить брейк и нажать F9 - сработает. А если ставить хардварный - не работает. В меню Debug->Hardware breakpoints имеется указанный мной адрес с пометкой Execute.

В неупакованном коде самого начала приложения тестовый хардварный брейкпоинт работает.

Хотя теперь хоть из менюшки Debug->Hardware breakpoints можно ткнуть мышью и быстро перейти к нужному месту.

У меня программа упакована Аспром. С exeшника Stripper_v211rc2 снимает Аспр хорошо, а на всех DLL виснет во время исправления таблицы импорта. Руками доделать не выходит. Брейкпоинт пытаюсь ставить как раз в DLL. Еще сама программа на Кларионе написана и нужно извращаться, читая
эту ахинею...



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 31 января 2005 06:26
· Личное сообщение · #4

[Oleg]
ASPR брасывает Hardware breakpoints на то он и протектор, пиши скрипт

-----
Подписи - ЗЛО! Нужно убирать!




Ранг: 2.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 января 2005 06:45
· Личное сообщение · #5

неужели никому никогда не хотелось, чтобы Оля сама таки сохраняла брейки/комментарии в самомодифицирующемся коде...




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 31 января 2005 12:26
· Личное сообщение · #6

> неужели никому никогда не хотелось, чтобы Оля сама таки сохраняла брейки/комментарии в самомодифицирующемся коде

И чтобы сама крак генерила, надо было бы только копирайты вколотить




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 31 января 2005 19:44
· Личное сообщение · #7

вообще-то олли на "остановках" восстанавливает установленные hw бряки (если их стёр протектор), но хорошего в этом мало... т.к. это может быть использовано для обнаружения олли.



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 февраля 2005 00:49
· Личное сообщение · #8

Ты папку с Олей трогал? Проверь конфиг,туда ли там адрес указывает если нет,то вот она и проблема,всего-тоВ этом случае сообщение при запуске выкидывается



Ранг: 2.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 февраля 2005 08:06
· Личное сообщение · #9

У меня ехешник приложение распакован. Так же имеется десяток DLL от языка программирования (брейки сохраняются) и несколько DLL упакованных Аспротектом (брейки херятся).

С хардварными брейками разобрался. В настройках Оли они естествено сохраняются. Брейк в упакованной DLL на выполненние не работает. Брейк на память в упакованной DLL работает, только если код, который пытается читать/писать память, находится вне упакованной DLL. Это весьма приятно, т.к. все переменные пишутся из системных библиотек языка программирования. Ну, теперь понятно, в некоторых случах их Аспр стирает, но делает это не полностью.

С Олиными брейками менее понятно. Итак, во время ПЕРЕЗАГРУЗКИ брейки в упакованных DLL пропадают. Но если загрузить приложение и не выполнять ни одной команды (оно встает на EntryPoint), то можно установить обычный брейк по F2 куда угодно и он сработает. Я собственно так и вынужден делать:
1) нажать "Список всех функций всех модулей", поиск своей по первым буквам названия, установка по F2 в этом списке.
2) окошки с дапмами памяти и даже места установки курсора при перезапуске не исчезают, поэтому можно нажать Ctrl+TAB и быстро восстановить брейки на места памяти.
Почему надо заниматься таким маразмом? Неужели нельзя это делать автоматически?

Паки с Олей не трогал. Оладка неупакованных программ вопросов не вызывает. Файлы *.udd от модулей пишутся и сохраняются в текущем каталоге оли. Но с упакованными DLL проблема - оля их не воспринимает по время перезапуска приложения. А при окончании отладки и вовсе стирает. Ну, это-то понятно, раз нет никаких изменений, файл нужно убрать.



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 01 февраля 2005 11:44
· Личное сообщение · #10

[Oleg] пишет:
Файлы *.udd от модулей пишутся и сохраняются в текущем каталоге оли.

Вот-вот, дело может быть как раз в них, сделай копию файла на всякий случай, потом удали файлы "отлаживаемаяПрограмма.udd" поставь бряки, и выйди. Возможно проблема исчезнет

-----
Подписи - ЗЛО! Нужно убирать!




Ранг: 2.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 февраля 2005 22:24
· Личное сообщение · #11

Не помогло. Ладно, в конце концов для "моей" программы важно не утонуть в мусорной свалке кода от Клариона... Никак не могу найти место преобразования id компа в номер серийника.


 eXeL@B —› Основной форум —› OllyDbg не сохраняет брейки в самомодифицирующихся
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати