Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как поставить бряк с условием на секцию дампа в Olly

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Взлом программ] >> Как поставить бряк с условием на секцию дампа в Olly
Имя
Сообщение << Старые топики   Новые топики >>
Как поставить бряк с условием на секцию дампа в Olly - 2008-09-03 05:14:43.796666   
tekton

Сообщений: 43
Оценки: 0
Присоединился: 2008-01-01 22:14:35.083333
Как поставить бряк с условием на секцию дампа в Olly? Чтобы скажем, при совпадении определенных байт в дампе прога остановилась ?

Программа использует зашифрованые, покрептованые строки, эти строки раскадироваются и загружаются динамически, в уникоде.
Прога написана на VB. Регится через нет. Триал 30 дней. При запуске наг.
Я в дампе нашел адреса когда загружаются строки L.i.c.e.n.s.e.d. .t.o. и
U.n.l.i.c.e.n.s.e.d. .3.0. .d.a.y. .t.r.i.a.l.. Проблемма еще в том, что все сторки загружаются почти на одном и том же адресе, в памяти не хранятся. Сразу после использования опять динамически криптуются.
Бряк на rtcMsgBox не помогает.

Что посоветуете?8|

Вот прямая ссылка на прогу: Vopt См. здесь Вес 3.43 Мб.

Внимание! Мне не надо просто сломать эту прогу, так бы я не парился, а скачал крек с нета! Мне надо понять как быть в подобных ситуациях, для опыта! Поэтому прошу не писать типа: "не парься, скачай с нета!" Или, "вот я сломал эту прогу, на возьми! А какя это сделал нескажу"…
Заранее спасибо.
Post #: 1
RE: Как поставить бряк с условием на секцию дампа в Olly - 2008-09-03 11:22:30.163333   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
rtcMessageBox - это бейсиковский аналог MessageBox, зачем на него бряк ставить?

Вообще, в OllyDbg есть hardware(read/write/execute) и memory (read/write) брикпоинты. Существуют модификации с разделением memory бряков на read и execute.

Программа выделяет кусок памяти под буфер для временного хранения строк и копирует туда периодически нужные строки, после использования копирует другие затирая старые. Строки не криптуются: не можешь их найти в экзешнике, потому что их там нет. Программа мультиязычна, строковые константы хранятся в ini-файлах.

Ты ничего не написал об антиотладке: антиотладочный код в Бейсике, без ассемблерных вставок, всё штатными функциями!!! Лечится легко: запускаешь программу в отладчике, после исключения смотришь ближайший возврат в модуль Vopt, первую инструкцию полученной функции меняешь на "ret 4".

Писал, что нашёл адреса откуда загружаются строки, там есть условный переход:

004FBC9C&nbsp;&nbsp;&nbsp; .&nbsp; 833D 30435100 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP DWORD PTR DS:[514330],0
004FBCA3&nbsp;&nbsp;&nbsp; .&nbsp; 0F84 B2010000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JE Vopt.004FBE5B

Переменная указывает, зарегестрирована ли прорамма: 0 -незарег.; 1 - зарег.. Посмотри где, когда и при каких условиях она обнуляется. Дальше дело техники.

Удачи.


Post #: 2
RE: Как поставить бряк с условием на секцию дампа в Olly - 2008-09-03 15:58:28.223333   
tekton

Сообщений: 43
Оценки: 0
Присоединился: 2008-01-01 22:14:35.083333
Рикардо Нарваха в "Введение в крэкинг с нуля, используя OllyDbg - Глава 26" пишет:

"Закрываем наг-окошко, которое похоже на MessageBoxA, хотя в Visual Basic’е этому соответствует API-функция rtcMsgBox. Установим на неё BP". Эта глава посвящена VB.

И в сборнике кряк ми от AttilhaZ при рассматрении как убрать наг, стоит таже функция.

Да, насчёт загрузки строк я тормознул [:(]

Ты пишешь: "Ты ничего не написал об антиотладке…" Ой, да! Просто у меня Olly пропатченая, поэтому тоже не заметил.

С VB столкнулся в первые.

Прошлая прога, которую смотрел была написана на Microsoft Visual C++ , тоже выдавала наг при загрузке. Была упакована UPX. Потренировался заинлайнить. Нашёл место откуда вызывался наг и Обнулил EAX.
В Этой тоже пытался поймать наг! Не получилось [:(].

Обьясни пожалуйста, как поймать наг в этой проге?
Спасибо!
Post #: 3
RE: Как поставить бряк с условием на секцию дампа в Olly - 2008-09-03 16:41:50.180000   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
quote:

"Закрываем наг-окошко, которое похоже на MessageBoxA


Бряк на rtcMessageBox ставят, когда используется MessageBox. Вообще, функций создания окна много, поэтому, чтобы не парится, я использую универсальный способ: ставлю бряк на ShowWindow. В независимости от компилятора и какая бы функция не использовалась, она в итоге вызовет ShowWindow.

Я не так крут, как Рикардо Нарваха, чтобы использовать только OllyDbg для поиска событий форм. Если программа написана на VB, я пользуюсь "VB Decompiler", для Delphi - "DElphi DEcompiler".

Post #: 4
RE: Как поставить бряк с условием на секцию дампа в Olly - 2008-09-03 23:40:26.436666   
tekton

Сообщений: 43
Оценки: 0
Присоединился: 2008-01-01 22:14:35.083333
Поставил Bp ShowWindow, вывалился в User32, потом поднимался по процедурам Ctrl+K, Попал в MSVBVM60 и дальше по этой библиотеке, поднялся аж до второй комманды после Entry point-0040AA01 . E8 EEFFFFFF CALL &lt;JMP.&MSVBVM60.#100&gt;8|
Расскажи как ты нашел адреса:
004FBC9C . 833D 30435100 00 CMP DWORD PTR DS:[514330],0 004FBCA3 . 0F84 B2010000 JE Vopt.004FBE5B
Строки которые я находил были в дампе.

И еще вопрос как отличить по коду в системной библиотеке ты находишся или нет? Как я понимаю код программы начинаются обычно с 00401000 и заканчивается в пределах 005ХХХХХ, так?
А скажем адреса начинающиеся с единицы, или вот как этот пример - 01C613A7?

Вопрос 2. Можно ли изменять значения в регистрах системных библиотек(налету)? Вопрос к этой проге не относится. Просто хочу понять, для общего развития. ;) Спасибо!
Post #: 5
RE: Как поставить бряк с условием на секцию дампа в Olly - 2008-09-04 08:27:52.173333   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Чтобы определить, где находишься: смотришь на заголовок- там указывается в каком модуле находишься; или Alt+M - отображены смещения загруженных модулей.

Alt+E - в окне загруженные модули, в описании можно определить системная или нет билиотека.

В олли можно изменить всё: двойной клик (или выделить, потом Enter) на регистре; флаге; вообще, на любом значении.

Post #: 6
RE: Как поставить бряк с условием на секцию дампа в Olly - 2008-09-04 08:37:47.180000   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Метод с ShowWindow написал, просто чтобы показать универсальный метод нахождения создания окна. Для нахождения функций-событий для программ, написанных на Бейсике, я использую VB Decompiler.

Нахождение места, откуда вызывается создание окна не нужно. Нужна функция Splash.Form_load: функция, выполняемая при загрузке окна.

Post #: 7
Страниц:  [1]
Все форумы >> [Взлом программ] >> Как поставить бряк с условием на секцию дампа в Olly







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.