LINUX.ORG.RU

Размер elf программы отличается на много, хотя..

 


1

2

Здравствуйте, вопрос к знатокам. Есть программка elf файл, Только вот когда устанавливал пакет rpm, программа весила около 30мб., Нашел кракнутый «отдельный» файл той же программы в инете , он весит всего на всего 7 мб, как такое может быть объясните, программа работает с меньшим файлом на ура 0_о


Ответ на: комментарий от vodz

Попробовал только что man strip, что удивительно, файл который весит 7мб, имеет отладочную инфу и т.д., применив strip из него вырезается эта инфа, становится ~6мб, а вот 30 мб, как был , так и не меняется с помощью man strip

Rubi
() автор топика
Ответ на: комментарий от anonymous

Есть ли инструменты, которые определяют пакер для elf?

Rubi
() автор топика

Обычное дело. В крякнутых бинарниках бывает вычищен весь этот DRM, оттого и меньше весит.

xDShot ★★★★★
()
Ответ на: комментарий от Rubi

Посмотрите что даёт file на каждый файл. Сравните ldd, может в большом меньше зависимость от динамических библиотек.

vodz ★★★★★
()
Ответ на: комментарий от xDShot

Я понял, но для меня не обычное) я догадывался что drm вычищается, но как мне вычистить DRM для этого файла? man strip не удаляет, может инструменты еще есть?

Rubi
() автор топика
Ответ на: комментарий от Rubi

я догадывался что drm вычищается, но как мне вычистить DRM для этого файла?

Учишь ассемблер для x86_64, дизассемблируешь, смотришь от точки входа что происходит, находишь, где и как происходит проверка, после которой делается расшифровка (если зашифровано) или (в простых случаях) просто jmp в нужную точку, выпиливаешь весь этот «лишний» код, в случае шифрования дампишь с памяти расшифрованное и там ищешь, где должна быть точка входа. Недельку работы, и готово (если знаний уже достаточно). Вместо досконального понимания листинга всего этого кода DRM можно иногда использовать метод тыка (совмещая в разных пропорциях). Типа «подпортим вот здесь, что получится».

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 1)
Ответ на: комментарий от Psych218

ассемблер и байт патчинг все это знакомо включая реверс инж, но вот только не для elf формата:) может кто знает как определить чем упакован elf я не знаю в инете инфы нет только форумы в помощь

Rubi
() автор топика
Ответ на: комментарий от Rubi

Разницу можете посмотреть

Посмотрел разницу. Во второй файл статически вкомпилена жирная говнобиблиотека ICU:

$ objdump -TC 1 | grep -i icu
<empty stdout>
$ objdump -TC 2 | grep -i icu
<stdout full of shit^Wicu>

Библиотека ICU в дикой природе весит примерно 27МБ. Очевидно, разработчики или даже крякеры, выпнули эту библиотеку на мороз.

Ещё бы от QtCore её отпилили и вообще отлично было бы. Но это уже другая песня...

EXL ★★★★★
()
Ответ на: комментарий от EXL

спасибо буду копать в эту сторону)))

Rubi
() автор топика
Ответ на: комментарий от EXL

Искал как выпнуть эту библиотеку не нашел, по всей видимости нужно декомпилить и пересобирать исходник?

Rubi
() автор топика
Ответ на: комментарий от vodz

Сложно назвать это - «подразумеваю». Скорее ищу ответы, которых в интернете нет. Нашел что многие сталкиваются с большим весом этой библиотеки, а вот как ее вырезать, и как вообще вырезать библиотеки из программы - вот это интересно. Что нужно сделать чтобы уменьшить размер файла, ведь кто то это сделал из 30 превратил почти в 6 0_о как? Понятно избавились от библиотеки, многие напишут также что нужно что то учить,ассемблер и т.д., как правило, те кто не знают как это сделать напишут что угодно. Тот кто сталкивался с этим, тот может подсказать как действительно это реализовать, чтобы elf уменьшился в размере, и чтобы вырезалась та библиотека, может это просто, и достаточно инструмент какой применить, но как говорится не плавали не знаем.

Rubi
() автор топика
Ответ на: комментарий от Rubi

Там же пакер, он, видимо, и использует ICU. Никто ничего не вырезал, просто вытащили его нагрузку, у которой этой зависимости нет.

xaizek ★★★★★
()
Ответ на: комментарий от Rubi

ведь кто то это сделал из 30 превратил почти в 6 0_о как?

А ты уверен, что этот КТО-ТО вырезал бибилиотеку ручками? Возможно этот кто-то имеет доступ к исходниками или где-то взял версию файла с уже вырезанной ICU разработчиками. И патчил именно её.

Версии программы хоть одинаковые?

EXL ★★★★★
()
Ответ на: комментарий от EXL

Это не разработчики ковырялись:) У разработчиков идет 30мб,я скинул для сравнения файлы, у меня для сравнения с 1 файлом была другая установленная версия. В rpm пакете идентичный по размеру файл, той версии что ~6мб, я его не стал устанавливать,скинул уже установленную чуть свежее версию, потому как программа одна и та же:)

Rubi
() автор топика
Ответ на: комментарий от Rubi

Ну навесная защита/протектор (это же пакер + доп. код), она не обязана уменьшать размер. Если под отладчиком запустить, почти сразу идут анти-отладочные трюки, вызовы rtdsc, int 3. Кто перепаковывал, видимо заменил текстовую секцию настоящим кодом и потом удалил неиспользуемые символы (но я такого не делал, может оно сложнее).

xaizek ★★★★★
()
Последнее исправление: xaizek (всего исправлений: 2)
Ответ на: комментарий от xaizek

Чем дальше тем запотаннее решение :) По всей видимости без отладки, и снятия пакера не избавиться от лишнего веса:)

Rubi
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.