看起來很容易從.apk文件獲取Java源文件。但有沒有可能通過工具或棘手的方法從.apk文件獲得Android.mk或原生源文件?是否可以從.apk文件獲取Android.mk或本機源文件?
我正在研究Android應用程序本機代碼的安全性,以便這些文件對我來說非常重要。謝謝。
看起來很容易從.apk文件獲取Java源文件。但有沒有可能通過工具或棘手的方法從.apk文件獲得Android.mk或原生源文件?是否可以從.apk文件獲取Android.mk或本機源文件?
我正在研究Android應用程序本機代碼的安全性,以便這些文件對我來說非常重要。謝謝。
你不能從apk獲得Android.mk,它只是用於構建,因此它不存儲在那裏(除非程序員把它放在res /文件夾或類似的東西)。
應用程序的所有本機代碼都存儲在apk根目錄下的libs /目錄中。它是編譯ARM或x86代碼,或兩者兼而有之。你可以在libs/architecture_type/lib_name.so中找到它。你可以用objdump或gdb來解析代碼。反編譯是一項艱鉅的任務,但您可以找到一些可能適合您的軟件。
編輯:我注意到你似乎擔心人們會對你的代碼進行逆向工程。防止某人逆向工程代碼的唯一可靠方法是不要把它寫在第一位。然而,你可以做一些事情讓人們感到困難,但是有足夠執着的人可以避開它。
我並不擔心我的應用被反向設計,但實際上我正在嘗試對其他應用進行逆向工程,以便對Android應用本機代碼安全性進行研究。非常感謝! –
安全和反編譯是不相關的主題。 – CodesInChaos
是的,它們是相關的,因爲找出使用本機代碼的應用程序是否是惡意的一種方法是首先反編譯,然後檢查其源代碼。 –