2012-11-21 17 views
1

我正在爲客戶端開發Android應用程序。該應用幾乎完成,下週我會與客戶會面以呈現它。他會對所有內容進行測試,一經批准,他就會付款,我會給他源代碼並在Google Play上發佈。我應該擔心在付款之前將Apk發送給客戶嗎?

今天,他打電話給我要求Apk,以便他可以開始測試它。我擔心,如果我們沒有達成交易(出於某種原因),他可能會讓某人逆向工程Apk並獲得我的源代碼/應用程序,即使使用ProGuard進行混淆(我從來沒有嘗試過,但根據this SO thread對Apk進行逆向工程並不困難)。

我的問題:我被偏執這裏應該只向客戶端發送將APK(原因可能是ProGuard的混淆,就足以使源代碼沒用),或者是我的煩惱合理,我應該堅持得到報酬交付任何東西之前

回答

3

你有沒有反向工程的.apk?可能你做過了,但你是否能夠重新創建整個應用程序?可能不會。按照您的邏輯,這意味着我可以「輕鬆」對任何流行的應用程序進行逆向工程,並將其用於我。確實,你可以瀏覽大多數代碼,如果它沒有被混淆,但是這種技術並不完美。有時它仍然無法將Smali轉換爲真正的Java代碼。你的應用越複雜,它越難。回答你的問題:不要擔心,但你仍然應該(總是)使用ProGuard。

1

很好的答案..我工作了很多與客戶付出我總是少於我要求的東西。

如果您要求回答意味着您對客戶沒有信心,那麼我的建議是在下週對他的第一個應用程序進行測試。告訴他,你發現一個小錯誤,你不能在這幾天給他apk。

但我是在意大利..客戶給錢了事..我不知道妳.. :)

1

事實上,它有可能從APK反向工程的代碼,但如果你是混淆使用ProGuard時,逆向工程代碼幾乎是不可能的。

1

我之前完成了這個工作,並得出了混淆和'定時炸彈'(在給定評估期限後禁用應用程序)就足夠了。我會(a)用您的MD5指紋簽名應用程序,而不是調試簽名者,並且(b)確保您的應用程序中有一個EULA,它的價值就是鹽。如果涉及到它,那麼你總是可以指出這一說法,你同意安裝x,y & z - 這些要點之一肯定是逆向工程。 Google會在開發指南的「準備發佈」部分中幫助您提供一些關於形成EULA的建議......現在在我的手機上寫下這些內容,因此無法鏈接。

有Google。我從我們行業的模板版本中抽取了很多我的EULA。

1

從頭開始重新創建軟件通常要比反向工程更爲便宜和快速,除非您使用某種非常昂貴/專利的算法,這可能會帶來麻煩。

對於通用用戶界面應用程序(約99%的應用程序)逆向工程是不值得的麻煩。

相關問題