Зацените дизассемблерный движок

Тема в разделе "WASM.RESEARCH", создана пользователем Ms Rem, 20 июн 2005.

  1. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Вот я наконец довел до ума и решил выложить свой дизассемблерный движек.

    В архиве лежит его DLL, заголовочные файлы для VC и Delphi и примеры по использованию, в том числе и в драйверах.



    Основное назначение - разбор кода полиморфов, или наоборот - создание полиморфов.

    Все структуры и функции в документации описаны.



    Администрацию сайта прошу положить дизассемблер в раздел "Инструменты"



    А вот и ссылка: http://ms-rem.narod.ru/files/cadt.rar
     
  2. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    1. А .lib для статической линковки? для чего ограничение использования только в виде dll?

    2. Планируется ли SDK на asm'e?

    3. Скормил программе Tester.exe из папки Delphi Example простенький Demo пример на асме, так дизассемблер вылетел с ошибкой. Пример прилагается в аттаче



    P.S. слово "движек" пишется через "о", т.е движок

    [​IMG] _1027951640__Demo.rar
     
  3. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"




    Если кто-нибудь сможет сконертить из Borland OMF в Intel OMF или COFF, то можно и статическую либу сделать.







    Может и сделаю.







    Это не дизассемблер файлов, а дизассемблер инструкций.

    Если посмотреть сорцы тестера, то можно увидеть, что он дизассемблирует файл от точки входа до первого ret, а если же такового не встречается, то вылетает с ошибкой так как выходит за границы памяти.

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



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

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Ms Rem



    Ты лучше тогда сделай просто дизассемблирование всей секции .code в тестере (или оставь только hex/internal disasm).
     
  5. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    F6(7) /1 не определена в даташитах и книгах и не дизассемблируется не идой не хиевом, но ведет себя как TEST (F6 /0) при выполнении. Т.е. можно считать синонимом команды TEST в дизасме.
     
  6. Stub

    Stub New Member

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


    Мб заюзать Dll2Lib?
     
  7. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Ms Rem



    а зачем конвертить?

    MS Linker понимает оба формата, как COFF (его родной), так и OMF.

    а вот борландовский линкер как раз не понимает COFF, поэтому ему и требуется COFF2OMF конвертер (поставляется вместе с CBuilder)

    короче говоря, майкрософтовский линкер адекватно воспримет OMF .obj

    для конвертации из OMF можно вызывать link -edit file.obj или editbin
     
  8. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    MS линкер понимает OMF, но, увы, далеко не всё :dntknw:
     
  9. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Ms Rem

    так что насчёт объектного файла?

    меня устроит и борландовский вариант,

    я попробую самостоятельно переконверить его в мелкософтовский коффе ;)



    S.T.A.S.



    лучше же всё-таки убедиться

    не думаю, что в либе Ms Rem намутил такое, что MS линкер не переварит. судя по размеру бибиотеки линкеру это должно быть по силам
     
  10. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Держи, если удасться переконвертировать в нормальный obj, то кинь мне на мыло или выложи тут.

    [​IMG] 1751655708__cadt.obj
     
  11. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    на данный момент пока
    Код (Text):
    1.  
    2. Microsoft (R) COFF/PE Editor Version 7.10.3052
    3. Copyright (C) Microsoft Corporation.  All rights reserved.
    4.  
    5. cadt.obj : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
    6.  


    у тя в дельфи какие настройки при компиляции?
     
  12. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Так про это я и говорил. MS линкер не понимает борландовский OMF.

    Delphi 3 умеет компилить в интел OMF который принимается MS линкером, но почему-то скомпиленный на 3 дельфе дизасм глючит при формировани мнемоники.
     
  13. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    т.е. получается, что компилятор 3-го Delphi генерит неправильный код?

    или это _только_ при создании объектного файла?

    ты проверял, линкуя его MS linker'ом?

    или пытался просто переконверить (link -edit cadt.obj)?

    на мой взгляд, нужно линковать полученный obj либо с MASMовым, либо MS VC приложением

    или ты так и делаешь?



    p.s. ASM SDK пока ещё не готов?
     
  14. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Jupiter



    Уже б сам перевёл :)
     
  15. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia


    этим и занимаюсь ;)
     
  16. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Ms Rem

    А исходники будут? ;)

    Программы этого класса обычно не тестируют методом чёрного ящика. ;)
     
  17. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    captain cobalt



    очень на это надеюсь

    может быть тогда кто-нить перепишет их на C и возможности применения частей библиотеки гораздо расширятся

    но мне почему каатся, что Ms Rem не торопится их опубликовывать... а жаль. но его возможные мотивы мне понятны.
     
  18. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Во общем, хрен с ним... опубликую исходники.

    Сейчас с траничку подготовлю и выложу их на своем сайте.
     
  19. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Ms Rem

    thanks for sharing!

    теперь будет два хороших дизассемблера с исходниками ;)
     
  20. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"