
Ситуация: Давным-давно я разработал код на языках C и C++, преобразовав его в файл *.SO, и удалил эти файлы C и C++.
Проблема: Я хочу повторно преобразовать файлы *.SO в файлы C и C++ для обновления кода. Пожалуйста, дайте указания по процедуре и вышлите любое руководство и процедуру повторного преобразования.
решение1
Этот вопрос уже задавался здесь:https://stackoverflow.com/questions/2306972/есть-ли-способ-декомпилировать-linux-so.
В любом случае, вы не сможете вернуть свой первоначальный код, или, как сказал Карлос Гутьеррес: «Из коровы можно сделать гамбургеры, но из гамбургеров сделать корову нельзя.".
Файл *.so — это скомпилированный общий объект (примерно эквивалентный dll в Windows). Он содержит всю информацию для функции на языке, который понимает машина. Это не обязательно тот же язык, на котором она написана — если оригинал не был чистым ассемблером, то это почти наверняка не тот же язык. Поэтому, хотя и возможно получить достаточно информации для создания функции, которая делает то же самое, невозможно вернуться к исходному коду.