-- Опять хочу в Париж -- Что, опять в Париж ? -- Нет, опять хочу ... (анекдот советских времен) -------- Хочу написать свой дизассемблер. Знаю, видел на этом форуме, что не только у меня возникло такое странное желание. Вот и я тоже хочу. Опять хочу, уже давно... Это будет дизассемблер для исследования программ. Основная его задача - дать возможность программисту заглянуть в ту или иную программу, посмотреть, как она устроена. Это непременно должен быть интерактивный дизассемблер, поскольку исследование проводит человек, а не какой-нибудь автомат. И этот дизассемблер должен работать по командам исследователя - выдавать запрошенную информацию. И еще одно условие, которое я себе поставил. Это должна получиться добротная удобная программа для пользователя, а не какая-то там кустарная поделка, с которой сможет управляться только ее автор. А ежели такую цель не ставить, то и незачем все это затевать. Язык разработки будет C++. Видел на форуме совет вот в этой теме http://wasm.ru/forum/viewtopic.php?id=34454&p=1 О том, что дизассемблер нужно писать на чистом Си, без плюс-плюс. Но там, к сожалению, не поясняется, почему именно так. Ну да я все равно обычно без классов обхожусь. А C++ без классов - это вроде бы как раз и получается почти что чистый Си ... Название для программы уже есть - "FE23". Старый файл ( fe23.exe ) с датой 1993 года до сих пор хранится в недрах жесткого диска на моем компьютере. Вот потому я и написал в начале этой темы, что "опять хочу".
Эм.. думаю, сведется все к "хочу", а не к "Парижу"... ------------------- Если хотите написать - пишите, кто не дает ? Лучше выложите сюда ваши наработки по теме, может будет резонанс хоть какой то..
Roohrick Это высказывание показывает ваш уровень как программиста, по-этому не думаю что у вас большие шансы на успех. Он определяется прежде всего не языком, а архитектурой.
Вообщем IDA уже давно есть. Огромную "радость" исследований с этим диззассемблером может испытать любой желающий. Смысл у нового диззассемблера будет лишь только если он существенно уменшит эту "радость", плюс ещё должен быть ассемблер, который мог-бы компилировать полученные исходники.
Roohrick я джва года уже хочу такую игру. -- ничего не напоминает ? можно грабить корованы и т.п. вообще Booster сказал в точку -- ваши шансы на успех не слишком большие, ибо не языком все определяется. главное тут -- шарить в сабже, а напейсать можно на чем угодно -- хоть на пюре си, хоть на ссы ++, хоть на аде, хоть на дельфи. На последнем кстати ИДА Про и написана. А вы про какого-то умника и рекомендации си... вам уже значит 40 чтоль ? пора б уже глупости-то бросить имхо. это ладно -- если б дале бабке, сказале -- живи, делай что хочешь, в кайф живи корочи. тогда да, можно делать что угодно, хоть дизассемблер писать на брайнфаке. а когда надо пахать -- то тут уже хрен чего напишешь для себя. удаче короче.
Дайте ка угадаю. Нет ни плана разработки, ни бизнес-плана, но есть другой очень хороший план, от которого рождаются Гениальные Идеи™ ? Актуальные проблемы тоже не були изучены, на пример: The current implementation of the VMProtect disassembler generator is an IDA plugin, consisting of roughly 5KLoC of C++. It constructs OCaml source code for a disassembler that converts raw bytes into VMProtect bytecode. Некоторые начинают раньше, чем в 22 года (не судите по себе?)
Большое спасибо всем, кто посетил эту тему. И еще большее спасибо тем, кто откликнулся. Теперь буду готовить длинный ответ на Ваши вопросы. Этой ночью отправлю ...
Еще раз всем большое спасибо. Вы мне очень помогли. Текущая ситуация с программой FE23 Работа над этим проектом была начата 13 октября 2007. Дата точная, я ее взял сейчас из журнала, который веду, в который записываю, что когда было сделано. (И еще много чего туда записываю.) Так что скоро этому моему проекту будет три года. Прошлой осенью (2009) мне стало окончательно ясно, что пора бы уже что-то показывать. Что нельзя дальше продолжать, оставаясь единственным пользователем. Наметил к Новому году опубликовать первую версию. Не получилось, не сумел. Не буду анализировать причины. Сейчас попытался здесь что-то написать, но стало выходить слишком сложно и длинно, так что все это стер. А если говорить короче, то файл ( fe23_10.exe ), версия 1.0 уже приготовлен. Наконец-то, приготовлен. В программе сделано еще далеко не все, что было задумано. И даже не все, что обязательно должно быть закончено. Но с этой программой я уже заглянул в несколько EXE файлов, высмотрел там много интересного. Значит, и для кого-то еще эта программа тоже может оказаться полезной. Теперь вышла еще одна задержка - задержка с сайтом программы. На этом сайте будет довольно большая инструкция. Без инструкции никак нельзя. Программа сложная, причем даже идеологически сложная. На сегодня готовы еще не все страницы этой инструкции. Но надеюсь, что через неделю все страницы (или хотя бы основные) будут готовы и появятся на сайте. Вместе с EXE файлом программы. Зачем появилась эта тема на WASM.RU Уже давно я выбрал форум WASM.RU той первой аудиторией, где я объявлю о своей программе. И теперь вот начал ее таким способом раскручивать. Пусть, думаю, это мое сообщение о будущей программе повисит недельку - другую, так что человек десять или даже двадцать это сообщение прочитает. А я тем временем как раз все с сайтом закончу. Но, оказывается, я немного ошибся. Интерес к такой программе больше, чем я ожидал. Ну, что же, мне приятно узнать о такой своей ошибке. Теперь нужно форсировать подготовку сайта.
Пожалуй стоит еще несколько слов сказать по тем отдельным моментам, которые были в дискуссии затронуты. (А заодно буду учиться, как на форуме цитаты вставлять). Спасибо за совет. Непременно так и сделаю. Booster Guru_of_Zen К вопросу о языке программирования для написания программы. Тут мы немного друг друга не поняли. Потому что не было у меня такого вопроса, какой выбрать язык программирования. Так как давно я уже на язык Си перешел и только на Си все программы пишу. А первой машиной, где я этот язык мог вживую, а не на бумаге пощупать, была машина "Электроника - 85"... s_d_f Guru_of_Zen Про мою старую FE23 (1993) и про IDA Та старая программа у меня называлась "Интерактивный дизассемблер". Причем это было не имя собственное конкретной программы, а новый класс программ. И ведь сам придумал. Но само слово - "интерактивный" - это у кого-то подхватил. Вот только до интерактивности та программа так и не доросла. Потому что заниматься на работе каким-нибудь хобби - это не всегда удается. Однако, хорошие идеи - они одновременно в разные головы влетают. Года через два или три увидел я по телевизору, как молоденький мальчик рассказывает про свое изобретение - про чудо программу, которую он назвал "Интерактивный дизассемблер". Ну вот, думаю, не стал я той своей программой заниматься, а теперь уже и это хорошее название заняли ... Благодарю Вас за добрые слова Все это очень близко к истине. Но вот насчет бизнес-плана - это сложнее. Это пока совсем непонятно. Посмотрим. Пока про бизнес речь совсем не идет.
когдато встраивал в луа дизасм. сорец в аттаче. выдран из инферно и немного обточен в сторону более интел синтаксиса. и добавил пару команд. команды в нем описаны далеко не все. если вам этот сорец понравится - можете доточить и дополнить еще команд. в инферно этот файлик под гпл, если вам это значит. имеет 3 функции int i386inst(ulong, char, char*, int); int i386das(ulong, char*, int); int i386instlen(ulong); пример использования в конце, в функции int (lua_State *L) она принимает число - адрес и возвращает мнемонику команды и длину ее кода в байтах. те (cmd_mnem, cmd_len) = LDas386(addr); дерзайте.
Благодарю Вас. Вопрос для меня актуальный. Ваш файл скачал, непременно посмотрю. Однако, отстал я, видимо, от современного русского языка, не все понял. Вот эти два слова не знаю - "луа", "инферно". И не получается догадаться. С лицензией GPL я пока не полностью разобрался. Если поясните, то это было бы хорошо. Могу ли я маленький исходник, опубликованный под GPL вставить в свою большую программу. Вроде бы если маленький кусочек под GPL, то и вся эта большая программа обязана быть под GPL, то есть, с открытым исходным кодом. А у меня таких планов пока как-то не было.
Roohrick это не из русских языков. это http://lua.org http://www.vitanuova.com сорцы инферно доступны под двумя лицензиями - гпл/лайк-гпл и коммерческой. если вам это так впирается, то можете купить коммерческую. она недорогая
Roohrick фиг ли с тем сайтом. лаконичность рулит. учитесь у клерка http://indy-vx.narod.ru/ да и что с тем "интерактивным дизасемблером"? дизасм ядро я вам запостил. не законченое, конечно. но структура его таблиц очень простая. допишете, если захотите. сама бизнес-логика? ну ее точно не надо на С писать. а хотите, полный вариант запощу? там не только дизасм, но и скрипт-движок и гуй и даже колоризер для дизасма. даже асм есть. правда несовместимый по синтаксису. но должно ж остаться хоть чтото для вас?
Все прочитал. Всем спасибо. С сайтом все же нужно доделать, хотя бы самое необходимое. Совсем немного осталось...
Roohrick вы б написали чего утворить пытаетесь. у нас тут парни дизасмы на жабаскрипте писали. онлайн, да. авось бы что и подсказали. или вы хотите нечто вроде такого http://worrydream.com/ ?