2016-04-23 74 views
2

我正在開發一個包含本機代碼的Android應用程序。 本機代碼被編譯爲一個.so文件,其中包含重要的算法。是否可以編輯/修改.so文件?

我真的很擔心我的.so文件可以被編輯或修改,然後重新構建(重新打包)的可能性。就像他們的APK可以修改和重新包裝,以創建一個新的

我有幾個問題在這裏:

1)有什麼辦法來編輯/修改.so文件並重新構建? 2)如果有,人們如何做到這一點? 3)如何防止.so文件被編輯然後重新構建?

回答

2

簡短的答案是,任何一臺電腦可以閱讀和理解,它也可以修改。 Android for Java或本機代碼中沒有防彈簽名機制。儘管如此,這些文件通常被認爲比Java代碼更不易受攻擊,即使啓用了混淆。

對共享庫進行逆向工程很困難,但可行。如果知道要更改什麼,則拆卸,更換和裝配回來並不困難。

有很多方法可以加強對C++代碼的防逆向工程保護,但是沒有一種方法可以抵禦確定且資金充足的攻擊。因此,如果風險非常高,請考慮在您的服務器上運行算法的重要部分,併爲其安全性而犧牲。

+0

謝謝你Alex的回答。我可以問你一些事情嗎?你能提出什麼是加強C/C++代碼保護的最佳方法嗎? 黑客可以修改.so文件的常見竅門是什麼? –

+0

參見例如http://stackoverflow.com/questions/6481668/protecting-executable-from-reverse-engineering –

相關問題