![]() |
|
![]() ![]() ![]() |
|
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 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |