Привет всем! Наваял я маленькую и убогую программку для выдирания функции из ассемблеровского файла генерируемого IDAой . . . (Решил, что "лучше день потеряем, потом за час долетим" ) Программа хоть и убогая (т.к. писал сугубо для себя), но уже работает Выдерает интересующую функцию со всем, от чего она зависит (переменные и другие функции и т.д. рекурсивно) и генерит готовый для компиляции МАСМом файл. . . . Если кому интересна эта тема, то могу немного довести ее до ума и выложить для пользования. Программа жестко привязана к формату, в котором сохраняет асм. код IDA (т.к. иначе сложно анализатор используемых переменных делать) . . . Но меня это устраивает. С уважением, Василий.
Привет всем! 2 bogrus - писал на обычном С. 2 sne & all - думаю сегодня, чуть попозже, немного облагорожу ее и можно будет смотреть. (то что я от нее хотел, она уже делает, и результат даже компилируеться ) ) Только вот куда выложить то ? У меня некуда. . . И еще вопрос - какой интерфейс желателен ? Для меня проще, конечно, консольное приложение с командной строкой. Но можно и простенькое GUI прикрутить (тока тогда на Билдере будет). И последнее. Прога хоть и работает, но во первых, сильно я ее не тестировал (т.е. возможны глюки), во вторых она очень не оптимальна (т.к. времени у меня в обрез и я делал лишь-бы работала). Грузит asm файл целиком в память и там уже парсит его. Т.е. чем больше файл, тем долше работает и памяти жрет много. И в третьих, как уже писал, жестко рассчитана на формат IDA. Вызываемые функции то вычислить просто (ищем команду call), а вот ссылки и переменные . . . Я долго думать не стал, и ищу все строчки вида "off_*", "word_*" и т.д. Может кто что-то лучшее посоветует ? Делать препроцессор АСМа совершенно нет ни времени ни желания. . . С уважением, Василий.
>Может кто что-то лучшее посоветует ? написать либо скрипт на IDC, либо плагин для IDA. многие проблемы отпадут сами собой
Кноечно быстрее, и намного проще для реализации. Но памяти требует больше. Например у меня, размер asm файла от IDA'ы 45Мб Конечно, это очень не много для современных компов, но все-равно это жлобство тратить столько памяти для этого. Я начинал программировать когда еще мало кто видел Windows 3.1 В те времена меня бы "убили" если бы я такое сделал Оно может и лучше, только во первых, я не придумал как оно должно выглядеть. Во вторых, времени нет. В третьих программу я все-таки делал в первую очередь для себя самого, а меня командная строка не пугает В четвертых, GUI всегда можно доделать. И, накоонец, может кто-то прикрутит GUI интерфейс для запуска этой программы и передачи ей параметров через командную строку. Скомпилил программу в VC, размер получился не большой, поэтому выкладываю здесь в виде аттача. Все написано внутри. У кого не будет работать - не ругайте. С уважением, Василий. 2065017104__ExtractProc.zip