Интерактивный дизассемблер

Тема в разделе "WASM.PROJECTS", создана пользователем Roohrick, 8 июл 2010.

  1. Roohrick

    Roohrick New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2010
    Сообщения:
    10
    -- Опять хочу в Париж
    -- Что, опять в Париж ?
    -- Нет, опять хочу ...
    (анекдот советских времен)

    --------

    Хочу написать свой дизассемблер.
    Знаю, видел на этом форуме, что не только у меня возникло такое странное желание. Вот и я тоже хочу. Опять хочу, уже давно...

    Это будет дизассемблер для исследования программ. Основная его задача - дать возможность программисту заглянуть в ту или иную программу, посмотреть, как она устроена.

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

    И еще одно условие, которое я себе поставил. Это должна получиться добротная удобная программа для пользователя, а не какая-то там кустарная поделка, с которой сможет управляться только ее автор. А ежели такую цель не ставить, то и незачем все это затевать.

    Язык разработки будет C++.

    Видел на форуме совет вот в этой теме
    http://wasm.ru/forum/viewtopic.php?id=34454&p=1

    О том, что дизассемблер нужно писать на чистом Си, без плюс-плюс. Но там, к сожалению, не поясняется, почему именно так. Ну да я все равно обычно без классов обхожусь. А C++ без классов - это вроде бы как раз и получается почти
    что чистый Си ...

    Название для программы уже есть - "FE23". Старый файл ( fe23.exe ) с датой 1993 года до сих пор хранится в недрах жесткого диска на моем компьютере. Вот потому я и написал в начале этой темы, что "опять хочу".
     
    Cytrus нравится это.
  2. c4m310t

    c4m310t New Member

    Публикаций:
    0
    Регистрация:
    19 дек 2008
    Сообщения:
    237
    Эм.. думаю, сведется все к "хочу", а не к "Парижу"...
    -------------------
    Если хотите написать - пишите, кто не дает ?
    Лучше выложите сюда ваши наработки по теме, может будет резонанс хоть какой то..
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Roohrick
    Это высказывание показывает ваш уровень как программиста, по-этому не думаю что у вас большие шансы на успех. Он определяется прежде всего не языком, а архитектурой.
     
  4. s_d_f

    s_d_f New Member

    Публикаций:
    0
    Регистрация:
    15 май 2008
    Сообщения:
    342
    Вообщем IDA уже давно есть. Огромную "радость" исследований с этим диззассемблером может испытать любой желающий. Смысл у нового диззассемблера будет лишь только если он существенно уменшит эту "радость", плюс ещё должен быть ассемблер, который мог-бы компилировать полученные исходники.
     
  5. Guru_of_Zen

    Guru_of_Zen Member

    Публикаций:
    0
    Регистрация:
    21 янв 2010
    Сообщения:
    288
    Roohrick
    я джва года уже хочу такую игру. -- ничего не напоминает ?

    можно грабить корованы и т.п.

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

    главное тут -- шарить в сабже, а напейсать можно на чем угодно -- хоть на пюре си, хоть на ссы ++, хоть на аде, хоть на дельфи. На последнем кстати ИДА Про и написана. А вы про какого-то умника и рекомендации си...

    вам уже значит 40 чтоль ? ;)
    пора б уже глупости-то бросить имхо.

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

    а когда надо пахать -- то тут уже хрен чего напишешь для себя.

    удаче короче.
     
  6. Guru_of_Zen

    Guru_of_Zen Member

    Публикаций:
    0
    Регистрация:
    21 янв 2010
    Сообщения:
    288
    "должен быть" хехе

    как гриться -- трындеть -- не мешки ворочать.

    присоединяйтесь, пишите :)
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Roohrick
    вам благословение нужно?) пишите )4
     
  8. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Дайте ка угадаю. Нет ни плана разработки, ни бизнес-плана, но есть другой очень хороший план, от которого рождаются Гениальные Идеи™ ?

    Актуальные проблемы тоже не були изучены, на пример:
    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 года (не судите по себе?) :)
     
  9. Roohrick

    Roohrick New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2010
    Сообщения:
    10
    Большое спасибо всем, кто посетил эту тему.

    И еще большее спасибо тем, кто откликнулся.

    Теперь буду готовить длинный ответ на Ваши вопросы. Этой ночью отправлю ...
     
  10. Roohrick

    Roohrick New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2010
    Сообщения:
    10
    Еще раз всем большое спасибо. Вы мне очень помогли.

    Текущая ситуация с программой FE23

    Работа над этим проектом была начата 13 октября 2007. Дата точная, я ее взял сейчас из журнала, который веду, в который записываю, что когда было сделано. (И еще много чего туда записываю.) Так что скоро этому моему проекту будет три года.

    Прошлой осенью (2009) мне стало окончательно ясно, что пора бы уже что-то показывать. Что нельзя дальше продолжать, оставаясь единственным пользователем. Наметил к Новому году опубликовать первую версию.

    Не получилось, не сумел. Не буду анализировать причины. Сейчас попытался здесь что-то написать, но стало выходить слишком сложно и длинно, так что все это стер.

    А если говорить короче, то файл ( fe23_10.exe ), версия 1.0 уже приготовлен. Наконец-то, приготовлен.

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

    Теперь вышла еще одна задержка - задержка с сайтом программы. На этом сайте будет довольно большая инструкция. Без инструкции никак нельзя. Программа сложная, причем даже идеологически сложная. На сегодня готовы еще не все страницы этой инструкции. Но надеюсь, что через неделю все страницы (или хотя бы основные) будут готовы и появятся на сайте. Вместе с EXE файлом программы.

    Зачем появилась эта тема на WASM.RU

    Уже давно я выбрал форум WASM.RU той первой аудиторией, где я объявлю о своей программе. И теперь вот начал ее таким способом раскручивать. Пусть, думаю, это мое сообщение о будущей программе повисит недельку - другую, так что человек десять или даже двадцать это сообщение прочитает. А я тем временем как раз все с сайтом закончу.

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

    Roohrick New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2010
    Сообщения:
    10
    Пожалуй стоит еще несколько слов сказать по тем отдельным моментам, которые были в дискуссии затронуты. (А заодно буду учиться, как на форуме цитаты вставлять).

    Спасибо за совет. Непременно так и сделаю.

    Booster
    Guru_of_Zen
    К вопросу о языке программирования для написания программы.

    Тут мы немного друг друга не поняли. Потому что не было у меня такого вопроса, какой выбрать язык программирования. Так как давно я уже на язык Си перешел и только на Си все программы пишу. А первой машиной, где я этот язык мог вживую, а не на бумаге пощупать, была машина "Электроника - 85"...

    s_d_f
    Guru_of_Zen
    Про мою старую FE23 (1993) и про IDA

    Та старая программа у меня называлась "Интерактивный дизассемблер". Причем это было не имя собственное конкретной программы, а новый класс программ. И ведь сам придумал. Но само слово - "интерактивный" - это у кого-то подхватил.

    Вот только до интерактивности та программа так и не доросла. Потому что заниматься на работе каким-нибудь хобби - это не всегда удается.

    Однако, хорошие идеи - они одновременно в разные головы влетают. Года через два или три увидел я по телевизору, как молоденький мальчик рассказывает про свое изобретение - про чудо программу, которую он назвал "Интерактивный дизассемблер". Ну вот, думаю, не стал я той своей программой заниматься, а теперь уже и это хорошее название заняли ...

    Благодарю Вас за добрые слова

    Все это очень близко к истине.

    Но вот насчет бизнес-плана - это сложнее. Это пока совсем непонятно. Посмотрим. Пока про бизнес речь совсем не идет.
     
  12. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    когдато встраивал в луа дизасм. сорец в аттаче. выдран из инферно и немного обточен в сторону более интел синтаксиса. и добавил пару команд.
    команды в нем описаны далеко не все. если вам этот сорец понравится - можете доточить и дополнить еще команд.
    в инферно этот файлик под гпл, если вам это значит.

    имеет 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);

    дерзайте.
     
  13. Roohrick

    Roohrick New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2010
    Сообщения:
    10
    Благодарю Вас. Вопрос для меня актуальный.
    Ваш файл скачал, непременно посмотрю.

    Однако, отстал я, видимо, от современного русского языка, не все понял. Вот эти два слова не знаю - "луа", "инферно". И не получается догадаться.

    С лицензией GPL я пока не полностью разобрался. Если поясните, то это было бы хорошо. Могу ли я маленький исходник, опубликованный под GPL вставить в свою большую программу. Вроде бы если маленький кусочек под GPL, то и вся эта большая программа обязана быть под GPL, то есть, с открытым исходным кодом. А у меня таких планов пока как-то не было.
     
  14. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    значит пиши сам
     
  15. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Roohrick
    это не из русских языков. это
    http://lua.org
    http://www.vitanuova.com

    сорцы инферно доступны под двумя лицензиями - гпл/лайк-гпл и коммерческой. если вам это так впирается, то можете купить коммерческую. она недорогая
     
  16. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    но вообщето
    "луа" == луна
    "инферно" == ад
     
  17. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Roohrick
    если не планируется оффициальная продажа продукта, то забей на все лицензии
     
  18. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Roohrick
    фиг ли с тем сайтом. лаконичность рулит. учитесь у клерка
    http://indy-vx.narod.ru/

    да и что с тем "интерактивным дизасемблером"? дизасм ядро я вам запостил. не законченое, конечно. но структура его таблиц очень простая. допишете, если захотите. сама бизнес-логика? ну ее точно не надо на С писать. а хотите, полный вариант запощу? там не только дизасм, но и скрипт-движок и гуй и даже колоризер для дизасма.
    даже асм есть. правда несовместимый по синтаксису. но должно ж остаться хоть чтото для вас?
     
  19. Roohrick

    Roohrick New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2010
    Сообщения:
    10
    Все прочитал.
    Всем спасибо.

    С сайтом все же нужно доделать, хотя бы самое необходимое. Совсем немного осталось...
     
  20. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Roohrick
    вы б написали чего утворить пытаетесь. у нас тут парни дизасмы на жабаскрипте писали. онлайн, да. авось бы что и подсказали.

    или вы хотите нечто вроде такого
    http://worrydream.com/
    ?