· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Чем плох MASM32?

<< . 1 . 2 . 3 . 4 . >>

Посл.отвђт Сообщенiе


Дата: Апр 5, 2004 14:56:14

Icebp
Как нельзя писать?

format PE native 4.0 dll

и в конце релоки создать, вот тебе и драйвер. Только вот правда инклудов DDK нет..

Four-F
Lib делаются из объектных файлов, нужен библиотекарь(lib.exe от MS), а FASM только компилятор.


Дата: Апр 5, 2004 16:27:45

К сожалению не знал, что FASM позволяет писать драйвера для windows. Может ли кто нибудь подбросить каркас драйвера для примера, ну или короткий драйвер, но не длинный, а то мне думаю будет сложно разобраться? И вот у меня возник вопрос: что означает слово native? У меня при его прочтении почему то возникла аналогия с windows XP. У меня windows 98 а windows XP я не хочу ставить из принципа. Поэтому еще вопрос: приведенный выше драйвер для windows 98?


Дата: Апр 5, 2004 18:01:04

Нет, это под NT/2k/XP/2003/... И вообще пора уже сносить всякие там 3.11 и 98 и ставить нормальную ОС.


Дата: Апр 5, 2004 18:09:08

Four-F
Хорошо бы тютор написать, типа "использование объектных возможностей MASM" с примерами того, что ты перечислил.
Многим было бы интересно, думаю.


Дата: Апр 6, 2004 00:03:11

1. потребуется написать многомодульную программу. Например, у тя два набора инклудов несовместимых друг с другом - скажем ntddk.inc и windows.inc. Ты пишешь два модуля: в один подключаешь ntddk.inc, в другой windows.inc. Получаешь два объектника и линкуешь вместе.

2. потребуется подключить код написанный на асме к проекту на си. Правда, для этого можно и lib использовать. Кстати, а фасм либы то может делать?

3. потребуется подключить к своему асмовому проекту чужие объектники. Я такое практиковал пару раз. Например, в msvc7 есть челый каталог с объектниками стандартных crt-функций (strcpy, strlen и т.п.).


format MS COFF

и дальше линкуешь с чем угодно и как угодно


Дата: Апр 6, 2004 00:17:38 · Поправил: Four-F

[ dragon: Lib делаются из объектных файлов, нужен библиотекарь(lib.exe от MS), а FASM только компилятор. ]

Это я так, к слову спросил. А если фасм только компилятор, чего же он тогда линкером работает :)


[ The Svin: Хорошо бы тютор написать,... ]

Да, идея неплохая. Если б времени побольше было, а то по дровам еле успеваю писАть :(


[ infern0: format MS COFF...и дальше линкуешь с чем угодно и как угодно ]

Если фасм может генерить объектник, тогда всё ОК. Мне он уже нравится значительно больше :)


Дата: Апр 6, 2004 17:05:59

Icebp - каркас есть на форме фасма в топике про драйвера. Точного линка счас не помню, но он находится с полпинка. Там они beeper.sys писали на фасме.


Дата: Апр 6, 2004 17:08:29

может генерить объектник, тогда всё ОК. Мне он уже нравится значительно больше :)

да, four-f, мне тоже. т.к. очень легко на нем воссоздавть проги после иды. три строчки заголовков - и можно тестить код, который copy-paste из ИДЫ. Вот только offset повыкидавыть...


Дата: Апр 6, 2004 17:25:45 · Поправил: S_T_A_S_

[ Four-F - Если фасм может генерить объектник, тогда всё ОК. Мне он уже нравится значительно больше :) ]

Если я правильно понял это, с COFF форматом он дружит лучше, чем MASM
В версии 1.52 снято ограничение на 65535 релоков для MS COFF


[ infern0 - Вот только offset повыкидавыть... ]

Можно же так:
offset equ


Дата: Апр 6, 2004 18:32:04

Можно же так:
offset equ


да, но есть еще одна проблема.

mov eax, dword_1234

в иде это загрузить значение дворда в eax а в файсме загрузить rva этого дворда. причем warningoв он не дает и надо очень внимательно заменять подобные конструкции на mov eax, [dword_1234]. Булы бы просто опция включения предупреждений на подобные случаи - фасм был бы рулез форева :)


Дата: Апр 6, 2004 20:23:10

infern0
Верно, я не подумал об этом.. А если примерно так:
offset equ
macro mov arg,arg2
 {     if  _#arg2 eq _offset arg2
           mov  arg,arg2
       else
           mov  arg,[arg2]
       end if
 }


Дата: Апр 6, 2004 22:24:41 · Поправил: infern0

бля, где ты раньше был... я метр кода ручками лопатил... :/

ps: а как быть с обратной ситуацией ?
mov dword_1234, eax

фасм правда на такое ругается, особенно если размеры не
совпадают, но хотелось и тут универсального решения ?

pps: только что попробовал этот макрос и получил отлуп на конструкциях mov edi, [ebx]
да и если в коде _уже_ написано mov reg, [some_off] то тоже отлуп.


Дата: Апр 6, 2004 23:59:24

infern0

Попытка №2 :)
offset equ
macro mov arg,arg2
 {     if  _#arg2 eq _offset arg2
           mov  arg,arg2
       else if arg2 eqtype 0
           mov  arg,[arg2]
       else if arg eqtype 0
           mov  [arg],arg2
       else
           mov  arg,arg2
       end if
 }

Если проблемы останутся/появятся, кинте примерный файлик от IDA мне на мыло (в профайле) + пожелания.
Так будет проще


Дата: Апр 7, 2004 02:36:45

infern0 можешь пожалуста свой драйвер мне на мыло скинуть? comrade2k@hotmail.com
или хотя бы сюда поставить


Дата: Апр 7, 2004 03:17:12 · Поправил: Asterix

infern0

Твоя проблема на Perl'е решается с пол пинка(c)Volodya ;-)
Вот для примера скрипт для виндового Perl'а с activestate.com, запускать двойным кликом(если перл с'ассоциирован с расширением pl) в одной директории с *.asm, парсит сразу все asm файлы.


193725415__IDA_script.rar

<< . 1 . 2 . 3 . 4 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.053