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

 WASM Phorum —› WASM.WIN32 —› PE stripper

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


Дата: Июн 20, 2004 19:59:06

Вот, написал простенькую прогу чтоб стрипать не нужную информацию из ехе. Заменяет дос стаб на минимальный, делает FileAlignment = 512, убирает лишние нули в конце секций. Может кому сгодится, исходники тут-же.

_191713517__ExeStrip.rar


Дата: Июн 20, 2004 23:28:49 · Поправил: semen

Облегчил ентой штукой винды, сиреч *.exe,*.dll,*.ocx,*.ax в "Documents and Settings", "Program Files" и WINDOWS(~2200 файло тотал). Надо-же винда не упала... Жаль только не замерил на скока облегчилось... Ладно - давай дальше, теперь установленные проги колбасить будем(они в дире WinProgs). Теперь замерим на скока все облегчится(~2000 PEшных файло тотал, занимает 570мб). Проколбасили - теперь 530мб; один файл, кажется в фотошопе облегчилая на 600к: чтож это за линкер - в конце секции 600к нулей а он их не отрезал??? Все вроде пашет без проблем.
Кстати подскажите где можно прочитать наиболее полную доку по PE опциональному хеадеру.


Дата: Июн 20, 2004 23:39:30

по-моему самая полная в pdf на 1.44mb

точную ссылку не помню, но тут можно найти:

http://www.google.ru/search?q=Microsoft+Portable+Executable+and+Common +Object+File+Format+Specification&ie=UTF-8&oe=UTF-8&hl=ru&lr=

и еще тут
h_ttp://reversing.net/articles/infoforbeginner/pefmt120.htm


Дата: Июн 21, 2004 00:32:22

Мда все равно DataDirectory полностью не документирован. Ладно просто не будем ничего тогда трогать - если указывает между PE заголовком и первой секцией - то это место стрипать не надо.


Дата: Июн 21, 2004 00:51:09 · Поправил: semen

Funbit
А, кстати, спасибо за линки, но нового почти ничего не нашел.
All
Вот что такое Load Config в DataDirectory нашел в CRT VS7.1:

typedef struct {
DWORD Size;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD GlobalFlagsClear;
DWORD GlobalFlagsSet;
DWORD CriticalSectionDefaultTimeout;
DWORD DeCommitFreeBlockThreshold;
DWORD DeCommitTotalFreeThreshold;
DWORD LockPrefixTable; // VA
DWORD MaximumAllocationSize;
DWORD VirtualMemoryThreshold;
DWORD ProcessHeapFlags;
DWORD ProcessAffinityMask;
WORD CSDVersion;
WORD Reserved1;
DWORD EditList; // VA
DWORD_PTR *SecurityCookie;
PVOID *SEHandlerTable;
DWORD SEHandlerCount;
} IMAGE_LOAD_CONFIG_DIRECTORY32_2;

А вот структуры большинства неизвесных DataDirectory ентраев, таких как COM+ Runtime Header так и остается неизвестными.


Дата: Июн 21, 2004 11:27:44

semen
Отличная программа! Давно хотел что-то в этом роде. Некоторое время назад я очень увлекался оптимизацией EXE по размеру, но всё делал исключительно вручную (утомительно и нудно). Теперь - немного автоматизирую процесс. ;-)
Про Data_Directories. Здесь, IMHO, лучше ручками и с большой аккуратностью.
Если будет интерес поговрить: gerg_grown@bk.ru

1990


Дата: Июн 21, 2004 15:38:57 · Поправил: semen

1990
Про Data_Directories. Здесь, IMHO, лучше ручками и с большой аккуратностью.
Ага, когда стрипил винды - встречал такие DataDirectory что волосы дыбом вставали. Вот и захотелось обо всем подробную доку.
All
Warning: Если DataDirectory указывает не в секции, то PE stripper это отстрипит. В результате чего например пропадают Property Pages в 7 студии. Но это мы пофиксим.


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