Вот на досуге попробовал создать минимальный рабочий PE EXE файл. Затея по сути бесполезная, но забавная... При помощи пары хитрых извращений удолось создать файл размером всего 172 байта, содержащий всего одну инструкцию - 0xС3(ret). Все лишнее затерто нулями. Возможно разместить минимум 16 байт полезного кода. Меньше пока никак. попробуйте, может кому-то удасться. (COM/DOS_EXE/CAB_DROP и прочие форматы не предлагать P.S. решил, что WASM.RESEARCH вполне подходящий раздел. Если тему перенесут WASM.HEAP я не обижусь
упс... в поиск забыл глянуть как мне уже подсказали, тема была рекорд - 97 байт http://www.phreedom.org/solar/code/tinype/
Написал сегодня, минимальный MessageBox на 97 байт. Проверил на XP SP2 и XP HomeEdition. tiny97.exe настраивается на конкретную сборку через hiew -- у меня kernel.exe выдает адрес LoadLibraryA=7C801D77h и MessageBoxA=77D7050Bh поэтому по адресам Код (Text): 40001E: E8541D407C; call 7C801D77 400023: ...;<-7C401D54+400023=7C801D77 ... 400030:E8D6049777; call 77D7050Bh 400035:...;<-779704D6+400035=77D7050Bh
Сегодня доделал программу, которая создает каркас оконного приложения размером в 265 байт. Работает под Win XP SP2. Сорц и ехе в аттаче. Думаю, что это не предел
Создаем каркас оконного приложения размером в 256 байт. Работает под Win XP SP2 и XP Home Edition. Сорц и ехе в аттаче.
Каркас оконного приложения - размер 241 байт. Работает под Win XP SP2 и XP Home Edition. Сорц и ехе в аттаче.
Каркас оконного приложения - размер 223 байта. Работает под Win XP SP2 и XP Home Edition. Сорц и ехе в аттаче.
Каркас оконного приложения - размер 218 байтов! Меньше не сжимаетцо Работает под Win XP SP2 и XP Home Edition. Сорц и ехе в аттаче.
Mikl__, очень интересно ! А вы заметили, что Process Explorer (11.04) в TinyWin218.exe не находит строчки "user32" ?
kero Наверное, дело в том, что Process Explorer не видит завершающего нуля и поэтому не воспринемает "user32" как строку. А вот почему по смещению 0xAC от 'PE'00 должен быть ноль? Иначе программа под Home Edition работает нормально, а под XP SP2 выдает "Ошибка при инициализации приложения (0xC0000005)" Может быть кто-то сможет ответить?
n0name Потому что это "родительский" файл, который определяет конкретные адреса LoadLibraryA, CreateWindowExA, DefWindowProcA, DispatchMessageA, GetMessageA, PostQuitMessage и RegisterClass и подставляет их значение в "дочерний" файл TinyWin218
Никогда не говори никогда! Каркас оконного приложения - размер 206 байтов! Работает под Win XP SP2 и XP Home Edition. Сорц и ехе в аттаче.
Писать шеллкоды минимальной длины имхо полезнее. Проги размером меньше килобайта все равно только в XP и может иногда в Win2k пашут. Кто-нибудь может уложить шеллкод, показывающий MessageBox "Hellow, World!" менее, чем в 393 байта? У меня так, оптимизировать особо не пытался. Без прерываний и sysenter в коде и без обрезаных проверок, короче чтоб все по правилам
когда то в васм рассылке конкурс на такой шеллкод был. только не hello world, а просто MessageBox. жаль не сохранилось ;( я помню почти все время мои варианты отсеивали, то им использование ординалов не нравилось, то sysenter :P nobody я помню там тоже участвовал.