2011-12-11 78 views
1

在Android上,我需要在運行時從正在執行的類中檢索字節碼。 如果你想知道爲什麼,原因是我想計算它的散列,以便ton執行一些反盜版機制來檢查文件沒有被篡改。運行時獲取字節碼

無論如何,我想這樣的:

InputStream is = this.getClass().getClassLoader() 
        .getResourceAsStream("org/foo/bar"); 

無論參數我傳入的getResourceAsStream(),它總是返回null。

實際上有一種方法可以在Android上運行時訪問字節碼嗎?

回答

1

不確定這是否可能,您應該相信用於APK的簽名系統。我所見過的唯一黑客就是將這個應用程序包裝在另一個包含惡意代碼的應用程序中,Google解決了這個問題(我認爲)。類已經有一個哈希碼,但我相信這不會給你想要做的相同的結果。

如果有人可以更改您的代碼,他們也會禁用您的支票。

我已經看到並嘗試了一個逆向工程應用程序來檢查Android的字節代碼的安全性與我自己的應用程序,它只適用於有根系統和禁用的代碼是如此可怕,它是無法使用的。這與拆解Java應用程序不一樣。

盜版遊戲並不需要修改。

+0

謝謝你的回答。不過,我仍然希望找到一種方法來訪問字節碼...正如你所知道的,破解Android應用程序是一件小事,並且盜版者不需要很長時間就可以從我的Google帳戶中刪除Google的許可證支票應用程序。至於簽名檢查,我也是這樣實施的。現在我得出的結論是,我真的需要有創意,並使用奇怪的解決方案,有機會減少盜版應用程序的難度。我的解決方案依賴於獲取字節碼......我只需要實際上字節碼的散列 – muslidrikk