· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Как написать дизассемблер?

<< . 1 . 2 . 3 . 4 . 5 . >>

Посл.отвђт Сообщенiе


Дата: Авг 8, 2003 16:52:02

вот за что вы взялись!!! Ну что ж интересная головоломочка :))
Согласен, планы наполеоновские :))
ИДА тут просто отдыхает...
Когда задумываюсь как бы все это реализовать - волосы начинают шевелиться на... кхм...


Дата: Авг 8, 2003 16:59:52

Max
Ну это ещё не самая сложная безумная идея. :)


Дата: Авг 8, 2003 17:54:02

Кстати, было бы хорошо админам скооперироваться с The Svin'ом и централизовано выложить его обучалки на сайте, а если + мануалы, было бы совсем хорошо.
А то в какой-то другой ветке они пробегали, я скачать не успел, а теперь не найду :(
а вещь полезная для всех


Дата: Авг 8, 2003 18:03:52

админам скооперироваться с The Svin'ом
Мы думаем над тем :))


Дата: Авг 8, 2003 18:15:32

ИДА тут просто отдыхает

Ну до IDA далеко, тем более что там появился и встроенный эмулятор для PE... Хотя идея хороша:)


Дата: Авг 8, 2003 18:27:03

Ну до IDA далеко, тем более что там появился и встроенный эмулятор для PE...

Честно говоря, фраза непонятна. Пояснить можно?


Дата: Авг 8, 2003 18:52:48

volodya

Если не ошибаюсь, с версии 4.5 в IDA есть эмулятор, позволяющий виртуально исполнять PE файлы... Но сам я этого не видал (ну нету у меня 4.5 версии), поэтому извиняйте, если что не так...


Дата: Авг 8, 2003 18:53:24

Отладчик там появился в 4.5, говорят, правда, отстойный.


Дата: Авг 8, 2003 18:58:12

Bog_

IDA давным-давно умела частично эмулировать работу лоадера. Тому следствием, например, ориентирование только на raw-байты и невозможность иногда видеть то, что видит стандартный хекс-редактор.
А что до "есть эмулятор, позволяющий виртуально исполнять PE файлы", пардон, эта фраза еще похлеще! Или я ее не понял, что очень вероятно.
Если имеется в виду частичная эмуляция лоадера - да, это так, благо алгоритмы лоадера известны давно. Если что-то другое - объясните.


Дата: Авг 8, 2003 19:06:26

volodya

Исправляюсь:) Появился там не эмулятор, а действительно дебагер (вот)...


Дата: Авг 8, 2003 19:13:06

masquer
Bog_

Думается мне, глупостью Ильфак занимается. Все равно конкуренцию Soft-Ice или даже OllyDbg он не составит. Лучше бы глюки поправил в дизассемблере. IDA 4.3 падает где надо и где не надо! 4.5, к слову, значительно стабильнее в работе!


Дата: Авг 8, 2003 19:40:03

Думается мне, глупостью Ильфак занимается
Ну почему, ИДА очень наглядно отображает код (комменты всякие, процедурки понимает, FLAIR тот же). Если ко всему этому отладчик нормальный прикрутить - работать было бы одно удовольствие.


Дата: Авг 8, 2003 19:51:10

IDA - да. Без сомнения. Самый лучший дизассебмлер. Хотя мне говорили, что с другими архитектурами, она, мягко говоря, не очень. Что до отладчика? Ну зачем? Я же говорю, до S-Ice им все равно не дотянуть!


Дата: Авг 9, 2003 05:10:36

У меня точно такая же задумка (свой дизасемблер,ассеблер,анализатор кода,супер-пупер вирусы).
и Полный контродь над кодом!Развернись мысля широоко!
Всё упираеться в компактную структуру опкодов!
Если появяться какие-то наработки
==>neo-book@narod.ru
Жду подержки.Необходимо раскрыть механизм!


Дата: Авг 9, 2003 06:26:47

2 The Svin
>У тебя дизассемлер только в одном режиме работает?
>32 разрядном?
Зависит как изначально задать, см описание
на http://www.quadspeedi.net/~smike/disasmdll.htm
короче, имеетcя export функция void SetIntelMode(int b32Bits),
которая и определяет изначальный режим.

16 разрябный режим тестировался меньше чем 32 разрядный,
но вроде, тоже работает,
вообще-то этот дисассамблер встроен в два моих продукта
которые тоже можно скачать и посмотреть его в действии
http://www.quadspeedi.net/~smike/index.html
http://www.quadspeedi.net/~smike/xedit.htm

>250 основных по первому байту + группа 0xf (которая для pentium 4
> практически заполнена с 0 до 256 по второму байту)
> Непонятно для меня это разъяснение,

я в "линейку" выложил архитектуру дисассемблера
пример
switch(pbyBuffer[0])
{
.......................
case 0x06:
case 0x0e:
case 0x16:
case 0x1e:
//push es,cs,ss,ds
nBytesInCurrentLine += 1;
strcpy(szOp,szPush);
nIndex = (pbyBuffer[0] & 0x18)>>3;
strcat(szOp,szRegSeg[nIndex]);
break;
......

отсюда - количество неветвяшихся case''ов = 245 (уточнаю, вместо 250)
256 - группы (саse'ы с ветвлением): 0xf, 0xfe, 0xff и
FloatPoint группа

switch(pbyBuffer[0])
{
case 0xd8:
case 0xd9:
case 0xda:
case 0xdb:
case 0xdc:
case 0xdd:
case 0xde:
case 0xdf:
//floating point operations
nBytesInCurrentLine = FloatPointOp(pbyBuffer, szOp);
break;
...............



>есть подводные камешки типа префиксов 0x66 и 0x67
> Так это на определение ID никак повлиять не может,
> только на переключение размерности "полного" операнда (66)

на 99% так, но не совсем, по крайней мере дисассемблеры MS VC
в зависимости от префикса 0x66 меняют и символику интрукции,
примеры: pushad/pusha, popad/popa, insd/insw
я последовал их примеру

>мелкие группки: 0xfe, 0xff и другие
> ?
> Непонял по какому принципу ты разделяешь FE и FF?
> По биту w что ли? И они у тебя в разные группы попадают.
> Разве ж это компактно?

согласен, между 0xfe и 0xff много общего, но 0xfe, как правильно,
вами замечено, имеет больше, пустых мест, которые
возможно в дальнейшем будут задействованы, под что-то
другое, скажем, так в Intel P 5/6/7
когда я писал, я не только группировал, но и думал о том,
как равиваться, т е чтобы код был более читабельным,
ведь через полгода можно и забыть, что и где лежит,
короче, но 0xfe/0xff подгруппы я положил отдельно,
именно по различию в количестве незаполненных полей,
далнешем, предположим, начанаю добавлять в 0xfe, группа 0xff
лежит отдельно, отлажена, работает, я ковыряю, только
0xfe, обезопасив себя от создания багов в уже отлаженной части 0xff

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


2 Edmond
>Так, может слабать Туториал по написанию Дизассемблера?
>Я готов поддержать!!!

ну туториал - это к Ильфаку,
от себя я бы мог просто поделится опытом,
без претензий на объективность - написать статейку типа "Горе от ума - или
как я писал дисассемлер 80x86"
ну а вы можете написать критику на эту статейку...
:))))
а вообще-то -
статейка это хорошо, ну а лучше сбацать чего-то такое, что можно продать...
:)))))

<< . 1 . 2 . 3 . 4 . 5 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.089