LINUX.ORG.RU

оптимизация исполняемого файла

 , , ,


0

1

Предпочитаю по возможности собирать приложение из исходников с оптимизацией под платформу, но что делать, если есть бинарник, а исходников нет? Есть ли инструменты, позволяют производить оптимизацию в духе реверс-инжениринг/перекомпиляция в новый быстрый бинарник? А еще лучше, чтобы без танцев с бубном,

optimizer -Ofast ./app optimizedapp
Есть что нибудь похожее?

Да, конечно. hexedit ./app и блокнотик с шариковой ручкой.

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

hex-rays не видел? Эх, а 3 звезды. Это наверное единственный «декомпилятор», но на арме ты x86 так не запустишь в любом случае. Только ручками. :)

А ir из llvm платформозависимый? Gimple то вроде да.

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

Hex-Rays я, конечно же, видел. И даже немного с ним работал. Если программа сложная, то результат его декомпиляции нужно часами/днями ещё пилякать, чтобы хоть что-то как-то запустилось.

но на арме ты x86 так не запустишь в любом случае

Ну вот же Notaz отреверсил x86 StarCraft, выловил сегфолты, прилинковал winelib и релизнул его под ARM: https://habrahabr.ru/post/215375/

Два года назад было.

А ir из llvm платформозависимый?

http://llvm.org/docs/FAQ.html#can-i-compile-c-or-c-code-to-platform-independe...

EXL ★★★★★
()

Ну prelink можно прогнать, например. Подобного «Сделать зашибись» я не встречал.

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

отреверсил

Каждая команда преобразуется в выражение на Си, причём код довольно тупой получается. Даже с предельной оптимизацией можно надеяться на 70-90% от изначальной скорости. Мечты о том, что компилятор внезапно сделает код быстрее, лучше сразу закопать.

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