2016-08-16 70 views

回答

8

是的。應用程序文件夾的結構。例如,你可以在Android的

如果你正在尋找一個「正常」的單機器人的應用程序(的東西,如Xamarin編譯),那麼你會看到一些這樣的結構在APK/ZIP」

/assemblies/Sikur.Monodroid.dll 
/assemblies/Sikur.dll 
/assemblies/Xamarin.Android.Support.v13.dll 
/assemblies/Xamarin.Android.Support.v4.dll 
/assemblies/Xamarin.Android.Support.v7.AppCompat.dll 
/assemblies/Xamarin.Android.Support.v7.CardView.dll 
/assemblies/Xamarin.Android.Support.v7.RecyclerView.dll 
/assemblies/Xamarin.Mobile.dll 
/assemblies/mscorlib.dll 
/classes.dex 
/lib 
/lib/armeabi-v7a 
/lib/armeabi-v7a/libmonodroid.so 
/lib/armeabi-v7a/libmonosgen-2.0.so 

組件目錄中的文件將是Mono/.Net代碼,並且可以使用這些常規工具進行反轉。

classes.dex是一個正常的Android Dalvik可執行文件(dex),可以使用常用工具(baksmali,IDA Pro等)將其反轉 - 儘管它應該只是加載啓動Mono引擎的存根。

這些文件包含在lib/**/*中,所以是編譯到ELF ARM文件中的本地共享庫。這些通常是單引擎引擎(libmonodroid.so)以及開發人員可能使用的其他插件。這些需要支持ELF ARM的反彙編程序,如Hopper,IDA Pro,r2等。

在上面的特定示例中,唯一的非Xamarin代碼將位於Sikur.dll和Sikur.Monodroid.dll中。


反編譯的apk https://ibotpeaches.github.io/Apktool/

如果有mono.dll是xamarin。

你可以反編譯C#中的一些.dll代碼。


在iOS中,您不能反編譯。 Android應用程序被編譯爲與機器無關的Java字節碼,將其轉換回Java相對容易。 iOS應用程序直接編譯爲機器代碼,並具有積極的優化傳遞,這往往會破壞很多原始代碼的結構。

這並不是說你不能從編譯好的iOS應用程序中學到任何有用的東西。 class-dump工具可以從已編譯的應用程序中提取Objective-C類,屬性和方法的名稱,這可以爲您提供有關如何實現的線索。 NibUnlocker可以將已編譯的Interface Builder UI文件轉換回可編輯的格式。 Hopper不僅可以反彙編機器代碼以將其轉換爲彙編代碼,還可以將其轉換爲更容易理解的僞代碼。圖像,聲音和其他資源通常在iOS應用程序包中未加密。

你可以嘗試使用這個應用程序,並觀察區別是任何人閱讀這個答案可以嘗試。讓我知道有什麼區別。

相關問題