
情況:很久以前,我透過轉換為 *.SO 文件,用 C 和 C++ 開發了一些編碼 - 我刪除了那些 C 和 C++ 文件。
問題:我想將 *.SO 檔案重新轉換為 C 和 C++ 檔案以進行程式碼升級,請指導流程並發送任何教程和流程以進行重新轉換。
答案1
這個問題之前已經在這裡問過:https://stackoverflow.com/questions/2306972/is-there-any-way-to-decompile-linux-so。
無論如何,你無法取回原來的程式碼,或者引用 Carlos Gutiérrez 的話:「你可以用牛做漢堡,但你不能用漢堡做牛」。
*.so 檔案是編譯後的共享物件(大致相當於 Windows 中的 dll)。它包含機器理解的語言中函數的所有資訊。這不一定是與其編寫的語言相同的語言 - 如果原始版本不是純彙編,那麼它幾乎肯定不是同一種語言。因此,雖然可以獲得足夠的資訊來產生執行相同操作的函數,但不可能返回原始原始程式碼。