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

 WASM Phorum —› WASM.RESEARCH —› Убрать ненужный код из OBJ

. 1 . 2 . >>

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


Дата: Июл 8, 2003 20:09:20

Есть статическая либа с одним (!) OBJ-файлом. В этом файле уйма полезных ф-ций, но мне нужны не все, а толко 3-4. При линковке, естественно, ВСЕ ф-ции (нужные и ненужные) попадают в экзешник. Согласно документации, линкер тут бессилен помочь с оптимизацией. Может есть какой-нибудь другой метод или тулзень, чтоб исключить лишний код из OBJ?


Дата: Июл 8, 2003 20:33:57 · Поправил: volodya

Привет. Ты опять поднимаешь интересный вопрос. А ты уверен, что они ПОПАДАЮТ в результирующий файл? Ты проверял? Насколько я читал Linkers and Loaders (раздел док на васме), я думал, линкер исключает все, кроме того, на что идет reference. Кстати, о каком линкере идет речь? Майкрософтовский?


Дата: Июл 8, 2003 20:49:11

А ты уверен, что они ПОПАДАЮТ в результирующий файл?
Абсолютно уверен. Мы с Asterix'ом несколько раз проверяли. Это справедливо не толко для LINK.EXE, но и для всех (или почти) линкеров.

ЗЫ: Это из серии "Dll2Lib и все-все-все"


Дата: Июл 8, 2003 21:10:22

Тогда слушай ответ. Берешь, значит, такой себе, хекс-редактор, берешь доку по COFF/OMF-форматам и начинаешь методично вытрипывать все, что движется и дышит! :)))))))))))))) Наверное, тебе хочется что-то в меня бросить :)>


Дата: Июл 8, 2003 21:15:53

Делаю вид, будто я это не прочитал :-[


Дата: Июл 8, 2003 21:24:12

Ха, я нашел!
lib /REMOVE!!!! Вот, что спасет отца русской демократии!


Дата: Июл 8, 2003 21:39:52

volodya
/REMOVE убирает OBJ-файлы когда их там несколько (по одному на каждую ф-цию, например), а у меня только ОДИН файл. Не удалить же его?!


Дата: Июл 8, 2003 21:46:04

Мдя... А что на счет tdump? Она только показывает или позволяет редактировать тоже?


Дата: Июл 8, 2003 22:43:21

TDUMP, DUMPBIN и OBJHELP показывают да и только :(


Дата: Июл 9, 2003 11:58:00

Quantum
Чуда не будет.
Думаю такой тулзы нет, которая извлекает функции.
Да и потом это не возможно (в силу многих обстоятельств..)
Хотя нет!!! Возможно, и иногда даже получится.
Получается нужно написать анализатор адресов и адресов переходов....
Грусная это история.


Дата: Июл 9, 2003 12:02:35

ALL
Кстати, я давно указывал на этот недостаток LIB :)))


Дата: Июл 9, 2003 12:26:25

Для того, чтобы из библиотеки подлинковывались только нужные функции, библиотеку надлежит собирать из кучи объектников по одной функции в файле. Так было всегда. ;)

А даже если ты поубиваешь неиспользуемые функции в объектнике, то чтобы убрать пустые места (поджать оставшиеся функции друг к другу) тебе придётся править в оставшихся функциях все локальные смещения.

Единственное, что можно навскидку предложить, это дизассемблировать его и натравить что-нибудь вроде TMG Ripper studio. ;)) А потом пересобрать.
После сборки обработать напильником. (с) :) Больше, конечно, перед сборкой. ;)


Дата: Июл 9, 2003 16:57:52

TMG Ripper studio рулит, прикольная штука, помогает :)


Дата: Июл 9, 2003 18:13:06

Положил


Дата: Июл 9, 2003 18:32:06

Всем спасибо за советы!
Тема снимается.

. 1 . 2 . >>


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