Русский / Russian English / Английский

Сейчас на форуме: AlexUm, _MBK_ (+10 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Основной форум —› Олька и трэйслоги.
Посл.ответ Сообщение

Ранг: 243.6 (наставник)
Статус: Участник

Создано: 27 декабря 2006 01:26 New!
Цитата · Личное сообщение · #1

В общем такая ситуёвина.
Снимаю триал.
Замутил 2 трэйслога в Olly - валидный и нет и сравниваю Compare It!
Только возникл трабл - Olly в лог в комменты пишет состояние регистров и ещё ерунду всякую.
Ну и т.к. запускал я 2 раза, то там hWnd всякие ясен пень отличаются и Compare It! находит мне кучу левых отличий. Т.е. код одиноковый, а состояние регов нет. В общем отличие в коментах, на что мне пофиг.
Но логи здоровые метров по 60 и руками парит всё разгребать.
Вот собсно вопрос - можно ли как-нить в Ольке отключить запись комментов в трэйслог, или придётся свою тулзу мутить чтоб эти коменты повыкидывать нафиг?

Ранг: 34.9 (посетитель)
Статус: Участник

Создано: 27 декабря 2006 01:30 New!
Цитата · Личное сообщение · #2

grep рулит

Ранг: 243.6 (наставник)
Статус: Участник

Создано: 27 декабря 2006 01:32 New!
Цитата · Личное сообщение · #3

мона поподробней плз
никогда не юзал...

Ранг: 36.2 (посетитель)
Статус: Участник

Создано: 27 декабря 2006 02:03 · Поправил: alt76 New!
Цитата · Личное сообщение · #4

была та же проблема - лучшим из протестеных сравнивальщиков оказался Araxis merge, хотя более менее "идеального" сравнивальщика для данной задачи найти не удалось

может кто знает прогу для сравнений текстовый файлов с возможностью настроек весовых коэфициентов
т.е. например где можно задать что выражение типа "^.{8} " (адрес команды в логе вида 4100AABB) является главной честью выражения и если она не совподает, то строки тож не совподают

Ранг: 243.6 (наставник)
Статус: Участник

Создано: 27 декабря 2006 02:06 New!
Цитата · Личное сообщение · #5

Короче как я понял в Ольке вывод комментов отрубить низзя?
Тада лично мне проще будет comment remover свой написать...

Ранг: 36.2 (посетитель)
Статус: Участник

Создано: 27 декабря 2006 02:16 New!
Цитата · Личное сообщение · #6

в Araxis Merge (и вроде в Beyond Compare) можно задавать ИГНОРИРУЕМЫЙ при сравнении текст в виде регулярного выражения

Ранг: 213.5 (наставник)
Статус: Участник
забанен

Создано: 27 декабря 2006 02:26 New!
Цитата · Личное сообщение · #7

Я тоже сейчас начал заниматься этим вопросом.
Улучшение трейса во всех направлениях.
Но по сабжу есть такая, появилась недавно, хотел даже тему создать, но не вариант мне тут это делать, уже проверено…
Надо как-то автора сюда перетащить на форум, такой проект может загнуться
Вот ссылка на его творение FastAnimate plugin v0.02
www.wasm.ru/forum/viewtopic.php?id=16901

А вот цитаты:
Мне было бы интересно обменяться опытом на этой почве. Могу выложить описания алгоритмов, которые я использую (на это потребуется немного времени ).

Немного подробнее о том, что делает плагин.

Плагин анализирует каждую выполняемую инструкцию, обращая особое внимание на rep, call, ret и различные jmp. Конструкции rep и все инструкции кроме вышеперечисленных просто выводятся в файл (если необходимо) и прошагиваются.

Инструкции call ищутся в двух списках: "untrustedCall" и "trustedCall". Инструкции попавшие в первый список, анализируются так же, как если бы они были jmp. Инструкции попавшие во второй список прошагиваются с занесением в файл. Все остальные call заносятся в стек вызовов плагина, при этом запоминается предполагаемая точка возврата и значение esp.

Инструкции ret ищутся в списке "untrustedRet". Попавшие в этот список инструкции анализируются также как и jmp. Для остальных производится поиск соответствующего вызова в списке вызовов и по результатам этого поиска заполняются списки untrustedRet (ret, используемые для передачи управления как jmp), untrustedCall (call, используемые для односторонней передачи управления) и trustedCall (обычные вызовы функций).

Инструкции jmp, передающие управление вперед просто прошагиваются. Инструции jmp, передающие управление назад проверяются на наличие цикла. Для этого статически анализируются все инструкции от адреса перехода jmp до самого jmp. Выявляются исполняемые участки кода и инструкции, которые передают управление вперед за границы цикла. На все предполагаемые выходы из цикла ставятся бряки. Управление передается выполняемой программе. После остановки на брейкпоинте анализ продолжается с текущей инструкции.

Плагин также переходит в режим пошагового выполнения при обработке исключения и не выходит из него до возвращения в программу из обработчика.

Выполнение trustedCall вызовов без захода внутрь функции, а также вычисление границ циклов и позволяет достаточно быстро протрейсить приложение до нужной точки, при этом все выполненные инструкции можно сохранить в файл. По ходу работы плагин выводит в лог OllyDbg диагностические сообщения, уровень подробности которых можно регулировать. Так как пока плагин не останавливается на бряках поставленных юзером, в опции внесено поле для ввода адреса остановки.

Выполнение плагина можно остановить с помошью меню отладки выбрав пункт пауза или нажав F12. Один шаг алгоритма можно выполнить выбрав пункт Step в меню плагина или нажав Alt+S.

Ранг: 243.6 (наставник)
Статус: Участник

Создано: 27 декабря 2006 02:48 New!
Цитата · Личное сообщение · #8

Такс, такс
Счас гляну.
Если кому будет полезно - в аттаче прога для удаления коментов asm стиля.
Только предупреждаю сразу - есть глюк и как решить не знаю.
Фигня в том что отбрасывается всё от ; до конца строки, только Олька бывает строковые константы в лог пишет в которых есть переход на новую строку. Соответственно всё что за ним не отбрасывается.
Анализировать на строчные константы тоже не вариант т.к. в строках попадаются " а Олька их особо никак не помечает и определить это просто символ или конец строки низзя.
Вот так.
А плаг счас попробую.

{ Атач доступен только для участников форума } - remcmt.zip

Ранг: 213.5 (наставник)
Статус: Участник
забанен

Создано: 27 декабря 2006 03:27 New!
Цитата · Личное сообщение · #9

А да забыл написать, что у плуга есть маленькая проблема
Как я понял в опциях надо выбрать Debug, установить галочку на Trace into file: и выбрать конкретный путь к файлу, после останова закрыть прогу, только тогда будет сохраняться лог и все настройки надо повторять при каждом новом запуске отладчика/проги
По крайней мере, у меня так!
cppasm
Отпишись о результатах плуга!!!

Ранг: 243.6 (наставник)
Статус: Участник

Создано: 27 декабря 2006 03:39 · Поправил: cppasm New!
Цитата · Личное сообщение · #10

Ничё так, в коллекцию пригодится...
Что не нравится:
1. Каждый раз ставить настройки. Я не ленивый н онапрягает.
2. Как его остановить??
У меня даже пауза по F12 не срабатывает и в меню Debug не активна.
3. Весь этот гон с трастэд и не трастэд функциями.
Т.е. допустим есть процедура и она проверяет скажем триал, но проверяет не на первом проходе!
Он один раз её трэйсит, а потом просто пропускает. А мне как раз надо чтоб трэйсило всегда.
А это даже в опциях ниде не ставится.
Вот пример из реальной проги.
Прога получает сериал, потом делает так Serial -> Reg Name -> Code
И проверка идёт в процедуре декодирования, а она одна для Serial -> Reg Name и для Reg Name -> Code
Только в зависимости от аргумента она первый раз валидность не проверяет (имя пофигу), а второй проверяет. А тут плаг как раз второй раз вообще трэйситься не будет.

ИМХО основное преимущество по сравнению с Олькиными логами - не пишет команды цикла по 100 раз.

Ранг: 213.5 (наставник)
Статус: Участник
забанен

Создано: 27 декабря 2006 04:19 · Поправил: Demon666 New!
Цитата · Личное сообщение · #11

cppasm пишет:
2. Как его остановить??

Останавливается так же, как и запускается, при повторном нажатии Alt+A, но у меня иногда проскакивает, думаю, это исправить проблем не составит.

Надо будет сорс сделать на асме да почикать этот мусор (_memcpy_0 и т. д.)
С настройками и их сохранением тоже проблем не будет, с SEH`ом хм.. надо его алго будет глянуть.
Короче вижу никому это не надо, идей не у кого нет, наверное, приватное что-то юзают, ну тогда когда сделаю что-то путное, cppasm в ЛС тебе отпишусь…

[ADD]
cppasm пишет:
ИМХО основное преимущество по сравнению с Олькиными логами - не пишет команды цикла по 100 раз.

Угу, так это его основная задача и есть, воюет с ASProtect =)))

Ранг: 243.6 (наставник)
Статус: Участник

Создано: 27 декабря 2006 04:40 New!
Цитата · Личное сообщение · #12

Demon666 пишет:
Короче вижу никому это не надо, идей не у кого нет, наверное, приватное что-то юзают, ну тогда когда сделаю что-то путное, cppasm в ЛС тебе отпишусь…

Ок, договорились ;)

А у тебя сорсы есть что-ли, или ты патчить собираешься??
Просто если есть сорцы то можно было бы поправить или в опции вынести - типа трэйсить все вызовы, или только первый раз...

Ранг: 213.5 (наставник)
Статус: Участник
забанен

Создано: 27 декабря 2006 05:25 New!
Цитата · Личное сообщение · #13

cppasm пишет:
А у тебя сорсы есть что-ли

Да нет, тут чуть по-другому у автора попросили сорс, он отписался, что выложит, когда причешет, ну мне не хочется ждать, тем более что я на ЯВУ из-за принципа кодить не хочу.
Поэтому сорс буду делать после нового года сам с оригинала (dll)
Да и это неважно, функциональность плуга как ты заметил уже, не очень и радует, особенно в твоем случае =)))
Я собираюсь сделать, что-то типа: совместить функционал Оли Patches&Runtrace/TraceInto + свои алго
Мне этот анализ нужен от говнопрота… короче долго описывать надо…

cppasm пишет:
типа трэйсить все вызовы, или только первый раз...

Да, это точно надо будет добавить
 eXeL@B —› Основной форум —› Олька и трэйслоги.

Видеокурс ВЗЛОМ