eXeL@B —› Софт, инструменты —› diff_trace. Quick compare of two OllyDbg trace logs |
Посл.ответ | Сообщение |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 10 марта 2013 13:12 · Поправил: ELF_7719116 · Личное сообщение · #1 diff_trace v0.7 for OllyDbg - исправил с dump на trace во избежании путаницы! SOURCES HERE! Instantly find when you need to find the first difference in the addresses of the two trace-logs. * Sync compare. Actually in synchronism with the beginning of the two logs are looking for differences in addresses. * Async compare. We are looking for differences with the addresses of two arbitrary strings. * Sync / async compare with exceptions. Specify the parts of the code (functions) that you want to skip the comparison (eg standard C++ atoi, strcmp, which cause false positives). Recursion is supported calls (deep). * Log missed exceptions. * Results can be written to a file. * Support for long logs BIG size of ~ 500-750 MB (at this point - a specific size that is allocated dynamically VirtualAlloc) * (0.73) Add Trace Viewer. *** [RU] *** Мгновенный поиск, когда нужно найти первое различие по адресам в двух трейслогах. Предисловие: надо было сравнить два лога трассировки OllyDbg и найти главный условный переход...ничего под руку не попалось... интернета не было...решил изобрести велосипед(как говорит ARHANGEL)...написал...нашел главный условный переход...удобно!...решил поделиться Автор: ELF (т.е. я Возможности: * Синхронный поиск. Собственно синхронно с самого начала 2х логов ищем различия в адресах. * Асинхронный * Синхронный/асинхронный с исключениями. Задаем участки кода(функции), которые нужно пропустить при сравнении(например стандартные С++ atoi, strcmp, которые вызывают ложные срабатывания). Поддерживается рекурсия вызовов(глубина). * Журнал(лог) пропущенных исключений. * Результаты можно писать в файл(а можно и не писать). * поддержка длинных логов БОЛЬШОГО размера ~500-750 Мбайт (на данный момент - конкретный размер, выделяемый динамически VirtualAlloc) * (0.73) Добавлен Trace Viewer(просмоторщик трейслогов) с подцветкой совпадающих адресов в двух listbox. * (0.74) Добавлена возможность поиска по асм командам без учета адресов (asm string compare mode). см пост 27 (!)Граждане! Программа еще сырая, но работает! Если кому это нужно и кто-то хочет поучаствовать в разработке - я только ЗА! Исходники(сорцы, сырки) я также выкладываю в общий доступ (внизу прикреплены в одном архиве вместе с Release программой!) с единственным условием - если на основе моих кодов изобретете что покруче, не забудьте поделиться и прикрутить мой ник(чтоб активная общественность не забыла). По крайней мере, основную разводную проверку на оригинальный диск в Sony DADC SecuROM нашел влет Violence of SecuROM. More about Последняя версия 0.74 [EN] в 28 посте. The latest version 0.74 [EN] in 28 post. | Сообщение посчитали полезным: hors, Gideon Vi, YDS, xDvKx, Alinator3500, gazlan, BAHEK, TLN, DenCoder |
|
Создано: 10 марта 2013 14:17 · Личное сообщение · #2 |
|
Создано: 10 марта 2013 16:18 · Личное сообщение · #3 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 10 марта 2013 17:20 · Поправил: ELF_7719116 · Личное сообщение · #4 Nightshade пишет: Может еще напишешь как этим пользоваться? Сколотил обновленный ReadMe.pdf на скорую руку ManHunter пишет: на фото кто? 8b5a_11.03.2013_EXELAB.rU.tgz - diff_trace.pdf |
|
Создано: 10 марта 2013 21:38 · Личное сообщение · #5 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 11 марта 2013 07:27 · Поправил: ELF_7719116 · Личное сообщение · #6 |
|
Создано: 12 марта 2013 18:30 · Личное сообщение · #7 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 12 марта 2013 19:33 · Личное сообщение · #8 winndy пишет: Could you create English version? Yes of course! It will be done during the week. | Сообщение посчитали полезным: DimitarSerg, v00doo |
|
Создано: 13 марта 2013 03:47 · Поправил: Gideon Vi · Личное сообщение · #9 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 13 марта 2013 07:33 · Поправил: ELF_7719116 · Личное сообщение · #10 Gideon Vi пишет: бгг, только что чуть было свой велосипед делать не начал. Проверку в StarForce наверно хотел запатчить Gideon Vi пишет: А он ещё жив? Давненько уже не видел. Я устрою праздник, если это говно загнется! Ибо как говорил PAKHAN, в статье про анпак старфорса, "А мне по душе SecuROM и SafeDisk". Вообще, судя по всему, старфорс уже загибается, т.к. |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 17 марта 2013 19:48 · Поправил: ELF_7719116 · Личное сообщение · #11 NEW VERSION - 0.72! * NOW IN ENGLISH. * Fix some errors. * Optimization of the size of the allocated memory. Planned to write a code module load for very large trace files (over 1 GB). Also sent a letter to developer Ollydbg asking you to enter a new format for saving trace files "only address" (for a more compact size of logs and avoid problems with large file sizes) The OllyDbg author said that the best way to write a plugin: best of all, you create address log by yourself. OllyDbg adds new address to the log on every EXCEPTION_DEBUG_EVENT. On this event it also calls ODBG2_Pluginexception (), so you only need to declare this callback and gather data. The only caveat: one command may cause several events. If several consecutive events from the same thread have same EIP and ECX, you only need to keep the first in the sequence. Note that prun-> eip contains EIP from the previous event and prun-> ecx - value of ECX. (If you trace into the string command, like REP MOVSB, you will get may events with same EIP but different ECX)) 8be4_17.03.2013_EXELAB.rU.tgz - diff_trace_EN_072.zip | Сообщение посчитали полезным: Gideon Vi |
|
Создано: 18 марта 2013 17:23 · Личное сообщение · #12 |
|
Создано: 14 апреля 2013 11:05 · Поправил: sivorog · Личное сообщение · #13 ELF_7719116 прошу прощенья, а как так получается, что у меня ваша утилита сравнивает по одной строчке? то есть, есть 2 лога. по ~200 Мб каждый. забил пути, светятся зеленые огоньки. Загрузить. 6 зеленых огоньков (сверху). Жму Действие (синхронное сравнение, без исключений) - он пишет: Прверено строк: 1. Еще раз жму на кнопку, Проверено строк: 2. Просветите меня, неужто надо 2 миллиона раз на кнопку жать??? да, и не сохраняет он никакого ".ini" на диск. работаю под Win XP SP3, x86 версия утилиты - 0.7 и 0.72, одинаково |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 14 апреля 2013 20:13 · Поправил: ELF_7719116 · Личное сообщение · #14 sivorog пишет: то есть, есть 2 лога. как три первые строчки в Ваших обоих трейс-логах начинаются ? sivorog пишет: да, и не сохраняет он никакого ".ini" на диск. Вообще предварительно необходимо указать вручную или сгенерировать путь до файла и убедиться(пока вручную), что Ваши права в системе позволяют его создать. Если таковой не указан (в 0.72) должно окошко "Save As" выскакивать |
|
Создано: 14 апреля 2013 20:53 · Поправил: sivorog · Личное сообщение · #15 Address Thread Command Registers and comments 005DC801 Main MOV EBP,ESP EBP=0012FFC0 005DC803 Main ADD ESP,-10 FL=C, ESP=0012FFB0 005DC806 Main PUSH EBX ESP=0012FFAC 005DC807 Main MOV EAX,AngloKUR.005DC168 EAX=005DC168 005DC80C Main CALL AngloKUR.00C13D59 ESP=0012FFA8 00C13D59 Main JMP DWORD PTR DS:[1217504] ... путь до файла я генерировал, и я являюсь админом. (единств. пользователь) b675_14.04.2013_EXELAB.rU.tgz - sample.txt |
|
Создано: 14 апреля 2013 22:08 · Поправил: xDvKx · Личное сообщение · #16 |
|
Создано: 15 апреля 2013 09:59 · Личное сообщение · #17 |
|
Создано: 15 апреля 2013 12:43 · Поправил: xDvKx · Личное сообщение · #18 я в notepad++ выделял столбец с зажатым ALT и переносил, но если файл большой то это нереально neomant пишет: Что-то пропустил, но такие манипуляции пишутся за 10 минут на коленке на чём угодно. Написал же, файл маленький и быстрее было перенести столбец. А насчет написания, проще всего наверно саму программу подправить исходники то есть в первом посте |
|
Создано: 15 апреля 2013 13:08 · Личное сообщение · #19 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 15 апреля 2013 17:31 · Личное сообщение · #20 xDvKx пишет: программа работает с логами от второй версии Ollydbg, в ней сначало слово Main идет а потом адрес Вот таких не стыковок я опасался. В идеале (как было уже выше сказано) надо писать свой плагин, чтобы сохранялись только адреса. Можно затачивать собственно сам алгоритм под все возможные варианты - не лучшее решение. Есть идея еще - конструктор скелета логов (эдакий профиль) сделать и по нему работать. |
|
Создано: 15 апреля 2013 17:52 · Личное сообщение · #21 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 15 апреля 2013 20:16 · Личное сообщение · #22 xDvKx пишет: ну разница же только в первом столбце, это или адресс или слово main. мож сделать построчное определение - по \r\n ... ?! Хочу спросить еще по данному поводу - есть ли разница в производительности, когда процессор работает с DWORD и когда с WORD? (Некогда читал, что вопрос из разряда философских) |
|
Создано: 15 апреля 2013 22:04 · Личное сообщение · #23 ELF_7719116 "x86-32 - лучше избегать word'ов. фактически будет сгенерирована аналогичная инструкция для dword'а, но будет добавлен префикс 66 (или 67), который заставит процессор обработать инструкцию, как если бы она была на x86-16" (c) один умный чел ----- От многой мудрости много скорби, и умножающий знание умножает печаль | Сообщение посчитали полезным: ELF_7719116 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 16 апреля 2013 07:49 · Личное сообщение · #24 |
|
Создано: 16 апреля 2013 09:55 · Личное сообщение · #25 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 20 февраля 2014 20:12 · Личное сообщение · #26 NEW VERSION - 0.73! * Add Trace logs viewer. Сonvenient viewing of two lists in files. Automatic mark of coinciding addresses in logs. Known errors: When double compare two logs, out result - wrong link number, difference with real +1. But all addresses - true! Следующая версия инструмента для быстрого и удобного сравнения двух трейс логов большого размера, полученных от отладчика OllyDbg 2.x В этой версии добавлен просмоторщик трейслогов с навигацией по строкам и подсветкой совпадающих адресов выполненного кода. Известные ошибки: в функции Cdiff_traceDlg::OnGO() , выполняющей сравнение, выходной результат - номер строки неточный, различается с реальным на величину инкремента +1. Однако адреса правильные. 2932_20.02.2014_EXELAB.rU.tgz - diff_trace_v073.zip | Сообщение посчитали полезным: SReg, Gideon Vi |
|
Создано: 08 апреля 2014 09:47 · Личное сообщение · #27 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 08 апреля 2014 17:25 · Поправил: ELF_7719116 · Личное сообщение · #28 nocser6 пишет: А в этой программе можно сравнить не по адресам, а по командам? теперь можно Но на будущее-не забываем о сорцах New version - 0.74 (test) *(Add 0.74)(test) Compare asm strings without adress scan. ! Main "Release\diff_trace.exe" now compiled with Intel C++ (...и новым линкером) diff_trace.exe Original checksum = 0x0004C30C 9828_08.04.2014_EXELAB.rU.tgz - diff_trace_v074_test.zip | Сообщение посчитали полезным: Gideon Vi, nocser6, zNob, mak |
eXeL@B —› Софт, инструменты —› diff_trace. Quick compare of two OllyDbg trace logs |