我想確保我的應用內容是安全的。我在我的應用程序中有一個加密數據庫的密碼,我只想弄清楚我的項目中是否存在無法通過逆向工程訪問的安全位置。Android:逆向工程如何工作?
而且如果u解釋工程不久如何反向運作將是巨大的。 ThanQ。
而PLZ不要張貼鏈接的ProGuard!
我想確保我的應用內容是安全的。我在我的應用程序中有一個加密數據庫的密碼,我只想弄清楚我的項目中是否存在無法通過逆向工程訪問的安全位置。Android:逆向工程如何工作?
而且如果u解釋工程不久如何反向運作將是巨大的。 ThanQ。
而PLZ不要張貼鏈接的ProGuard!
Haawa,
如果你是存儲在您的應用程序密碼爲靜態字符串,它是不安全。即使您正在使用ProGuard,也很容易實現。保護它的最好方法是根本不存儲它。相反,如果可能的話,讓你的應用程序向驗證用戶的服務器發送一個唯一的標識符(可能使用LVL),然後服務器回傳一個DB密碼或實際的DB數據本身(存儲在服務器上)。
如果這是不可能的,或者如果您無法訪問自己的服務器,至少通過將字符串存儲爲異或字符串或更好的方式來以某種方式混淆字符串,或者提出自己的函數使字符串變得模糊。從來沒有在Java代碼中的線,看起來像password = "mypass";
即使那時他並不安全。 *任何*應用程序的行爲都可以被攻擊者模擬/僞造。沒有辦法讓它對付一個專門的攻擊者,只有更難 – entropy 2012-08-01 08:19:28
在逆向工程:你的.apk文件由.apk重命名爲.zip文件,然後抽象的zip文件,找到你的文件夾,
但你可以無法爲找到你的項目的.class文件
Reverse engineering更多的是通過仔細的分析應用程序的行爲方面重建的知識產權。關於安全問題,我認爲,social engineering應該更關注你
其他人解釋了逆向工程,所以我將解釋如何對數據庫進行加密。
你應該使用用戶的憑據(用戶名和密碼或PIN)的密鑰加密的數據庫。當用戶啓動應用程序時,應提示他們輸入憑據。密鑰不應該被硬編碼。
這防止攻擊者訪問用戶的數據,而不必的憑據。
如果您試圖隱藏包括用戶在內的所有人的數據,但應用程序能夠訪問它,那麼您必須將其存儲在服務器上,並且只請求您願意顯示的數據用戶。
你可以解釋如何使用dex2jar從classes.dex – 2012-08-01 08:23:45
獲取jar文件的cmd,cd到dex2jar目錄並鍵入'dex2jar.bat classes.dex '。這將生成.jar文件 – 2012-08-01 08:39:23