Сейчас на форуме: bartolomeo, -Sanchez-, morgot (+3 невидимых)

 eXeL@B —› Софт, инструменты —› Дизасм.
<< . 1 . 2 . 3 . 4 .
Посл.ответ Сообщение


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

Создано: 24 октября 2016 12:21 · Поправил: difexacaw
· Личное сообщение · #1

Здрасте.

Необходим быстрый, очень быстрый дизассемблер x86. Должен уметь определить длину инструкции и размер адресуемой памяти(eg: inc dword [eax] -> 4байта).

Есть множество всяких разных, но обычно они весьма толстые, либо не поддерживают определение размера данных. Свой делать пока нет времени.

Нужен если не с этой фичей, то хотя бы дизасм длин. Тот который я юзаю не профайл.

-----
vx





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

Создано: 02 сентября 2017 12:22
· Личное сообщение · #2

sendersu

Что у них за стиль изложения, не оформить инфу в виде публикации, а вещать в устной форме на каких то форумах. О чём он говорит хз, откуда он берёт инфу по errata тоже не понятно, из публикаций производителя по errata ?
Вполне вероятно, так как блокировочная проблема на пне 97 года.

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 02 сентября 2017 12:23
· Личное сообщение · #3

sendersu
Судя по числу "красных" инструкций в логе, он скорее баги в декодере капстоуна нафаззил. А на счет "66h near branch" в мануалах интела черным по белому говорится, что префикс не влияет на размер оффсета, а только на то, что будет в RIP обнуляться.

Добавлено спустя 1 минуту
difexacaw
Кстате, он там твой RLDE заюзал. Спросил разрешение хоть?




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

Создано: 02 сентября 2017 12:41
· Личное сообщение · #4

rmn

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

-----
vx





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

Создано: 06 сентября 2017 18:23
· Личное сообщение · #5

Veliant

> zydis

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

-----
vx




Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 07 сентября 2017 02:03 · Поправил: shellstorm
· Личное сообщение · #6

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

Могу, но нет смысла, этот движок ничем выдающимся не отличается, хуже того же XED во всех смыслах, код разве что немного чище написан. Тестил его как то и параллельно сравнивал с выхлопом syser'a.
Вот собранная dll и тестовый exe http://rgho.st/6X8fTwtRD

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


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

Создано: 10 сентября 2017 22:40
· Личное сообщение · #7

shellstorm

Спасибо за сборку. Я немного глянул, какая то запутанная весч, не внятная документация, короче хз как это запустить.
Общая оценка либы - код отвратительный, лапша из mmx и 8-бит операций, декодер не табличный. Это значит что профайл будет никаким.

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 10 сентября 2017 22:59
· Личное сообщение · #8

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




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

Создано: 10 сентября 2017 23:21 · Поправил: difexacaw
· Личное сообщение · #9

rmn

Почему же не запилишь, в эмуляторах ав именно табличные и юзаются. Но на реализацию нужна куча времени.
У меня например появилась задача(чётко не сформулирована) требующая формирование DFG, снова нужно искать подходящий дизасм. Свой пилить слишком долго. XED - хороший и годный, но он МЕДЛЕННЫЙ.

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 10 сентября 2017 23:48
· Личное сообщение · #10

difexacaw пишет:
Почему же не запилишь

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




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

Создано: 10 сентября 2017 23:53 · Поправил: difexacaw
· Личное сообщение · #11

rmn

Вложенная индексация - так авер это юзал, VBA вроде. Много памяти занимает, но зато быстро. Там даже MRM трансляции вроде табличные были.

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 11 сентября 2017 00:01
· Личное сообщение · #12

difexacaw
Ну да, группу 0Fxx на сотни таблиц дублировать. Ящитаю, это немного не годно, когда функция по преобразованию 15 байтного хеша в мнемонику и три операнда занимает кодеса как excel




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

Создано: 11 сентября 2017 00:30
· Личное сообщение · #13

rmn

В мнемоники собирать - для этого профайл обычно не нужен, он важен для динамики, длину определить или битовую маску, MRM etc. Для такого случая можно пожертвовать размером, тем более что таблицы можно распаковать в памяти.

-----
vx




Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 11 сентября 2017 01:32
· Личное сообщение · #14

difexacaw пишет: Я немного глянул, какая то запутанная весч

Там существенная часть проекта собрана автоматикой. У google был проект для парсинга pdf intel, можно самому нагенерировать большую часть кода. Проект на github в хабе google




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

Создано: 14 сентября 2017 19:14 · Поправил: difexacaw
· Личное сообщение · #15

shellstorm

Ну и зачем оно тогда нужно, есть годные моторы. Зачем изобретать не рабочий велосипед ?

Тогда автор данного проекта просто дурак. Если не учёл изначально проблемы моторов, а реализовал это просто что бы было на гхб

Чем это лучше кседа ?
- где сравнение по профайлу, ксед весьма шустрый. Зачем писать нечто, что хуже уже созданного и мощного проекта. Встроить бэкдор - так всё равно нужно преимущество, что бы это заюзали.

-----
vx





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

Создано: 04 июля 2019 19:52
· Личное сообщение · #16

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

В xed_decode() передаётся структура на стеке потока. Он рандомом значения возвращает когда несколько потоков работает и только в одном апп. Или передаёт управление изнутри на рандом адрес.
Если обернуть в RWL-блокировку это ничего не даёт, всё равно та же ошибка. Я попробовал скопировать структуру до вызова декодера, после возврата ошибки - восстановить копию структуры и повторно вызвать декодер - ошибка пропадает. Как это разобрать я пока хз.

Может кто сталкивался ?

-----
vx



<< . 1 . 2 . 3 . 4 .
 eXeL@B —› Софт, инструменты —› Дизасм.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати