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