|
|
| Посл.отвђт | Сообщен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 |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.053 |