Хочу написать свой дизассемблер. Написать просто дизассемблер не составляет труда(все что нужно это построить пару таблиц и все....), но вот другое дело интерактивность... IDA pro лучшее что есть на сегоднишний день но как мы все знаем и она ошибается. Конечно я не особо надеюсь выиграть у IDA pro, но все же хочу написать подобное..... ))) Писать буду на (С++) + (QT) Возможно Linux(only KDE) + Mac. (Думаю еще debugger отдельно, но это как получится, на OllyDbg забили Immynity че то встремный) Может будет open source ну free точно(что посоветуете???) Вопрос собственно Что можно почитать про дизассембилирование(Каспера читал) Может есть че то из open source??? Или какие то идеи?? Чего не хватает???
Хе, а зачем? Ведь достаточно "построить пару таблиц и все....". Копипастингом и быдлокодер напишет дизассемблер. И вообще, в чем смысл этого?
Интерактивный Вы программы больше "Hello world" делали??( "Hello world!!!!" ни в счет ) Вопрос не в том как это работает просто какие у кого какие предложения о том как что лучше.... Например индификация функций, FLIRT и так далее.... Ну кто нибудь опытный выскажет свое мнение????
> "Hello world" делали??( "Hello world!!!!" ни в счет ) В консоли может быть установлено несколько шрифтов одновременно.
Ну, я б писал под Винду и на Дельфях, но дело не в языке и среде. Мощь IDA объясняется тем, что сей инструмент не просто переводит из машинного кода в ассемблерные мнемоники, а старается разгадать логику дизассемблируемой программы -- например, определив точку входа из заголовка exe-файла и зная, что там будет точно исполнимый код, а не данные (на то она и точка входа), он пытается дизассемблировать находящуюся по этому адресу процедуру до её логического конца, отслеживая команды перехода. Анализируя команды перехода, он пытается обнаружить другие процедуры и т.д. Кроме того, он старается определить значения косвенных адресов перехода (анализируя предшествующие инструкции и т.п.). В общем, это гибрид дизассемблера и эмулятора, пытающегося "выполнить" дизассемблируемый код. Мне думается, что никакой специальной литературы по этому вопросу не существует, ну а для реализации такой задачи достаточно хороших программистских навыков, здравого смысла и очччень большого количества времени.
в принципе, можно добавить желаемые фичи в уже существующий опенсорцовый. я бы порекомендовал опенватком дебугер. который, кроме всего прочего, еще и кроссплатформенный.
все бы хорошо, только это краткий беглый курс так растянут что читать (имхо) нереально просто, или пропускать по полстраници (можно чтото важно потерять) или просто засыпаешь
а что все забыли про radare? ))) вполне исходники помогут )) http://www.radare.org/ да, и не верьте, что там на главной написано, вполне себе дизассемблер с неплохим функционалом )
опен сурс дазасм -ов полно,бери нехочу,но интерактивность это другое...по моему скромному мнению,нужно юзать нейронные сети чтобы получить что-то нормальное...
Ox8BFF55 Имею предложить дизассемблерный движек 16/32/64. Еще много чего не сделано, но уже можно кое-на что посмотреть.
А по мне -- крайне полезная. Зачем самому разгадывать, что делает та или иная функция, которая в итоге окажется стандартной библиотечной, если дизасм может сам это определить?
Не знаю, не знаю. У меня всегда опознавал "нормальные" функции правильно, а дизасмить мне нередко приходилось.