Программа для выдирания функций из DLL

Тема в разделе "WASM.RESEARCH", создана пользователем SolarWarez, 19 янв 2005.

  1. SolarWarez

    SolarWarez New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2004
    Сообщения:
    11
    Привет всем!



    Наваял я маленькую и убогую программку для выдирания функции из ассемблеровского файла генерируемого IDAой . . .

    (Решил, что "лучше день потеряем, потом за час долетим" :) )



    Программа хоть и убогая (т.к. писал сугубо для себя), но уже работает :)



    Выдерает интересующую функцию со всем, от чего она зависит (переменные и другие функции и т.д. рекурсивно) и генерит готовый для компиляции МАСМом файл. . . .



    Если кому интересна эта тема, то могу немного довести ее до ума и выложить для пользования.



    Программа жестко привязана к формату, в котором сохраняет асм. код IDA (т.к. иначе сложно анализатор используемых переменных делать) . . . Но меня это устраивает.



    С уважением, Василий.
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Нужна, думаю многим пригодится, прогу на каком языке писал ?
     
  3. sne

    sne New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2005
    Сообщения:
    5
    Адрес:
    Рыбинск
    Интересно было бы хоть глазком взглянуть :)
     
  4. SolarWarez

    SolarWarez New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2004
    Сообщения:
    11
    Привет всем!



    2 bogrus - писал на обычном С.



    2 sne & all - думаю сегодня, чуть попозже, немного облагорожу ее и можно будет смотреть. (то что я от нее хотел, она уже делает, и результат даже компилируеться :)) )



    Только вот куда выложить то ? У меня некуда. . .



    И еще вопрос - какой интерфейс желателен ?

    Для меня проще, конечно, консольное приложение с командной строкой. Но можно и простенькое GUI прикрутить (тока тогда на Билдере будет).



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



    И в третьих, как уже писал, жестко рассчитана на формат IDA. Вызываемые функции то вычислить просто (ищем команду call), а вот ссылки и переменные . . . Я долго думать не стал, и ищу все строчки вида "off_*", "word_*" и т.д.

    Может кто что-то лучшее посоветует ? Делать препроцессор АСМа совершенно нет ни времени ни желания. . .



    С уважением, Василий.
     
  5. ozzman

    ozzman New Member

    Публикаций:
    0
    Регистрация:
    22 янв 2004
    Сообщения:
    56
    >Может кто что-то лучшее посоветует ?

    написать либо скрипт на IDC, либо плагин для IDA.

    многие проблемы отпадут сами собой
     
  6. SolarWarez

    SolarWarez New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2004
    Сообщения:
    11


    Оно то может и так, только я пока не представляю как это сделать. А изучать пока времени нет . . .
     
  7. WELL

    WELL New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2004
    Сообщения:
    12
    SolarWarez

    Выложить можно тут http://ezshare.de



    P.S. С gui лучше :)
     
  8. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    SolarWarez >




    IMHO это быстрее последователного чтения, и порой намного



    >




    в аттач не помещается ?
     
  9. SolarWarez

    SolarWarez New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2004
    Сообщения:
    11


    Кноечно быстрее, и намного проще для реализации. Но памяти требует больше. Например у меня, размер asm файла от IDA'ы 45Мб :) Конечно, это очень не много для современных компов, но все-равно это жлобство тратить столько памяти для этого. Я начинал программировать когда еще мало кто видел Windows 3.1 :) В те времена меня бы "убили" если бы я такое сделал :)





    Оно может и лучше, только во первых, я не придумал как оно должно выглядеть. Во вторых, времени нет. В третьих программу я все-таки делал в первую очередь для себя самого, а меня командная строка не пугает :)

    В четвертых, GUI всегда можно доделать.

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



    Скомпилил программу в VC, размер получился не большой, поэтому выкладываю здесь в виде аттача.



    Все написано внутри.

    У кого не будет работать - не ругайте.



    С уважением, Василий.

    [​IMG] 2065017104__ExtractProc.zip