|
|
| Посл.отвђт | Сообщен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 |