2011-12-11 46 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