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

 WASM Phorum —› WASM.WIN32 —› секция импорта под XP

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

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


Дата: Май 12, 2004 23:24:38

Да HIEW тоже подойдет. Вопрос еще один. Что можно убрать из секции импорта, или забить нулями???


Дата: Май 13, 2004 09:15:13

Вот все что нужно, чтобы работало под любыми версиями винды.
Остальное можно убрать. Хотя, думаю, есть варианты и меньше.
data	import
;;  Import Directory starts here
align 4
IMPORT_DIRECTORY_TABLE:
	dd	RVA GetProcAddress$$, 0, 0, RVA @f, RVA GetProcAddress$$
	dd	0, 0, 0, 0, 0			;;  end of directory
@@:	db	'kernel32.dll',0		;;  only one dll
@@:	db	0,0, 'GetProcAddress',0 	;;  only one name to be imported
align 4
GetProcAddress$$:
	dd	RVA @b, 0	;;  just one function to be imported when loading
end data


Остальное надо импортировать самому. Адресс kernel32 можно брать из стека (что imho криво),
а можно из [GetProcAddress$$], что несколько длиннее.


Дата: Май 14, 2004 04:04:11

S_T_A_S_
Зачем под всеми? Я уже говорил, что ось - XP Pro с сервисом или без, это как придется.

Насчет kernel'а я в курсе, ты прав, это не самый короткий вариант. Адрес Kerner32 также можно вытащить с помощью SEH, вроде бы 100% вариант.

Реально ли вырезать MZ-header целиком, и как-нить укоротить PE?
Насчет первого я почти уверен, со вторым сомневаюсь.


Дата: Май 14, 2004 12:16:39

Под XP можно убрать ".dll" :-)
Не люблю я проблемы совместимости из-за 20ти байт, которые можно где-то еще сэкономить, поэтому не интересовался этим..

Адрес kernela находится в стеке, т.к. при запуске процесса делается call из этой dll (пока)
Еще можно посмотреть формат PE, вири и это .


Дата: Май 14, 2004 18:52:32

jekyll

Про хидер/stub читаем здесь
http://www.wasm.ru/docs/1/assemblerru.zip


Дата: Май 15, 2004 01:55:54

Это я давно зачел, про PE подскажите?


Дата: Май 23, 2004 15:46:52

оптимизация PE - это круто! MZ хидер целиком вырезать нельзя, необходимо оставить как минимум 6 байт - MZ и указатель на PE. остальные байты использовать можно.
однако создать файл, работающих на всех осях короче 200h по видимому нереально.
что же касается оптимизации импорта, то INT можно сразу прибить, поместив его копию в IAT. работать будет на всех осях.


Дата: Май 23, 2004 19:31:56

kaspersky
ясно


Дата: Май 24, 2004 09:10:40

Глупый наверно вопрос, но все же.

Как на фасме сделать таблицу импорта по ординалам? Есть ли соответствующие макросы?


Дата: Май 24, 2004 13:27:47

jekyll
я так и не понял как делать таблицу импорта по ординалам, но вроде стандартный макрос от fasm 1.52 такое умеет, верней он там чтото делает с ординалами, а уж что именно - говорю ж не понял:)))


Дата: Май 24, 2004 15:52:36
Правка

Реально ли вырезать MZ-header целиком, и как-нить укоротить PE?
jekyll
Насколько мне известно, полностью нельзя.

Можно только в фасме сделать так:
format PE GUI 5.0 at $10000 on 'null.stub'

где "null.stub" — это файл, размером 0 байт.
Вот.


Дата: Май 24, 2004 20:03:18

IceStudent
MZ укорочен до 12 байт, как в статье, про minimal stub, а вот как строить таблицу импорта по ординалам, я не понял, ну не руками же мучать!


Дата: Май 25, 2004 05:31:53

[ jekyll : Как на фасме сделать таблицу импорта по ординалам? Есть ли соответствующие макросы? ]

Это умеет стандартный макро, как я понял.
Но необходимо кое-что переделать.

Стандартно импорт выглыдит так (на примере fasm\INCLUDE\APIA\KERNEL32.INC):
import kernel32,\
       AddAtom,'AddAtomA',\
       AddConsoleAlias,'AddConsoleAliasA',\

Необходимо писать что-то вроде:
import kernel32,\
       Fun,FunOrdinal,\
       Fun2,FunOrdinal2,\

imho - проще подставить сюда номера ординалов вручную т.к. прога маленькая и импортируемых ф-ций мало.
Хотя можно взять на http://board.flatassembler.net/ dll2inc by comrade и доработать её для получения инклуда.


Дата: Май 25, 2004 05:47:26

S_T_A_S_
Спасибо, все рулезно.


Дата: Май 30, 2004 15:52:45

Есть моя статья - "самый маленький ре", но там не очень много приемов (так себе статья. слабая у меня тогда оптимизация вышла :(). Но есть "3ья часть", там Chemiker (мой знакомый) сделал действительно самое маленькое приложение - 153 байта 8). Вся оптимизация под хр. Я офффигел =)

http://www.xakep.ru/post/21020/default.htm
http://www.xakep.ru/post/21046/default.htm
http://www.xakep.ru/post/21399/default.htm

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


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