Я говорю не о шаблонах, а об обычных библиотечных функциях типа malloc'а. Находит, надо полагать, в лоб сравнивая машинный код каждой из найденных в программе функций со своей базой. Такие функции скомпилированы заранее, поэтому оптимизация и прочее на них не распространяются.
Завтра-послезавтра что-нибудь кину -- под рукой готового нет, а сейчас заниматься не могу (на работу дёрнули, гады).
Не торопите.... У меня сесия... А тут такие предменты Экология, Социалогия + застовляют от руки писать(то и есть шариковой ручкой, вообщем полный капец ). К статит таблиц с опкодами буду из storm воровать, что скажите(ссылку нет, но можно прогуглить)???? Конечно еще GUI рисовать.... Ну всякие фичи делать.... Конечно сейчас главное компонеты сделать, ну и конечно архитектура.... Вот так... П.С. Storm кросовский(и даже можно в ринг 0 вкидывать, единственное это скорость его) П.С. П.С. Хотел быстрее, но наверное не получится.....
извеняюсь... правельно будет distorm64. Видел, мне не очень понравилось, дажет Widget's(QHexView, disassmelber).... Так что буду использовать distorm64. Вообзе планы грандиозные, но эта сесси, м** пи**. )) (((.
Да понял я.... Все равно по мне так не подходит.... П.С. прочем посмотрим..... П.С. П.С. это я думаю не самое сложное надо думать на архитектурой, то и есть жмуляция, форматы файлов, форматы для сохранения данных(типо проект) вообщем хватает делов.... (еще всякие отладчики, crash dump наверное слишком много хочу??? )....
Если кто ворчит "зачем писать еще один дизассемблер" - чтобы он отличался от IDA Pro. В чем-то он будет хуже, а в чем-то может и лучше. Единственный способ заставить дизасм правильно распознавать библ. функции - это все их перечислить. Для этого - перебирать все компиляторы, режимы оптимизации и языки программирования.
Блин, а я старался как покороче. Вобщем я сказал про то, зачем писать еще один дизасм. И еще про то, как распознавать библ. функции.
Пользуюсь таблицами от MazeGen: http://ref.x86asm.net В принципе, в них есть все, что нужно для дизассемблера. А благодаря формату XML, процесс генерации таблиц для личного дизассемблера можно автоматизировать.
с каких это пор начинают с разработки гуя (кроме случаев когда вся прога гуя ради), да еще и включают его в ядро? кроме того дизасм вы ж решили взять готовый и максимум что - промодить. и это верное решение. гуй и дизасм лучше реализовать как модули и не заморачиваться с ними сразу, а взять готовые как есть. потом заменить можно будет. всякие парсеры всяких баз тоже в модули. также внутренний скриптоланг тоже стоит оформить как модуль. это позволит легко модифицировать его, заменять, поддерживать несколько языков одновременно ядром систем вроде иды является сервер для всех этих модулей. его задача связать их между собой наиболее простым, быстрым, гибким и противоглючным способом. и это действительно задача. например ида глючит так безбожно, тк именно эта деталь не проработана. и судя по тому, что ее досе не могут пофиксить - ядро иды и есть означеный салат из всего понемножку хотя эту деталь я бы тоже взял готовую
У меня есть наработки, писал когда-то. Делал классы. BinaryLoader __MZLoader ____PELoader Ну и.т.д полно можно сделать лоадеров, добавлять просто и легко. Все это пихает в общюю базу, а из нее Визуализер отображает в компонент на экране. Визуализеры тоже разные, под fasm, под masm, под tasm, но я писал основной под С--. Как дизасм-движок взял Cadt.
Поищи на Source Forge, там дофига и двигов и самих готовых дизассмов, может поможет. И не забывай о том что опен сорс=)) У меня например при вводе слова Disassembler вывалилось куча проектов, некоторые из них реально притендуют на звание лучших опен сорс проектов-)