2011-12-01 77 views
2

我已经创建了一个加密模块并将其导出为jar文件。如何在android中运行时访问库jar文件?

加载库时需要进行自我完整性测试以通过FIPS验证。

第一个想法是在运行时读取jar文件,做一个散列并将其与某个地方保存的签名进行比较。

通过解压缩使用jar文件的应用程序apk,我没有找到jar。所以我猜jar中的类保存在classes.dex中,对吗?是否有可能从classes.dex中恢复jar?

回答

0

是否有可能从classes.dex中恢复jar?

而且,它不会做你有点作用。无论谁改变你的JAR也只会改变哈希。

+0

在运行时是否可以读取我的类的字节码?谢谢。 –

+0

@思洛:我不能肯定地说。 – CommonsWare

0

的DEX格式是不公开的,但确实存在一种工具,它解压到一个罐子,其所谓dex2jar并且可以在这里找到http://code.google.com/p/dex2jar/

不认为这虽然解决您的问题,只是想你想知道。

1

在加载模块之前,您需要执行“批准的完整性技术”。唯一NIST “已批准” 完整性验证方法是: - DSA/RSA/ECDSA签名 - C/MAC或HMAC

见 “6.4批准完整性技术” 中FIPS140-2 Implementation Guidance document

一个简单的MD5/SHA-1/SHA-2哈希是不够的。