eXeL@B —› Софт, инструменты —› VDisAsm |
<< . 1 . 2 . 3 . 4 . 5 . 6 . >> |
Посл.ответ | Сообщение |
|
Создано: 01 сентября 2012 04:26 · Поправил: vden · Личное сообщение · #1 Версия 2 C# + WPF, в разработке Движок анализатора используется во внутренних проектах Версия 1 Написана на Delphi, открытый исходный код Legacy В общих чертах: - дизассемблирование x16, x32, x64 (через - дизассемблирование ARM - FastTracer для быстрого анализа кода и проставления ссылок Исходники: | Сообщение посчитали полезным: SReg, _ruzmaz_, =TS=, plutos, reversecode, ressa, Fedonin, Dart Raiden, 4kusNick, VodoleY, sendersu, verdizela, Wald, DenCoder, DICI BF, screen66 |
|
Создано: 24 мая 2014 01:28 · Поправил: vden · Личное сообщение · #2 Очень не удобно, что нет возможности превратить 0x434B4650 в операнд вида 'CKFP' Постараюсь в ближайшем времени добавить поддержку для этого и для других типов констант. Пока обновил в текущей версии поиск байт/строк и поиск текста в списках. Если ничего не найдено, выдается beep и в статусбаре отображается соотв. текст. |
|
Создано: 24 мая 2014 05:01 · Поправил: -=AkaBOSS=- · Личное сообщение · #3 пожелания: 1. 2. фича как в hiew: идущие подряд NOP отображать как одну инструкцию. и еще можно писать рядом количество нопов в блоке. временами пригождается, когда код от мусора автозаменой чистишь некоторые ошибки: 1. инвалидные последовательности 8CFx/8EFx дизасмятся без каких-либо предупреждений. так и надо? 2. в 32битном режиме некоторые адреса знаково расширяются до 64бит Code:
3. программа болезненно реагирует на нестандартные PE-файлы "Access violation at address 00405726 in module 'gui.exe'. Read of address 02158288" файл в аттаче b700_24.05.2014_EXELAB.rU.tgz - mype.exe | Сообщение посчитали полезным: vden |
|
Создано: 24 мая 2014 22:19 · Поправил: vden · Личное сообщение · #4 пока исправил в текущей версии 2. в 32битном режиме некоторые адреса знаково расширяются до 64бит и 3. программа болезненно реагирует на нестандартные PE-файлы 8CFx/8EFx сейчас дизассемблер выдает как нормальные. Исправлено будет при создании полностью своего дизасма. идущие подряд NOP это неплохая идея. Только без полного анализа функции возможны проблемы. Я уже думал над спец. подходом для очистки кода от мусора, и скорее всего такой функционал будет, но не раньше чем появится нормальный анализатор. Вообщем графы сейчас добавляются как раз для того чтобы мне было легче отлаживать анализ функции (DFA и все такое) | Сообщение посчитали полезным: -=AkaBOSS=-, 4kusNick |
|
Создано: 25 мая 2014 00:57 · Личное сообщение · #5 |
|
Создано: 25 мая 2014 01:36 · Личное сообщение · #6 |
|
Создано: 25 мая 2014 01:59 · Поправил: -=AkaBOSS=- · Личное сообщение · #7 vden Access violation at address 01E4E017 in module 'x86_mediana.dll' Read of address 00000000 дизасм ругается на последовательности FFD8-FFDF в предыдущей версии этого не было. пример в аттаче /ADD F_a_u_s_t .. и весь дизасм будет дохнуть на трюках вроде такого Code:
F_a_u_s_t пишет: С чего ему дохнуть и какая собственно разница сдохнет он на автомате или от того, что я нажму анализ? с чего ему дохнуть - я привел пример. последующий за джампом код либо не разберётся вообще, либо принудительно разберётся как мусор. а на мусорных инструкциях дизасм все еще спотыкается, и базу свою портит. при автоанализе найти сбойное место будет несколько сложнее. c0d6_25.05.2014_EXELAB.rU.tgz - test.exe |
|
Создано: 25 мая 2014 03:53 · Личное сообщение · #8 |
|
Создано: 25 мая 2014 14:28 · Поправил: vden · Личное сообщение · #9 какого типа мусор планируется очищать Для начала удаление инструкций не влияющих на выполнение функции (для этого нужен анализ функции) и уменьшение кол-ва прыжков (например jmp->jmp->jmp в jmp) В идеале перестроить функцию и записать в новое место. Но об этом еще рано говорить. Авто дизассемблирование планируется? ( опционально, пох что будет путать код и данные, кому нужно включает опцию, а остальные пользуются по умолчанию ) Часто нужно быстро глянуть бинарь и тыкать анализ напрягает. Планируется. Если нужно как в хиеве, то можно сделать какой-то режим быстрого просмотра - только дизасм. Без анализа, ссылок, имён (т.е. база не будет вообще использоваться) -=AkaBOSS=- Кстати для прыжков в середину инструкции можно было бы предлагать оставить только часть инструкции на которую идет прыжок, а остальное занопить. |
|
Создано: 25 мая 2014 20:45 · Личное сообщение · #10 vden пишет: Если нужно как в хиеве Вы правильно поняли, именно так и нужно, хуев норм, но страшный что пиздец, у вас интерфейс норм, не перегружен. -=AkaBOSS=- пишет: с чего ему дохнуть - я привел пример. Будет помечен как не валидный. Это проблемы анализатора, а не дизассемблера, собственно разницы нет, будет код не валидный сразу или по нажатию кнопки. Собственно это и есть причина для создания интерактивности, на автомате сложно отделить код от данных ( например asm бинари, где данные могут быть прямо в коде ). Тем более по контексту видно, где код, а где мусор и оный уже можно пометить в ручную, это проще, чем тыкать анализ и потом помечать ( двойная работа, которая при беглом анализе еще и лишняя ). |
|
Создано: 27 мая 2014 12:35 · Личное сообщение · #11 Ошибка перекрестного дизассемблирования: Code:
А было так: Code:
Т.е. на месте 5 байт VDisAsm поставил 2 DWORD значения. Такой же косяк был в IDA. | Сообщение посчитали полезным: vden |
|
Создано: 27 мая 2014 21:07 · Поправил: vden · Личное сообщение · #12 |
|
Создано: 28 мая 2014 02:22 · Личное сообщение · #13 vden пишет: а для 0x103B6494 нужно написать что не хватает места для вставки. Может лучше раздефайнить следующий элемент? А то неудобно сразу и u и f нажимать. | Сообщение посчитали полезным: vden |
|
Создано: 28 мая 2014 02:27 · Поправил: Dr0p · Личное сообщение · #14 int > Ошибка перекрестного дизассемблирования: Не существует дизасма, который разбивает поток разрывающихся инструкций на ветви. Логично что вылезают косяки, либо анализ останавливается. Годный кстате очень метод защиты от дизасма. | Сообщение посчитали полезным: vden |
|
Создано: 28 мая 2014 15:52 · Поправил: vden · Личное сообщение · #15 |
|
Создано: 18 сентября 2014 12:56 · Личное сообщение · #16 Ищу делфи (xe6,xe7) программистов для совместной разработки. Поле деятельности довольно обширное, можно выбрать из следующего: - дописать дизассемблер для x86 (он не табличный, поэтому много ручной работы) - дописать или переписать заново ARM + Thumb дизассемблер - разработать API для простого доступа к функционалу из паскаля и C - gui: опции - другое по желанию |
|
Создано: 10 октября 2014 22:51 · Личное сообщение · #17 Есть несколько запросов сделать что-то вроде сдк / публичных апи. В текущей версии все завязано на паскалевские интерфейсы, что не очень удобно для использования из си. Пока, есть Под сомнением разве-что операции со строками. Есть два типа строк: pstr_in: строка передается в функцию (char*, UTF-8) pstr_out: строка возвращается из функции (динамическая строка, char*, UTF-8, уничтожается с помошью pstr_out(str) ) Есть вариант все строки сделать динамическими. Все довольно тривиально можно перевести на си. Но вначале я хочу получить фидбек, поправить апи, затем переписать ядро (core.dll) уже с новыми апи и потом сделать парсер-экспортер паскалевских заголовков в сишные. |
|
Создано: 11 октября 2014 00:27 · Личное сообщение · #18 vden Посмотрел АПИ, но так и не понял суть вопроса. Какого рода фидбек ты хотел бы получить? Если вопрос касательно строк, то вроде как в винде принято, что за передаваемые параметры отвечает вызывающая сторона. Тоесть в худшем случае запрос состоит из пары Code:
Но ты можешь сделать по другому. Для С++ весь гемор со строками вообще можно скрыть обертками. ----- старый пень |
|
Создано: 11 октября 2014 01:06 · Поправил: vden · Личное сообщение · #19 r_e пишет: Посмотрел АПИ, но так и не понял суть вопроса. Какого рода фидбек ты хотел бы получить? Самый разный. Возможно по стилю или например я ожидал вопросов по utf-8, хотя мне кажется utf-8 хорошим выбором. Если особых замечаний нет, то это даже хорошо. Переписывать ядро займет время, поэтому нужно чтобы апи были как-то стандартизированы сразу. Кстати, пример выше можно переписать так, с использованием динамических строк Code:
|
|
Создано: 11 октября 2014 01:33 · Личное сообщение · #20 Его можно переписать даже так Code:
Все зависит от реализации управления памятью в SmartString. Ну АПИ как АПИ. Фидбек лучше спрашивать у пользователей вашего двигла. Хотя, я бы сделал разбивку по хедерам, а не держал простыню в одном файле. С utf8 не вижу проблем по простой причине: кому не нравится - может написать пару convert_utf8_to_xxx/convert_xxx_to_utf8 и работать в любой кодировке. ----- старый пень | Сообщение посчитали полезным: vden |
|
Создано: 22 февраля 2015 13:51 · Поправил: vden · Личное сообщение · #21 |
|
Создано: 22 февраля 2015 15:11 · Личное сообщение · #22 vden ноот 64 лучше вообще не отказываться. заложить поддержку хотя бы в структурах и функциях. ----- [nice coder and reverser] | Сообщение посчитали полезным: vden, Error13Tracer |
|
Создано: 26 февраля 2015 14:18 · Личное сообщение · #23 vden, думаю, найти программиста на Delphi для данного проекта будет крайне трудно. Сам сейчас на XE7 сижу, взялся бы с удовольствием, но со временем всегда напряги. Сколько времени уже подсветку для IDR делаю, всё никак не удаётся - то одно, то другое. А по сути: надеюсь, что найдётся грамотный кодер в помощь и данный проект таки не загнётся | Сообщение посчитали полезным: vden |
|
Создано: 26 февраля 2015 14:29 · Личное сообщение · #24 vden Если не страдаешь сильно честолюбием - сделай открытый репо и пусть присылают тебе коммиты кто может. 2.х это хорошо. Значит есть еще ягоды в ягодицах. Но тут стоит трезво оценивать количество заинтересованых в результате людей, а помощников среди них будет еще на два-три порядка меньше. ----- старый пень | Сообщение посчитали полезным: Error13Tracer, vden |
|
Создано: 27 февраля 2015 14:24 · Личное сообщение · #25 Частично код открыт, это Весь код опубликовать не получится, потому что часть я купил, и соответсвенно лицензия запрещает. |
|
Создано: 27 февраля 2015 18:39 · Поправил: Error13Tracer · Личное сообщение · #26 |
|
Создано: 28 февраля 2015 20:33 · Личное сообщение · #27 vden пишет:Весь код опубликовать не получится, потому что часть я купил Под это попало GUI? Разбор PE это хорошо, но все же лучше когда есть к чему прикручивать детали, тем более некоторые дизайнеры от бога и после их креатива останется только сжечь комп (Олег Зайцев тому пример). | Сообщение посчитали полезным: Hellspawn |
|
Создано: 28 февраля 2015 21:13 · Личное сообщение · #28 vden а если не секрет, что приобреталось? компоненты какие-то? F_a_u_s_t утилита хорошая, но она зависла в 90-ых ))) ----- [nice coder and reverser] | Сообщение посчитали полезным: Error13Tracer |
|
Создано: 01 марта 2015 02:22 · Поправил: vden · Личное сообщение · #29 |
|
Создано: 01 марта 2015 02:30 · Личное сообщение · #30 |
|
Создано: 23 апреля 2015 17:54 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . >> |
eXeL@B —› Софт, инструменты —› VDisAsm |