LINUX.ORG.RU

Как декомпилировать .so-файл?


1

1

меня интересует конкретно файл npIFCPlugin.so

Тут рекомендуют boomerang, objdump, но я пока не умею ими пользоваться

nm -C /usr/lib/mozilla/plugins/npIFCPlugin.so
nm: /usr/lib/mozilla/plugins/npIFCPlugin.so: no symbols

strings -a /usr/lib/mozilla/plugins/npIFCPlugin.so

Список разных старых декомпиляторов:
http://demono.ru/links.aspx

Хотелось бы ещё узнать, для чего нужна каждая из зависимостей:

libifc.so
libdl.so.2
libm.so.6
libpthread.so.0 - многопоточность?
libgcc_s.so.1 - поддержка компилятора?
libstdc++.so.6 - стандартная библиотека
libc.so.6 - стандартная библиотека



Последнее исправление: vmw8sl (всего исправлений: 5)

Если вы надеетесь из npIFCPlugin.so получить нормальный С-шный код, то зря. Или устроит дизассемблер?

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

Если вы надеетесь из npIFCPlugin.so получить нормальный С-шный код, то зря.

хочу для начала выяснить, каким компилятором он был скомпилирован.

в википедии пишут делать так:
objdump -Dslx /usr/lib/mozilla/plugins/npIFCPlugin.so | less

думаю, что дальше

vmw8sl
() автор топика
Ответ на: комментарий от Dead
objdump -s --section .comment /usr/lib/mozilla/plugins/npIFCPlugin.so

/usr/lib/mozilla/plugins/npIFCPlugin.so:     file format elf64-x86-64

Contents of section .comment:
 0000 4743433a 2028474e 55292034 2e342e36  GCC: (GNU) 4.4.6
 0010 20323031 32303330 35202852 65642048   20120305 (Red H
 0020 61742034 2e342e36 2d342900 4743433a  at 4.4.6-4).GCC:
 0030 2028474e 55292034 2e342e37 20323031   (GNU) 4.4.7 201
 0040 32303331 33202852 65642048 61742034  20313 (Red Hat 4
 0050 2e342e37 2d332900                    .4.7-3).

т.е.
GCC: (GNU) 4.4.6 20120305 (Red Hat 4.4.6-4).GCC: (GNU) 4.4.7 20120313 (Red Hat 4.4.7-3).

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

нормальный С-шный код

это был C++ с применением boost, так говорит
strings -a /usr/lib/mozilla/plugins/npIFCPlugin.so

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

Топик закрыт?

нееет, теперь пытаемся восстановить код на C++ или доказать, что там используется GPL-ный код, чтобы они его сами раскрыли

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

нееет, теперь пытаемся восстановить код на C++ или доказать, что там используется GPL-ный код

IMHO безперспективное занятие.

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

Должны же быть способы выявления использования GPL-кода в других программах? Как-то же доказывают что GPL нарушен.

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

Должны же быть способы выявления использования GPL-кода в других программах? Как-то же доказывают что GPL нарушен.

Я так понимаю, что для этого нужны хотя бы какие-то подозрения, что определенный функционал взят из GPL кода.

Как я понял, у вас нет конкретных подозрений.

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

у вас нет конкретных подозрений

да какие подозрения, если код написан на деньги налогоплатильщиков, то он должен быть опенсорсным

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

Возьми уже IDA ворованую. Ну или если не боишься хардкора - radare2, ибо objdump тебе даст только портянку асма.

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

доказать, что там используется GPL-ный код, чтобы они его сами раскрыли

А кто сказал, что в России GPL целиком и полностью работает? Были пренценденты, что суд обязывал кого-то раскрыть код из за использования в нем GPL-кода?

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

Возьми уже IDA ворованую.

Раньше дивная прога была - Sourcer 7 by V Communications Inc ...
хочу её современный опенсорсный аналог

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

Должны же быть способы выявления использования

NOT_YOUR_PERSONAL_ARMY.jpg

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

да какие подозрения, если код написан на деньги налогоплатильщиков, то он должен быть опенсорсным

А предприятия, посторенные во время советской эпохи должны быть национализированы.

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

А что ты найти хочешь? Код добавленный методом копипаста или статическую линковку с GPL-кодом? Если второе, то у меня для тебя плохие новости.

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

да какие подозрения, если код написан на деньги налогоплатильщиков, то он должен быть опенсорсным

С какой стати?

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

Потому что налогоплатильщик должен иметь возможность проверить чиновников, вдруг они туда прослушку/подглядку запихали?

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

Потому что налогоплатильщик должен иметь возможность проверить чиновников, вдруг они туда прослушку/подглядку запихали?

Это написано в каком-либо официальном документе?

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

вот именно, если нигде не написано, то чиновник не должен иметь возможность вставить лишний код в свою пользую. Может он там биткоины майнить соберется. А у гражданского общества должны быть механизмы проверки.

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

да какие подозрения, если код написан на деньги налогоплатильщиков, то он должен быть опенсорсным

Не совсем понял, причем тут тогда GPL?

Про конкретные подозрения я не просто так написал.

Т.к. если нет подозрений, какой именно код укарли, то это искать иголку в стоге сена.

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

А зачем его вылинковывать? Посмотри по названиям функций. Просто еще LGPL есть.

naszar
()

HT-editor - hex-редактор со встроенным дизассемблером.

Lincor
()

Если ты хочешь посмотреть не делает ли эта сошка чего лишнего, я бы начал со strace, а так же списка используемого системного api. Декомпилировать нужно только в крайнем случае, когда уже есть подозрения, что код лезет куда не должен.

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

Вот так взяли и всех обгадили...

не я первый начал. Первый начал чувак, который сказал, что быдлонаселению в коде разбираться ни к чему (А в СССР была программа всеобщей компьютерной грамотности)

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

Даже если бы прецеденты были, то напомню, что суды у нас не по прецедентам работают, как в США (отчего там бредовые законы встречаются), а как судья поглядит.

peregrine ★★★★★
()

Тут рекомендуют boomerang, objdump, но я пока не умею ими пользоваться

Ну так научись, <мат поскипан>. В чем проблема?

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

Ну так научись, <мат поскипан>. В чем проблема?

Посоветуй соответствующие учебные курсы. Их нет? Проследуй в китай для приобретения опыта преподавания linux.

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

восстановить код на C++

Нереально.

доказать, что там используется GPL-ный код

Нужно сделать дамп определенных в блобе символов, выполнить деманглинг (чтобы из кракозябр c++ abi получить читабельные имена), и поискать эти же имена в опенсорсных проектах. Далее по обстоятельствам.

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

выполнить деманглинг

это работать будет только при наличии отладочной информации или если функции экспортируются. Тут похоже не тот случай.

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

Посоветуй соответствующие учебные курсы.

Советую внимательно прочитать выхлоп команды «man objdump». Непонятные слова из этого выхлопа — загуглить.

Их нет?

Подозреваю, что лично ты не готов оплатить создание таких курсов.

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

это работать будет только при наличии отладочной информации или если функции экспортируются

Это не будет работать только если авторы so-шки специально озаботились тем, чтобы скрыть символы.

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

Почему именно GPL? Полно еще других лицензий интересных: MIT, BSD например.

Потому что для того, чтобы принудить авторов к раскрытию кода, нужно найти именно нарушение GPL.

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

А кто сказал, что в России GPL целиком и полностью работает?

Возникает вопрос: на основании какой лицензии авторы so-шки включили к себе чужой gpl-ный код (если они его в самом деле включили)? Ведь если считать GPL невалидной на территории РФ, то получится, что авторы so-шки этот код вообще грубо спиратили (146 УК РФ, незаконное использование объектов авторского права).

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)

strace попробовать, только надо как-то прицепиться к pid или еще к чему...

Кроме strace, еще для чистоты проверить сетевые вызовы...

Проблема в том, что исходники рано или поздно если покажут, то распространение в бинарном виде все равно остается. Надо чтобы предоставлялся собираемый из исходного кода весь пакет, без использования бинарщины и на территории конечного пользователя. Как-то так.

Вообще, есть официальный курс на использование открытого ПО в государственных структурах (возможно есть официальный регламент (только разумеется не такой, как программа показа исходников винды)) - а распространение подобных библиотек в бинарном и,или не собираемом виде как-то не стыкуется, очевидно же.

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

Потому что для того, чтобы принудить авторов к раскрытию кода, нужно найти именно нарушение GPL.

BSD, MIT без перепечатки копирайтов оригинала в коде тоже нарушение. Нельзя просто так взять код.

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

чтобы они его сами раскрыли

Кстати, ты с авторами в переписку не пробовал вступить? Может, быть код и так уже опубликован, а ты просто об этом не знаешь?

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

(А в СССР была программа всеобщей компьютерной грамотности)

Ну и как - помогла она СССРу? :-\

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

то напомню, что суды у нас не по прецедентам работают, как в США (отчего там бредовые законы встречаются), а как судья поглядит.

Там бредовые законы встречаются, а у нас никакиш шансов - только бредовые, да ещё и «как судья поглядит» ... А глядит от обычно та толщину занесённой пачки :-\

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