Сейчас на форуме: -Sanchez-, Alf, Adler, Rio, vsv1 (+8 невидимых)

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

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 01 сентября 2012 04:26 · Поправил: vden
· Личное сообщение · #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

Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

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

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


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

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

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


Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

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

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

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

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

-----
DREAMS CALL US


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

Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

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

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

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



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 01 сентября 2012 11:15
· Личное сообщение · #5

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


c1c4_01.09.2012_EXELAB.rU.tgz - Hackers Disassembler 1.06.rar

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

Ранг: 3.3 (гость), 2thx
Активность: 0.010
Статус: Участник

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

Где скролл?

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

Ранг: 3.3 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 01 сентября 2012 12:21 · Поправил: Kr0ne
· Личное сообщение · #7

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

ba18_01.09.2012_EXELAB.rU.tgz - scr.JPG



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

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

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

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

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

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

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

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

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

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

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



Ранг: 3.3 (гость), 2thx
Активность: 0.010
Статус: Участник

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

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



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

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

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

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

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

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 01 сентября 2012 13:33 · Поправил: reversecode
· Личное сообщение · #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 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

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

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

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



Ранг: 3.3 (гость), 2thx
Активность: 0.010
Статус: Участник

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

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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

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


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

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

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



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 01 сентября 2012 14:32 · Поправил: TryAga1n
· Личное сообщение · #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 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

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

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

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

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

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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

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

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

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

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

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

Ранг: 3.3 (гость), 2thx
Активность: 0.010
Статус: Участник

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

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

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



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

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

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

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




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

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



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 сентября 2012 21:18
· Личное сообщение · #21

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 02 сентября 2012 21:58
· Личное сообщение · #23

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



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 03 сентября 2012 12:13
· Личное сообщение · #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. а в медиане операнды пишутся не туда, и дальний адрес выходит с ошибкой





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

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

edisassm гляну.

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



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

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

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

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

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

-----
Get busy living or get busy dying ©





Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

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

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

-----
DREAMS CALL US




Ранг: 57.1 (постоянный), 3thx
Активность: 0.040
Статус: Участник

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

Предлагаю:
Передрать из IDA популярные горячие клавиши


. 1 . 2 . 3 . 4 . 5 . 6 . >>
 eXeL@B —› Софт, инструменты —› VDisAsm
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати