Сейчас на форуме: -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

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

Создано: 15 ноября 2013 15:25
· Личное сообщение · #2

Еще чуток тестирования разных дизасмов
http://habrahabr.ru/company/intel/blog/200658/



Ранг: 39.6 (посетитель), 21thx
Активность: 0.020
Статус: Участник

Создано: 16 ноября 2013 08:29
· Личное сообщение · #3

ну перестаньте же называть всякую ерунду тестированием



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

Создано: 16 ноября 2013 16:52 · Поправил: vden
· Личное сообщение · #4

По нормальному конечно нужен большой набор test-case'ов чтобы покрыть разные аспекты дизассемблирования. За одно и regression test будет.

Кстати, может это уже есть где-то в свободном доступе?

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

Ранг: 39.6 (посетитель), 21thx
Активность: 0.020
Статус: Участник

Создано: 17 ноября 2013 07:41
· Личное сообщение · #5

vden
сложность создания таких тестов чуть меньше сложности создания самого дизассемблера

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

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

Создано: 27 ноября 2013 04:45 · Поправил: dosprog
· Личное сообщение · #6

sen,
да нет же... Думаю, хватает тестовых файлов вроде тех старинных 1989 года для 386.
Впрочем, в median'e есть подобные bin-тестовые файлы для x64.
В любом случае, занявшись этой темой, приходится делать собственный набор тестов... Чужим готовым пользоваться сложнее.
1c84_27.11.2013_EXELAB.rU.tgz - TEST_DIS.RAR (for i386,1989,например).

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

Ранг: 36.1 (посетитель), 11thx
Активность: 0.020
Статус: Участник

Создано: 28 ноября 2013 02:36
· Личное сообщение · #7

Здравствуйте, автор! Мне тут понадобилось скопировать блок данных из elf программы в c# программу, решил воспользоваться Вашей программой Но я так и не допер, как вручную выделить блок данных. Мышкой - какое то изврашение. В Copy special диалоге диапазон адресов -только для чтения.

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

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

Создано: 28 ноября 2013 14:49 · Поправил: vden
· Личное сообщение · #8

Jonny пишет:
как вручную выделить блок данных. Мышкой - какое то изврашение. В Copy special диалоге диапазон адресов -только для чтения.

Действительно, в процессе модификаций, выделение было поломано. Сегодня исправлю и сделаю bugfix-архив.


PS

текущий фикс
- исправлено ручное выделение (pgup, pgdn работает)
- в диалоге copy special можно указывать диапазон адресов вручную
сам диалог теперь открывается даже если ничего не выделено (в этом случае диапазон равен 0-0 и должен быть задан вручную)

известные проблемы:
- если диапазон включает несколько секций, то скопированы будут только байты первой секции

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

Ранг: 36.1 (посетитель), 11thx
Активность: 0.020
Статус: Участник

Создано: 28 ноября 2013 21:28 · Поправил: Jonny
· Личное сообщение · #9

Вообщем, не хочу казаться назойливым , но есть парочка предложений опять же по окну копирования.
- вставлять автоматом начальный va байта, на котором стоит курсор. и добавить возможность указать размер блока вручную.
- добавить возможность копировать маасив для C#
-копировать байты как последовательность hex чисел с префиксом 0x, разделенных запятыми, но без всяких заголовков.
- названия давать уникальные - например "_" + va начала блока вместо "data". Его приходится постоянно переименовывать.



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

Создано: 28 ноября 2013 22:06 · Поправил: vden
· Личное сообщение · #10

Ну конструктив это всегда хорошо.

Jonny пишет:
вставлять автоматом начальный va байта, на котором стоит курсор. и добавить возможность указать размер блока вручную.

начальный va, действительно, будет правильно
с размером тоже посмотрю как лучше сделать

копировать массив для C#
можно пример как должен выглядеть массив C#?

копировать байты как последовательность hex чисел с префиксом 0x, разделенных запятыми, но без всяких заголовков
уже думал над этим, пока не дошли руки. Постараюсь сделать.

названия давать уникальные - например "_" + va начала блока вместо "data". Его приходится постоянно переименовывать.
согласен, важная деталь



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

Создано: 28 ноября 2013 23:41 · Поправил: dosprog
· Личное сообщение · #11

... post removed ...



Ранг: 36.1 (посетитель), 11thx
Активность: 0.020
Статус: Участник

Создано: 29 ноября 2013 01:09 · Поправил: Jonny
· Личное сообщение · #12

vden пишет:
можно пример как должен выглядеть массив C#?

byte[] array = {
0x12, 0x34,
};



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

Создано: 29 ноября 2013 02:49 · Поправил: vden
· Личное сообщение · #13

Обновление

Выглядит так



Из пожеланий кажется добавил все.

По картинке наверно понятны параметры. Может быть позже сделаю какой-то док.

Для имени массива, байтов и заголовка можно использовать форматируемый текст в стиле Delphi:
%s - строка
%x - hex integer
%d - dec integer и др.

Если, например, не нужен header/footer, то можно очистить соотв. поля.

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


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

Создано: 29 ноября 2013 03:02
· Личное сообщение · #14

vden

Интересная тулза. Мне сразу не понравилось отображение кода, тоесть я первый попавшийся бинарь закинул - в окне ничего не отображается, нужно жать анализ, тогда появляется листинг частями.

И желательно мод задавать, тоесть один и тот же код по разному раскодируется в зависимости от разрядности/сегментов.



Ранг: 39.6 (посетитель), 21thx
Активность: 0.020
Статус: Участник

Создано: 29 ноября 2013 04:56
· Личное сообщение · #15

dosprog
у медианы тест скорости скроллинга и твердости пальца,
там явно не хватает команд: mov *,1 ... mov *,0ffffffff

в 1989 писали тесты явно лучше

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

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

Создано: 29 ноября 2013 10:07
· Личное сообщение · #16

А можно чтобы VD анализировал весь код сразу, а не кусками и по тыку? С копированием конечно поработать надо...
Ну и красивостей хочется как в ольге. Вместо "referenced from:" хорошо бы стрелками показать... всякие нифтяки типа цвет фона, шрифта, колов и джампов.



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

Создано: 29 ноября 2013 11:07
· Личное сообщение · #17

Добавлю свои пять копеек -- хотелось бы поддержки типов у операндов т.е. возможность представлять константу аргумента как hex/dec/char. Например cmp al, 0x30 = cmp al, '0'

И второе - адреса в командах с операндом вида [**+address] представлены как константа (синим цветом), поэтому сколько ни присваивай метку(имя) по этому адресу, в коде все равно остается адрес-константа. В командах с операндом вида [address] все норм.



Ранг: 36.1 (посетитель), 11thx
Активность: 0.020
Статус: Участник

Создано: 29 ноября 2013 13:17 · Поправил: Jonny
· Личное сообщение · #18

Dr0p пишет:
Интересная тулза. Мне сразу не понравилось отображение кода, тоесть я первый попавшийся бинарь закинул - в окне ничего не отображается, нужно жать анализ, тогда появляется листинг частями.

По логике, это правильно, если анализ входных точек переложен на плечи пользователя. Лучше наверно чтобы программа ничего не анализировала, вместо того чтобы показывать всякие кривые into jpo в случае с шифрованными бинарями . Но можно изловчиться и создать какойнить профиль анализа, в котором расписать что следует выполнять программе автоматически. У Иды это раелизовано с помощью скриптов и конф окна в начале анализа.
Если автор решит добавить скриптовый язык в свою программу, то лучше добавлять широкое распространный язык: например, Javascript (движок V8 от Гугла) или PHP(Zend). Javascript. имхо лучший вариант, код движка у него на С++ , язык сам по себе очень гибкий, да и документация есть, + json сериализац3ия объектов из под коробки.
--------------------------
ЗЫ.Диалог по копированию байтов, здорово получилось, даже лучше, чем предполагал. Хороший такой "штурвал самолета", все приборы и датчики рядом.



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

Создано: 29 ноября 2013 15:15 · Поправил: vden
· Личное сообщение · #19

Dr0p пишет:
в окне ничего не отображается, нужно жать анализ, тогда появляется листинг частями

Да, это сбивает с толку. Просто анализ со входом во все вызовы обычно идет долго, поэтому пока пользователь решает, что нужно анализировать.

Как вариант, наверно, можно сделать анализ только той функции куда пользователь переходит, без анализа суб-функций.

SaNTa76 пишет:
А можно чтобы VD анализировал весь код сразу, а не кусками и по тыку?

Сейчас вроде бы и так пытается анализировать все при условии что установлен флажок Step Into Calls.



т.е. если найден call, то адрес вызова тоже будет поставлен на анализ, и так вниз по цепочке. Это влияет на Analyse и на Deanalyse (Deanalyse отличается только тем что убирает код при анализе).

Другой вопрос, что анализатор еще слабоват и не найдет косвенные вызовы.


PS

И желательно мод задавать, то есть один и тот же код по разному раскодируется в зависимости от разрядности/сегментов.
Я не совсем понял. Если можно, пример использования.
Могу предположить, что речь о том, чтобы можно было анализировать 16/32 битный код не загружая один и тот же файл отдельно. Сейчас анализ для разных процессоров не поддерживается, хотя можно вручную задавать код как тип. Например, нажать Y и ввести X16 или X32, X64.

Вместо "referenced from:" хорошо бы стрелками показать... всякие нифтяки типа цвет фона, шрифта, колов и джампов.
На это пока времени нет. В будущем скорее всего будет.

Например, сейчас важнее реализовать базовые штуки, как например

поддержки типов у операндов т.е. возможность представлять константу аргумента как hex/dec/char. Например cmp al, 0x30 = cmp al, '0'
и из этого вытекает
в командах с операндом вида [**+address] представлены как константа которые нельзя поменять

Это в принципе было в старой версии, но было выпилено, в целях сделать лучше. Проблемы было 2:
1. разный синтаксис, например intel и at&t (нужно решить как привязаться к операнду)
2. поддержка разных видов смещений, относительно базы модуля, относительно заданного смещения и др.
Сейчас эти проблемы по большому счету решены, но реализовать тип операндов пока не успеваю.



Ранг: 36.1 (посетитель), 11thx
Активность: 0.020
Статус: Участник

Создано: 29 ноября 2013 16:19 · Поправил: Jonny
· Личное сообщение · #20

vden пишет:
Просто анализ со входом во все вызовы обычно идет долго,

С чем это связано? Я тоже заметил, что средняя программка анализировалась долго.



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

Создано: 29 ноября 2013 16:49 · Поправил: vden
· Личное сообщение · #21

Скорее всего запись в бд, либо проблемы с кэшем бд. Это, я думаю, будет решено, когда я всерьез займусь профилированием.

mediana довольно неплохой дизассемблер, но скорее всего будет заменен на другой, который дает меньше информации, но с упором на лучшее декодирование.



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

Создано: 11 апреля 2014 15:41 · Поправил: Модератор
· Личное сообщение · #22

Небольшое обновление:

* Улучшена скорость операций с виртуальной памятью.
* Улучшена скорость анализа.
* Исправлена проблема с замусориванием кэша (при чтении/записи, заметно на больших файлах).
* Добавлен диалог при загрузке, отображает загружаемые секции, точку входа, тип процессора.
* Объеденины DOS и PE загрузчик.
* Текст из списков (имена, экспорты...) можно сохранять в файл.
* Для быстрого задания строк добавлены кнопки UTF-8/UTF-16/Reset.
* В окне Hex улучшена отрисовка выделения.
* Отрисовка окна дизассемблера стала быстрее.
* Исправлены мелкие баги.

Ссылки в шапке.


@Модераторы
Если можно, переименуйте тему просто в VDisAsm
От модератора: переименовал

| Сообщение посчитали полезным: 4kusNick, daFix, SReg, =TS=

Ранг: 1.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 апреля 2014 14:01 · Поправил: di386
· Личное сообщение · #23

Интересуюсь ARM частью дизассемблера. Первое что бросилось в глаза - дизасм даже не пытается делать thumb код, и, видимо, отслеживать возможные переходы между arm и thumb. Ну и команды ручного задания режима дизассемблирования arm\thumb куска не хватает.
PS
было бы круто еще и jazelle опкоды дизасмить, ну и отслеживать переходы по возможности в джазель и обратно, такого, вроде даже ида не умеет.



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

Создано: 16 апреля 2014 12:47 · Поправил: vden
· Личное сообщение · #24

Где-то с версии 2 я займусь анализатором, будет задание arm/thumb кода для функции. Наверно появится Thumb дизассемблер и простенький отладчик.

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

Также можно поучаствовать в разработке. Большая часть кода на Делфи, допиливать еще есть много чего. Если кто-то заинтересуется пишите в личку или через контактную форму. Я предоставлю нужные API. Они не секретные, просто часто меняются, поэтому пока не публикуются.

API сейчас паскалевские, но в принципе можно сконвертить в C. Там импорт stdcall функций из core.dll и получение интерфейсов (все stdcall, строки или BSTR или WCHAR*)


Жазель я пока не хочу начинать, слишком много работы. Но если кто-то захочет сделать, я только за.



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

Создано: 15 мая 2014 14:24
· Личное сообщение · #25

Скачал последнюю версию, т.к. IDA Free у меня падает (лол авторам). Не могу на работе использовать пиратский софт. Интерфейс более или менее, есть несколько нареканий, но в целом красивый и приятный (раздражает, что нет авто-анализа строк и каждый раз при нажатии на 'a' вылетает окно - хочется это одной клавишей делать).

Хотел бы также добавить, что анализ кода пока все еще слабоватый. Простейший эмулятор можно подключить, чтобы вот это:
Code:
  1. referenced from: 0x401536(j) 
  2. 40156C mov eax, dword ptr [RegEnumKeyA]
  3. 401571 lea edi, dword ptr [ebp-0x121]
  4. 401577 mov [ebp-0x12C], eax
  5.  
  6. referenced from: 0x401568(j) 
  7. 40157D mov eax, dword ptr [ebp-0x1C]
  8. 401580 mov dword ptr [esp+0xC], 0x105
  9. 401588 mov [esp+8], edi
  10. 40158C mov dword ptr [esp+4], 0
  11. 401594 mov [esp], eax
  12. 401597 call dword ptr [ebp-0x12C] ; unknown branch target address
  13. 40159D sub esp, 0x10

не являлось проблемой. Раз используете медиану, почему бы не использовать эмулятор от ntldr'а под медиану?

Далее, замечание по поводу правой части окна. Там есть всякие полезности, типа импорт, экспорт, проблемы и прочее. Почему я не могу скопировать текст? По Ctrl-c или хотя бы в контекстном меню.

Кнопка Find вообще не отработала (та, которая Ctrl-f). И вообще не понятно, что происходит. Поиск начался или вообще не начинался?

Нет возможности задавать горячие клавиши, или я не понял где это делается. Неплохо бы еще добавить иконки в меню. Это не для детей делается и не чтобы добавить в дизайн красок. Читать пункты меню при быстром использовании программы достаточно трудно. Напротив, когда есть иконка открытия файла - на нее сразу бросается взгляд и курсор мыши. Usability - это практически основа для того, чтобы сделать софт популярным и используемым. Например, антивирус Касперского редкостный шлак, зато дизайнеры и маркетологи постарались так, что его все используют. При использовании данной программы я ощутил некие неудобства. То, что хочется сделать одной клавишей, приходится делать двумя. Для двух трех раз нормально, а когда это действие приходится проделывать 1000 раз? Сложность становится 2000 нажатий. И нет возможности это настроить.

За окно референсов вообще благодарю! У Ильфака вылазит гадкое popup-окно, здесь просто появляется виджет, который не мешает нормально работать с программой дальше, без необходимости что либо закрывать. На таких фишках и строится любовь к программе.

P.S. Поддержал проект, купив 1 копию. В дальнейшем могу еще поддержать.



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

Создано: 15 мая 2014 17:57 · Поправил: vden
· Личное сообщение · #26

--> пока собрал временную версию <--
Сделал быстрый фикс для копирования текста из окон-списков, вроде работает.

Другие изменения: экспериментальная поддержка графов и простой калькулятор.
Графы работают на Win7 и выше. На XP вылетит ошибка SleepConditionVariable не найдена в kernel32. Нужно просто закрыть ошибку. Граф открывается пробелом на начале функции, можно нажимать и не на начале, но результат будет не тот

Теперь попробую ответить на вопросы

# строки
со строками постараюсь сделать допустим чтобы по A создавало строку по умолчанию (либо авто-определение типа строки, если возможно), а, например, shift+A - задание строки с выбором опций. Пока разве-что "A, Enter" для быстрого создания такой же строки.

# анализатор
сейчас действительно примитивный. Вплотную хотел им занятся после версии 2.x. Насчет эмулятра не знаю, я хотел сделать статический анализатор. Но в любом случае медиану со временем я уберу. Также не хотелось бы делать анализатор под каждый процессор. Буду пытаться сделать универсальный.

# поиск в списках (по ctrl+f)
я подправил, чтобы удалялось ненужное выделение. Может быть проблема была в этом. Если строка найдена, то она должна выделиться.

# горячих клавиш пока нет
но, постараюсь в ближайших версиях добавить

# иконки
100% нужно графическое оформление. Думаю, сделаю простой набор иконок для начала.

Вообще за конструктив спасибо, если есть другие идеи, пишите. Сроки выполнени я не гарантирую, но буду стараться учесть пожелания

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

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

Создано: 15 мая 2014 19:16
· Личное сообщение · #27

vden пишет:
Насчет эмулятра не знаю, я хотел сделать статический анализатор.

Ну анализ через эмулятор это тоже своего рода статический анализ. Делается некий p-код, который позволит проследить изменения регистров и локальных переменных, хотя бы внутри базовых блоков. И тогда все call esi в моей исследуемой программе (я взял инсталлятор VideoLan Player для экспериментов) легко станут вызовами Win32 API и их не надо будет отображать в окне Problems.

Приведу пример методики:
Code:
  1. 0x406E59 8B357C954200     mov esi, dword ptr [SendMessageA]
  2. 0x406E5F C745B401000000   mov dword ptr [ebp-0x4C], 1
  3. 0x406E66 C745C84C594200   mov dword ptr [ebp-0x38], 0x42594C
  4. 0x406E6D C744240C00000000 mov dword ptr [esp+0xC], 0
  5. 0x406E75 C744240800000000 mov dword ptr [esp+8], 0
  6. 0x406E7D C744240404100000 mov dword ptr [esp+4], 0x1004
  7. 0x406E85 891C24           mov [esp], ebx
  8. 0x406E88 FFD6             call esi
  9. 0x406E8A C745BC00000000   mov dword ptr [ebp-0x44], 0
  10. 0x406E91 29F8             sub eax, edi

Проходим анализом по коду и создаем массив изменений регистров и переменных (сразу на Delphi):

var1.type := REGISTER;
var1.name := "ESI";
var1.value :="d[SendMessageA]";
var2.type := MEMORY;
var2.name := "d[EBP-0x4C]";
var2.value := "1";
...
При просмотре очередной команды обновляем состояние созданной переменной, если такая уже есть в списке. При использовании переменной смотрим, используется она уже или нет. Когда доходим до "call esi", мы уже знаем, что в esi лежит ссылка на SendMessageA. Этот процесс по сути и есть эмуляция. Только высокого уровня. Подобные методы используют ariadne и VMSweeper.

Добавлено спустя 6 минут
vden пишет:
я подправил, чтобы удалялось ненужное выделение. Может быть проблема была в этом. Если строка найдена, то она должна выделиться.

Вот сейчас вижу сообщение в логе: "Pattern not found. Stopped at 0x410FFF". До этого ничего не было. Т.е. видимо, окно сообщений не было в активе. Наверно было бы логично в самом окне поиска тоже выводить где-нибудь, что строка не найдена. А то создавалось ощущение, что ничего не происходит. Сообщение выдавать - это тоска. Опять же я ратую за меньшее кол-во действий, которое должен совершать пользователь. Что касается 'a' + 'Enter' - да, я так и делаю. Хотелось бы просто 'a'.

Добавлено спустя 14 минут
Опробовал графы - рульно. Только жаль, что граф рисуется с того места, где стоит курсор. Ну оно тоже может быть полезно. Но если бы был анализатор, способный различить границы функций, то можно было бы сразу функции рисовать в графах. Еще подсветку синтаксиса можно добавить в графы (ну, я полагаю, оно просто не дописано). А вот двигать вершины графа как в IDA - лично мне не особо нужно. В IDA бесило порой, что случайно сдвинешь вершину и уже нарушается порядок, перекрываются вершины. Пункт меню "Layout graph" был самым популярным, когда я работал в ней с графами.



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

Создано: 15 мая 2014 20:00 · Поправил: vden
· Личное сообщение · #28

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

Я сначала подумал речь о ctrl+f для окна которое справа. Если будет удобнее, то можно и модальное окно вывести, если ничего не найдено.


кому лень качать чтобы посмотреть графы, я сделал небольшое видео. Качество 480, что-то я не понял как залить в лучшем качестве
--> graphs <--



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

Создано: 15 мая 2014 20:12
· Личное сообщение · #29

int пишет:
Сообщение выдавать - это тоска.

vden пишет:
Если будет удобнее, то можно и модальное окно вывести, если ничего не найдено.

ИМХО не надо)

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

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

Создано: 21 мая 2014 21:44
· Личное сообщение · #30

Немного обновил и добавил ссылку в шапку на текущую/экспериментальную сборку

что поменялось:
- если grphlt.dll (graph layout) не может загрузится (на XP), то ошибка игнорируется.
- немного иконок
- меню Search\String scan (поиск 7-битных строк, совсем простой поиск). Выделенные строки можно применить из контекстного меню.

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

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

Создано: 23 мая 2014 21:50
· Личное сообщение · #31

Сейчас разбирал один файл с таким кодом:
Code:
  1. 0x100374D0 B80C000000       mov eax, 0xC
  2. 0x100374D5 668901           mov [ecx], ax
  3. 0x100374D8 C74104464B4653   mov dword ptr [ecx+4], 0x53464B46
  4. 0x100374DF C3               retn
  5. 0x100374E0 B80C000000       mov eax, 0xC
  6. 0x100374E5 668901           mov [ecx], ax
  7. 0x100374E8 C74104464B4652   mov dword ptr [ecx+4], 0x52464B46
  8. 0x100374EF C3               retn
  9. 0x100374F0 8B542404         mov edx, dword ptr [esp+4]
  10. 0x100374F4 B840000000       mov eax, 0x40
  11. 0x100374F9 668901           mov [ecx], ax
  12. 0x100374FC C7410450464B43   mov dword ptr [ecx+4], 0x434B4650
  13. 0x10037503 895108           mov [ecx+8], edx
  14. 0x10037506 C20400           retn 4

Очень не удобно, что нет возможности превратить 0x434B4650 в операнд вида 'CKFP' (ChromaKey Fill Source, очевидно, ковыряю телевизионный пульт), это в IDA делалось по 'r'.


<< . 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 » Выход » ЛС
   Для печати Для печати