eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

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

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

 eXeL@B —› Софт, инструменты —› VDisAsm
. 1 . 2 . 3 . 4 . 5 . 6 . >>
Посл.ответ Сообщение

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

Создано: 1 сентября 2012 04:26 · Поправил: 27 июля 2016 10:12 vden New!
Цитата · Личное сообщение · #1

Страница проекта

Версия 2
C# + WPF, в разработке
Движок анализатора используется во внутренних проектах

Заметки о ходе разработки нового инструмента (анализатора)


Версия 1
Написана на Delphi, открытый исходный код
Legacy

В общих чертах:

- дизассемблирование x16, x32, x64 (через mediana by Mika0x65)
- дизассемблирование ARM
- FastTracer для быстрого анализа кода и проставления ссылок

Исходники: https://github.com/vdisasm/vdisasm.git

| Сообщение посчитали полезным: SReg, _ruzmaz_, =TS=, plutos, reversecode, ressa, Fedonin, Dart Raiden, 4kusNick, VodoleY, sendersu, verdizela, Wald, DenCoder, DICI BF, screen66


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

Создано: 1 сентября 2012 08:07 · Поправил: TryAga1n New!
Цитата · Личное сообщение · #2

Не декомпилит импортные прыги


-
Не хватает нулей перед адресами, всетаки DWORD привычней будет
-
Выравнивание на коменты не помешало бы

-
Нет навигации. Захотелось вернуться назад, не нашел как
-
Если открытии файла в Aux Pane была открыта вкладка Names, то не появляются lab_* пока не щелкнешь правой кнопкой->Reload
-
В контекстном меню у пункта Comment отсутствует хотхей(/), отсутствуют пункты меню make code/unmake code/make data (cycled)/AnsiString и т.д. в-общем пусто там))
-
Может не стоит плодить файлы в %AppData%\VDisAsm? Думаю папки с программой достаточно...

| Сообщение посчитали полезным: vden, Wald



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

Создано: 1 сентября 2012 08:55 · Поправил: =TS= New!
Цитата · Личное сообщение · #3

* При highlight mode off не происходит навигация при кликах по адресам -- так и задумано?
* При переименовании метки не происходит переименования адреса в команде, которая на неё ссылается.
* Было бы неплохо иметь комбинацию перехода на EP, например Ctrl-E.
* Если курсор стоит на метке или адресе, то при вызове диалога перехода (Ctrl-G) было бы неплохо вставлять их в этот диалог и иметь возможность производить над ними (или любыми другими введёнными вручную адресами\метками) в этом диалоге некие арифметические и логические операции, результат которых станет адресом перехода.
* В диалоге указания типа (Y) было бы логично иметь возможность выбора из списка встроенных / пользовательских (в будущем) типов. Или ввести выбор из списка при нажатия хоткея (T) -- да-да, как в IDA.

TryAga1n пишет:
Может не стоит плодить файлы в %AppData%\VDisAsm? Думаю папки с программой достаточно...

Если включён UAC то отнюдь не достаточно (искать потом по VirtualStorage не интересно).

| Сообщение посчитали полезным: vden, Kr0ne, Wald


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

Создано: 1 сентября 2012 09:23 New!
Цитата · Личное сообщение · #4

=TS= пишет:
Если включён UAC то отнюдь не достаточно (искать потом по VirtualStorage не интересно).

Как ярый фанат XP забываю про UAC постоянно, ну тогда данный пункт снят, т.к. действительно нужен


Статус: Пришелец

Создано: 1 сентября 2012 11:15 New!
Цитата #5

vden
Внесу свою лепту критики.
Не удобный дизайн, мало функционала, для сравнения приложу в атач Hackers Disassembler, боян еще тот, но дизайн удобный, мб что нибудь позаимствуешь в плане идей, а так, тестировать еще нечего, кроме самого дизасма.


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

| Сообщение посчитали полезным: MasterSoft, vden


Ранг: 3.3 (гость)
Статус: Участник

Создано: 1 сентября 2012 12:16 New!
Цитата · Личное сообщение · #6

Где скролл?

| Сообщение посчитали полезным: vden


Ранг: 3.3 (гость)
Статус: Участник

Создано: 1 сентября 2012 12:21 · Поправил: 9 октября 2015 19:45 Kr0ne New!
Цитата · Личное сообщение · #7

Распаковал пеид. Слева ида, справа - vdisasm, в котором одни опкоды

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

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

Создано: 1 сентября 2012 12:38 · Поправил: vden New!
Цитата · Личное сообщение · #8

Текущий баглист добавлен в шапку. Туда добавляются найденные вами проблемы.

Понемногу ответы на текущие. Пост правиться.
Если на что-то не отвечено, значит скорее всего это добавлено в баг-лист.

@TryAga1n
Не декомпилит импортные прыги
Сейчас есть быстрый анализатор, который начиная с точки входа проходит по очевидным прыжкам, если видит вызов на понятный адрес, то добавляет его в список работ. Непрямые вызовы его естественно обламывают. Также пытается помечать обращения к данным.
Всё это хочется исправить с появлением более глубокого анализатора, который бы мог прослеживать изменения регистров, отлавливать непрямую адресацию.

Не хватает нулей перед адресами, всетаки DWORD привычней будет
Выравнивание на коменты не помешало бы
gui ещё предстоит много правок.

Нет навигации. Захотелось вернуться назад, не нашел как
Должно быть ESC, но видимо не во всех случаях это работает (например если перешли из секций или имён, то забывается предыдущий адрес)

@=TS=
При highlight mode off не происходит навигация при кликах по адресам -- так и задумано?
нет. баг. my bad

При переименовании метки не происходит переименования адреса в команде, которая на неё ссылается.
В арм версии это есть. но пока это отложено, чтобы сделать универсальное хранение операндов инструкции, это позволит например для чисел менять представление (int, float, structure offset)

Было бы неплохо иметь комбинацию перехода на EP, например Ctrl-E.
планируется

Если курсор стоит на метке или адресе, то при вызове диалога перехода (Ctrl-G) было бы неплохо вставлять их в этот диалог
Планируется

* В диалоге указания типа (Y) было бы логично иметь возможность выбора из списка встроенных / пользовательских (в будущем) типов.
Планируется

Ранг: 3.3 (гость)
Статус: Участник

Создано: 1 сентября 2012 13:17 New!
Цитата · Личное сообщение · #9

vden может стоит новые версии кидать в архив, а когда проект станет стабильнее тогда можешь уже и установки делать

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

Создано: 1 сентября 2012 13:28 · Поправил: vden New!
Цитата · Личное сообщение · #10

Kr0ne пишет:
может стоит новые версии кидать в архив, а когда проект станет стабильнее тогда можешь уже и установки делать

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

Домашняя страница
Это только у меня она не работает?

редиректы должны быть включены

Где скролл? gui ещё предстоит большая доработка

Распаковал пеид слева ида справа vdisasm в котором одни опкоды
скорее всего явного перехода на адрес не было, поэтому он не сделан кодом. можно попробовать там нажать C


Ранг: 1013.9 (!!!!)
Статус: Участник

Создано: 1 сентября 2012 13:33 · Поправил: reversecode New!
Цитата · Личное сообщение · #11

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

- так же хочется что бы константы можно было переводить сразу их хексовых, в текстовые или 10 ричные
- рефы показывать тоже не плохо было бы, и что бы по ним бегать можно было(то что рефы есть я увидел, неплохо их показывать в коде, и работать не прибегая к мышке!)
- инсталляция не нужна, достаточно аля портеибл, которая если лезет в реестр, то или создает новые параметры в нем или уже подхватывает те что были при ранних запусках
- make code понятно, make data аля offset не вижу

- save as database не вижу
- добавить мульти трейдовость которой нет в IDA, к примеру опознал одну функцию, дальше бегло по ней анализируешь количество call, и хотя бы на несколько потоков раскидаешь на дизассемблер, так быстрее анализ будет проходить
- switch таблица еще не определяется я смотрю
- соверешнно не понятная мне ситуация,
4C188E call dword ptr [0x4DD220]
при этом если перейти на 0x4DD220 то это Import KERNEL32.dll!HeapFree:
может стоит сразу в комментах или адресс функцией заменять?
- добавить Ctrl+Ins, Shift+Ins как альтернативу Ctrl+C, Ctrl+V

| Сообщение посчитали полезным: vden


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

Создано: 1 сентября 2012 13:35 · Поправил: vden New!
Цитата · Личное сообщение · #12

@reversecode
согласен. как временная мера, можно нажимать U для выделенного участка, тогда не будет попыток удалять через трейсинг кода

иконка программы какая то скудная и еле заметная в таск баре, увеличить! и разнообразить цвЯтами!
я думаю иконки должен рисовать профессионал, а пока это так, placeholder'ы
рисовать нужно для разных размеров, тогда будет хорошо смотреться. в будещем планируется нанять дизайнера, чтобы всё "разукрасить".

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

Ранг: 3.3 (гость)
Статус: Участник

Создано: 1 сентября 2012 13:39 New!
Цитата · Личное сообщение · #13

vden пишет:
Домашняя страница

Это только у меня она не работает?


Ранг: 1013.9 (!!!!)
Статус: Участник

Создано: 1 сентября 2012 13:43 · Поправил: reversecode New!
Цитата · Личное сообщение · #14

Kr0ne пишет:
Это только у меня она не работает?

да только у вас.


иконка программы какая то скудная и еле заметная в таск баре, увеличить! и разнообразить цвЯтами!

ну хотя бы увеличить и заменить цвета, а то светло голубой переливающийся да на сером таск баре вообще не заметен
по сравнению с красным фаерфоксом и большой иконкой Far,Notepad,Processhacker итд

постом #11 расписал все свои замечания аля баги, пожелания

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

Создано: 1 сентября 2012 14:32 · Поправил: TryAga1n New!
Цитата · Личное сообщение · #15

Критическая ошибка:
После открытия exe'шника, во время анализа я нажал Jobs->Resume(Зачем вообще такой пункт, если нет Stop или Pause?) и после этого программа навертво зависла. Убил через диспетчер задач. После повторного открытия приложения, на котором был висяк во время анализа получаем:
Code:
  1. No jobs to start.
  2. Opening file: Diablo III.exe
  3. Database already exists. Opening.
  4. Database opened.
  5. Getting names...
  6. 0 names found.
  7. No jobs to start.

И все пусто...пытался сделать File->Delete, но это не помогло. Теперь больше не могу работать с данным файлом
-
Где база от программы? Как ее почистить ручками то теперь?
-
В случае убивания процесса во время анализа, даже без Jobs->Resume база накрывается и приложение больше не анализируется

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

Создано: 1 сентября 2012 14:34 · Поправил: vden New!
Цитата · Личное сообщение · #16

TryAga1n пишет:
Критическая ошибка:
После открытия exe'шника, во время анализа я нажал Jobs->Resume(Зачем вообще такой пункт, если нет Stop или Pause?) и после этого программа навертво зависла.

Этот пункт должен был быть скрытым (пока), видимо был упущен из виду.

В случае порчи базы, её придётся удалять вручную.

База это папка с постфиксом _vddb, создаётся там же где и исходный файл

В случае убивания процесса во время анализа, даже без Jobs->Resume база накрывается и приложение больше не анализируется
добавил в баги

@reversecode
постом #11 расписал все свои замечания аля баги, пожелания
ok.


Ранг: 1013.9 (!!!!)
Статус: Участник

Создано: 1 сентября 2012 15:02 · Поправил: reversecode New!
Цитата · Личное сообщение · #17

самое главное, обзавестись хотя бы еще одним, двумя разработчиками
что бы проект не умер на стадии бета потому что автор куда то пропал итд, всякие жизненные ситуации

если на стадии бета-3 обростет дебаггером и интерактивным интерфейсом,
появятся функции, стек, можно будет переименовывать и накладывать форматом структур на данные
,
то можно сказать что будет претендовать как альтернатива ИДА

Kr0ne если все что я сказал появится, то запросто
http://www.youtube.com/watch?v=Zkd_wzADOuo
http://www.youtube.com/watch?v=nGWZVJQQSpM
hexrays в учет не берем пока

Kr0ne пишет:
Я согласен, но движок надо свой писать. На чужом далеко не уедешь

движок чего писать? там и так все свое,
а медиану все пользуют, Мика для этого ее и писал
иначем зачем опенсоурс нужен

| Сообщение посчитали полезным: vden


Ранг: 3.3 (гость)
Статус: Участник

Создано: 1 сентября 2012 16:10 · Поправил: Kr0ne New!
Цитата · Личное сообщение · #18

reversecode пишет:
можно сказать что будет претендовать как альтернатива ИДА

До иды ещё далековато
reversecode
Я согласен, но движок надо свой писать. На чужом далеко не уедешь

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

Создано: 2 сентября 2012 11:53 · Поправил: vden New!
Цитата · Личное сообщение · #19

Kr0ne пишет:
движок надо свой писать

какой именно?

Если x86/x64, то пока нет. Точнее есть свой, он хорошо работает для x86, но есть проблемы с x64.
FYI в ходе прикручивания mediana был найден небольшой баг, патч отослан, но пока ещё не закомитен.
Вскоре выложу заголовки mediana для Delphi. Думаю все в выигрыше.


Ранг: 1995.9 (!!!!)
Статус: Модератор
retired

Создано: 2 сентября 2012 13:48 New!
Цитата · Личное сообщение · #20

Вообще говоря, в медиана прилично багов уже есть, автор только лысого гоняет уже год. Если есть желание сделать форк и пофиксить их все, в принципе список багов могу покидать.
Только это, если кто-то надумает это делать, сделайте нормально, не нагородите новых.
З.Ы. Для дельфей килька в своё время делал инклуды.


Статус: Пришелец

Создано: 2 сентября 2012 21:18 New!
Цитата #21

Archer
Я уже и так делаю форк, в процессе тестирования трейсера в OpenDbg. Можешь мне на мыло оформить баг-лист. Только вот кто готов взяться за тестирование? У тебя спец-ранг в принципе говорит о многом, но если найдешь добровольцев (не просто желающих, а кто точно разбирается в данной теме), то вообще здорово.


Ранг: 1013.9 (!!!!)
Статус: Участник

Создано: 2 сентября 2012 21:42 New!
Цитата · Личное сообщение · #22

Мика на васме(насколько я видел) переодически появляется, вот как то не верится что он вообще на медиану и баг репорты забил.
если все так востребовано и активно, может нужно к нему обратится?


Статус: Пришелец

Создано: 2 сентября 2012 21:58 New!
Цитата #23

reversecode
Он занят каким-то другим проектом. Сказал - если что найдете, можете поправить, но добавлять он не будет, т.к. у него нет времени даже проверить чужие правки. Поэтому только форк...

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

Создано: 3 сентября 2012 12:13 New!
Цитата · Личное сообщение · #24

Устранил пару репортов в VDisAsm. Теперь portable

Видимо инклуды от PEKill я проморгал.

Инклуды mediana сейчас добавлены в общую папку (на dropbox, в шапке)

В багфиксе mediana я тоже заинтересован, может всё и не исправлю, но список проблем хотелось бы увидеть. имхо если форк будет на sourceforge/googlecode, то может туда и запостить issues ?

Мой баг, наверно уже есть в списке:

Code:
  1. байты $EA, $8B, $C2, $8B, $CB, $39, $44
  2. в иде // IDA: jmp     far ptr 4439h:0CB8BC28Bh
  3. а в медиане операнды пишутся не туда, и дальний адрес выходит с ошибкой


Ранг: 1013.9 (!!!!)
Статус: Участник

Создано: 3 сентября 2012 12:36 New!
Цитата · Личное сообщение · #25

а если взять дизассемблер от EDB? http://code.google.com/p/edisassm/
или все уже так закручено гвоздями к медиане?

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

Создано: 3 сентября 2012 13:07 · Поправил: vden New!
Цитата · Личное сообщение · #26

Можно взять любой движок, лишь бы он выдавал структуру инструкции. Печать текста не нужна вообще, т.к. переписывается целиком.
Возможно нужно было попробовать ещё distorm. Просто mediana мне показался чище написанным.

edisassm гляну.

@VodoleY был вариант с bea, уже не помню, почему не взял. Беатрикс вроде более-менее оперативно всё фиксит.

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 3 сентября 2012 13:26 New!
Цитата · Личное сообщение · #27

vden я юзал http://www.beaengine.org/ есть интерфейс для делфи, регулярно обновляется, как то нашел баг, выправили за сутки.


Ранг: 209.5 (наставник)
Статус: Участник
WinCE ARM M@sTeR

Создано: 4 сентября 2012 02:45 New!
Цитата · Личное сообщение · #28

Для x86/64 медиана прикручена, а ARM чем дизасмится?


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

Создано: 4 сентября 2012 08:51 · Поправил: =TS= New!
Цитата · Личное сообщение · #29

Вопросик: ручное изменения типа операндов (в частности, задание типа указателей) предусмотрено в проекте?
Как предполагается задавать пользовательские типы данных?
Навигацию назад можно подвесить также и на BkSpace?

Ранг: 57.1 (постоянный)
Статус: Участник

Создано: 4 сентября 2012 10:03 New!
Цитата · Личное сообщение · #30

Предлагаю:
Передрать из IDA популярные горячие клавиши
. 1 . 2 . 3 . 4 . 5 . 6 . >>
 eXeL@B —› Софт, инструменты —› VDisAsm

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS