Вот я наконец довел до ума и решил выложить свой дизассемблерный движек. В архиве лежит его DLL, заголовочные файлы для VC и Delphi и примеры по использованию, в том числе и в драйверах. Основное назначение - разбор кода полиморфов, или наоборот - создание полиморфов. Все структуры и функции в документации описаны. Администрацию сайта прошу положить дизассемблер в раздел "Инструменты" А вот и ссылка: http://ms-rem.narod.ru/files/cadt.rar
1. А .lib для статической линковки? для чего ограничение использования только в виде dll? 2. Планируется ли SDK на asm'e? 3. Скормил программе Tester.exe из папки Delphi Example простенький Demo пример на асме, так дизассемблер вылетел с ошибкой. Пример прилагается в аттаче P.S. слово "движек" пишется через "о", т.е движок _1027951640__Demo.rar
Если кто-нибудь сможет сконертить из Borland OMF в Intel OMF или COFF, то можно и статическую либу сделать. Может и сделаю. Это не дизассемблер файлов, а дизассемблер инструкций. Если посмотреть сорцы тестера, то можно увидеть, что он дизассемблирует файл от точки входа до первого ret, а если же такового не встречается, то вылетает с ошибкой так как выходит за границы памяти. Это никак не ошибка движка, а тестер нужен только как пример по его использованию, но это никак не образец для файлового дизассемблера. Интересуют именно ошибки движка, тоесть неправильное дизассемблирование каких-либо инструкций или неправильное формирование мнемоники комманды.
Ms Rem Ты лучше тогда сделай просто дизассемблирование всей секции .code в тестере (или оставь только hex/internal disasm).
F6(7) /1 не определена в даташитах и книгах и не дизассемблируется не идой не хиевом, но ведет себя как TEST (F6 /0) при выполнении. Т.е. можно считать синонимом команды TEST в дизасме.
Ms Rem а зачем конвертить? MS Linker понимает оба формата, как COFF (его родной), так и OMF. а вот борландовский линкер как раз не понимает COFF, поэтому ему и требуется COFF2OMF конвертер (поставляется вместе с CBuilder) короче говоря, майкрософтовский линкер адекватно воспримет OMF .obj для конвертации из OMF можно вызывать link -edit file.obj или editbin
Ms Rem так что насчёт объектного файла? меня устроит и борландовский вариант, я попробую самостоятельно переконверить его в мелкософтовский коффе S.T.A.S. лучше же всё-таки убедиться не думаю, что в либе Ms Rem намутил такое, что MS линкер не переварит. судя по размеру бибиотеки линкеру это должно быть по силам
Держи, если удасться переконвертировать в нормальный obj, то кинь мне на мыло или выложи тут. 1751655708__cadt.obj
на данный момент пока Код (Text): Microsoft (R) COFF/PE Editor Version 7.10.3052 Copyright (C) Microsoft Corporation. All rights reserved. cadt.obj : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt у тя в дельфи какие настройки при компиляции?
Так про это я и говорил. MS линкер не понимает борландовский OMF. Delphi 3 умеет компилить в интел OMF который принимается MS линкером, но почему-то скомпиленный на 3 дельфе дизасм глючит при формировани мнемоники.
т.е. получается, что компилятор 3-го Delphi генерит неправильный код? или это _только_ при создании объектного файла? ты проверял, линкуя его MS linker'ом? или пытался просто переконверить (link -edit cadt.obj)? на мой взгляд, нужно линковать полученный obj либо с MASMовым, либо MS VC приложением или ты так и делаешь? p.s. ASM SDK пока ещё не готов?
captain cobalt очень на это надеюсь может быть тогда кто-нить перепишет их на C и возможности применения частей библиотеки гораздо расширятся но мне почему каатся, что Ms Rem не торопится их опубликовывать... а жаль. но его возможные мотивы мне понятны.
Во общем, хрен с ним... опубликую исходники. Сейчас с траничку подготовлю и выложу их на своем сайте.