![]() |
|
![]() ![]() ![]() |
|
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Мне надо получить PE-Exe минимального размера, делаю всё в одной секции, но еще бы хотелось убрать stub... Пишу в FASM'е. Может есть какая-нибудь директива для убирания заглушки ? Пусть e_lfanew в Dos-хэдере ссылалась бы на байт, сразу идущий за этим самым дос-хэдером...
-------------------- С уважением, г-н Посол. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
там можно свой стуб.ехе втыкат
если его 0 длинны сделать ![]() или лучше сделать вот так ![]() mzshit: dw 'MZ' times 30 db 0 times 01ch db 0 lp: dd peshit ; times 100 db 0 peshit: dd 'PE' ; signature byte dw 014ch ; cpu type dw 1 ; num of object dd 0ffffffffh ; time/data dd 0 ; pointer to COFF table dd 0 ; COFF table size dw assend-ass ; NT header size dw 0818eh ; Flags ass: dw 010bh ; Magic db 0 ; link major db 0 ; link minor dd 0 ; size of code dd 0 ; size of init data dd 0 ; size of Uninit data dd 1000h+352;+100 ; entry point RVA dd 0 ; Base of code dd 0 ; Base of data dd 0400000h ; Image base dd 1000h ; object align dd 200h ; file align dw 1 ; OS major dw 0 ; OS minor dw 0 ; user major dw 0 ; user minor dw 3 ; subsys major dw 0ah ; subsys minor dd 0 ; reserved dd 2000h ; image size dd codes-mzshit ; header size dd 0 ; file chksum dw 2 ; subsystem dw 0 ; dll flags dd 1000h ; stack res size dd 1000h ; stack commit size dd 10000h ; heap reserve size dd 0 ; heap comit size dd 0 ; loader flags dd 10h ; num of RVA and size times 22 dd 0 dd 0,0 dd 0 dd 0 dd 0,0 dd 0,0 dd 0,0 assend: objentry: db '.section' ;obj name max 8 char dd 1 ; virtual size dd 1000h ; section RVA dd 82 ; physical size dd 82 ; physical offset dd 0 ; pointer to reloc dd 0 ; pointer to linenum dw 0 ; num of reloc dw 0 ; num of linenum dd 0e0000060h ; characteristic codes: ret endfile: -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Так не очень удобно... Разобрался - то же самое можно сделать, но легче:
В директиве format PE надо добавить on "имя файла заглушки". У меня так: format PE GUI 4.0 on 'stub0.exe' И если файл-заглушка нулевой длины, то всё ок, в результате в скомпонаванном файле "PE" будет начинаться не с 80h, а с 40h. Интересно то, что если создавать свой файл-заглушку размером 64 байта (только дос-хэдер) и все поля выставлять в нем правильно (можно даже отрезать первые 64 байта от PE-файла, полученного способом с файлом нулевой длины), то FASM глючит при ассемблировании... -------------------- С уважением, г-н Посол. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
p0s0l
ну я это и имел ввиду ![]() а нафига тебе все это? лепиш самый маленький ехе? -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Не сразу доперло, что ты про это и говорил... А зачем тогда тот, второй способ ? Геморрой лишний...
Да, всё что можно укорачиваю. -------------------- С уважением, г-н Посол. |
||||
|
|||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
p0s0l
если делать заголовок файла руками то можно еще место сэкономить к примеру тут times 22 dd 0 dd 0,0 dd 0 dd 0 dd 0,0 dd 0,0 dd 0,0 тут описания секций по умолчанию втыкается а тебе то и надо тока описание 1 секции -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Дак и так, у меня только 1 секция и описывается... Я не очень понял про что ты... Или ты имеешь в виду, что вместо dd 10h ; num of RVA and size можно поставить dd 02h Т.е. будут только директории экспорта и импорта ? -------------------- С уважением, г-н Посол. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
p0s0l
именно про это оставь тока секцию кода да и все ![]() можно еще с выравниванием побалватся -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Ладно, но что-то так не получается... У тебя есть работающий пример ? А то как я делаю, пишет "error executing program"...
И еще: как описать импорт ? Ранее работавшие макросы library и import не работают... И что с выравниванием ? В MSDN сказано, что оно не может быть меньше 512 (что и используется при ассемблировании в FASM)... -------------------- С уважением, г-н Посол. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
p0s0l
обманули в мсдн ![]() вот 2 файла 1) 450 байт месаджбокс выводит , должно везде работать там поиск LoadLibary в кернеле и так далее 2) 173 ![]() ну и исходники весьма изврашенные ![]() кстати первый файл можна ужать байт на 10-20 ,там процедура у меня поиска адреса функ левенькая ![]() проверял на ХР на 9х может и неработать, там дествительно выравнивание важно Присоединённый файл ( Кол-во скачиваний: 59 ) ![]() -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
thnx, закачал, буду пробовать!
-------------------- С уважением, г-н Посол. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
p0s0l
ну че работает? -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Ага, все работает.
Прикольно ты наворотил перекрывающиеся заголовки вперемешку с данными! Thanx за пример! -------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Ужал Hello All до 267 байт ![]() Присоединённый файл ( Кол-во скачиваний: 51 ) ![]() -------------------- С уважением, г-н Посол. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
p0s0l
крута ![]() на хацкер.ру подобная дисскуссия ![]() но они от нас далеко отстали ![]() я им там линк сюда оставил шас прибегут ![]() -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Для кучи уж пихаю последний вариант - заюзаны почти все ненужные поля хэдеров... жаль только, что вся эта интересная фишка не работает под Win9x...
Присоединённый файл ( Кол-во скачиваний: 54 ) ![]() -------------------- С уважением, г-н Посол. |
|||
|
||||
Chemiker |
|
|||
Unregistered |
Люди !!!
У меня файл формата PE выыодит окно с МессагеБоксом, потом звершается. В досе запускается нормально - ДОС пишет: Program too big to fit in memory. Между MZ и PE всего два байта, есть таблица импорта, а размер этого чуда всего 188 байтов !!! Пока. ------------------------------------- PE-188-Bytes |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
Chemiker
файл то где? ![]() ![]() -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Chemiker |
|
|||
Unregistered |
Файлик дома, и ничего я не пёр, просто проверил одну гипотезу и она оказалась верна, с ещё одним предположением можно сделать меньше чем 166 байт (есть пока эксперементальная версия).
А пока релиз 188. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Не качается файл... ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Serzh |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 30.9.2003 Где: SPb Репутация: нет Всего: нет |
а у меня не выполняеться... ![]() |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Весело под Win98SE окошки появляются и тут же убиваются... прога остановилась от нехватки памяти.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Просто задан адрес MessageBox'а ?... -------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Serzh,Sardar - вот в этом и беда, Win9x более строгие к формату файла...
-------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Торможу на счет этого:
Не обратил внимания на
У меня пока наспех получается 195.. Покажи исходник ? -------------------- С уважением, г-н Посол. |
||||
|
|||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
А хотя... не доглядел немного - вот тоже 188 байт...
Присоединённый файл ( Кол-во скачиваний: 39 ) ![]() -------------------- С уважением, г-н Посол. |
|||
|
||||
Serzh |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 30.9.2003 Где: SPb Репутация: нет Всего: нет |
дык в том то и дело, что у меня w2k |
|||
|
||||
Chemiker |
|
|||
Unregistered |
Уже есть рабочая версия в 166 байт, будем ещё уменьшать.
![]() |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Chemiker, зарегистрируйся, и при ответе в форум жми "ОТВЕТИТЬ",
тогда вроде сможешь прикреплять файлы... Ты хоть скажи хотя бы идею, куда копать, как до 166 байт уменьшил ? -------------------- С уважением, г-н Посол. |
|||
|
||||
Chemiker |
|
|||
Unregistered |
Потом всё увидите, буду работать по умньшению, результат наверно в конце недели.
|
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Дак так не интересно... Хочется самому попробовать...
![]() -------------------- С уважением, г-н Посол. |
|||
|
||||
Chemiker |
|
|||
Unregistered |
Достигнут результат, наверно уже предельный, ну дальше не куда просто, размер файла 153 байта, выводит мессагебокс, есть импорт. 3 марта я помещю его сюда для всеобщего ознакомления. Пока проверялось только на XP.
153 байта !!! |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Я понял как это сделать
![]() В FileHeader'е есть поле размера OptionalHeader-а, если его уменьшить, то можно засунуть SectionHeader в OptionalHeader... -------------------- С уважением, г-н Посол. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Извините за офтоп, но по моему это полный изврат!!!
![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Chemiker |
|
|||
Unregistered |
Согласен с вами, но это уже спортивный интерес - на рекорд, чисто академическое развлечение. p0s0l, ты прав, у меня он именно там, я такой извращенец !!! Но это было не легко, кстати кроме этого ещё полно всяких ухищрений и тонкостей.
Скоро на хакер.ру выйдет статья про этот файлик. http://www.xakep.ru |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
Chemiker
копирайты не забуть ![]() -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Chemiker |
|
|||
Unregistered |
||||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Эх, не успел немного, хотелось до тебя выложить свой вариант...
У меня немного по-другому устроено, и вместо "MZ..PE" выводится "Hello!", но весит 152... Хотя есть большое подозрение, что можно на 8 байт уменьшить, правда уже влом всё пересматривать... Присоединённый файл ( Кол-во скачиваний: 60 ) ![]() -------------------- С уважением, г-н Посол. |
|||
|
||||
Chemiker |
|
|||
Unregistered |
Я в шоке почти, всего на один байт !!! Зато у меня MZ и PE очень близко, но придётся ещё покопать и уменьшить, мне кажется что теоретически можно скинуть ещё примерно пару байтов, но будет уже энтропия. И так близко уже.
|
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Chemiker, я вообще-то имел в виду то, что пришли примерно к одному и тому же результату. Но если подумать, то тут вариантов не так уж и много, т.к. SectionHeader больше некуда впихнуть (пихал почти во все места, нигде не подходит), вот только с ImportDescriptor'ом я не сильно пробовал, а у него в конце файла выставляется хвост из 8 байт, которые вполне вероятно можно обрубить, если засунуть этот дескриптор в другое место, т.е. размер был бы 144...
-------------------- С уважением, г-н Посол. |
|||
|
||||
4udo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 13.4.2006 Где: Казахстан Репутация: нет Всего: -1 |
Очень рульный пост!!!!!
Только по-мимо "Hello World" можно же на Ассемблере ваять крохи и с фантастическими фичами ![]() Пример цепляю.Кстати обратите внимание на функции , господа знатоки - я искал и не нашел(нет ни импорта ни экспорта).Наверно очень плохо искал?????????............ Здесь и GUI , и midi и icon.Жутко интересно - как это все стряпается в 50кб??? Это сообщение отредактировал(а) 4udo - 21.4.2006, 21:16 Присоединённый файл ( Кол-во скачиваний: 20 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |