статический анализатор кода

Тема в разделе "WASM.ASSEMBLER", создана пользователем jorikh, 10 мар 2012.

  1. jorikh

    jorikh New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2011
    Сообщения:
    31
    хай всем

    кто-нибудь встречал анализатор ассемблерного кода для x86, позволяющий находить баги в сорцах типа
    использование неинициализированного регистра, и тому подобные огрешности?
     
  2. Lunar_

    Lunar_ New Member

    Публикаций:
    0
    Регистрация:
    3 май 2011
    Сообщения:
    53
    Именно в .asm - исходном коде ? Или в бинарном ? Для второго варианта можно сделать плагин для IDA или даже скрипт на idc/питоне. С такими средствами и такими sdk, как у ida и hex-rays, подобные вещи делаются очень просто. Насчет багов "типа использования неинициализированного регистра" - имеется ввиду тупо текстовая ошибка программера, чтоли ?
     
  3. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    Lunar_
    Всеголишь создать декомпилятор и описать алгоритмически баги, как два пальца :D

    jorikh
    Если такие тулзы и существуют, их никто в паблик никогда не кинет.
     
  4. jorikh

    jorikh New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2011
    Сообщения:
    31
    интересует анализатор самого исходного кода. то что скрипт написать можно я в курсе, просто не хочется тратить на это время, если кто-то такое уже написал. я портировал довольно большой асм проект на 64-бита, из-за расхождений в calling conventions появилось много мелких багов (типа не сохранённый rcx, rdx), я их вроде все пофиксил, но на своё внимание рассчитывать довольно сложно, так как оно часто подводит - смотришь и не видишь очевидной ошибки.
     
  5. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Это называется "Доказательство правильности программ". Но для ассемблера это проблематично и вряд ли есть что-то готовое.
     
  6. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.162
    Адрес:
    SPb
    Когда найдете, мне тоже подкиньте парочку.
     
  7. zxcv

    zxcv New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2011
    Сообщения:
    257
    есть динамические. тот же волгринд.
    а вот со статикой вполне может не найтись, тк

    call [eax]

    и статик анализатор может заблудиться
     
  8. jorikh

    jorikh New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2011
    Сообщения:
    31
    ясное дело что на 100% это задача не решаема, как и любой другой статический анализинг. меня интересовало только где я забываю сохранить регистры, это задача решаема. накатал пока что простенький скрипт на питоне который показывает на возможные места где я мог сделать ошибки, но для общего решения он не годится.
     
  9. zxcv

    zxcv New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2011
    Сообщения:
    257
    можете накатать скрипт для иды, но если история про линь, то динамика с волом с написанием плуга под вашу цель точнее будет

    краш тут недавно про (имя выпало из памяти) тулкит-фреймворк для динамик анализов под вынь на базе вола рассказывал. поишите по форуму или спросите его. я думаю, это лучше чем колдовать со статикой
     
  10. PSR1257II

    PSR1257II New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2011
    Сообщения:
    228
    jorikh

    Я не вполне понял где вы хотите искать багов, на PE или вообще везде, или каждую процедуру отдельно посмотреть. Тем не менее мне представляеццо более простой выход - это выполнение кода на эмуляторе (пошагово) со скриптом-анализатором (который выглядит очень просто).
     
  11. zxcv

    zxcv New Member

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