我已经创建了一个加密模块并将其导出为jar文件。如何在android中运行时访问库jar文件?
加载库时需要进行自我完整性测试以通过FIPS验证。
第一个想法是在运行时读取jar文件,做一个散列并将其与某个地方保存的签名进行比较。
通过解压缩使用jar文件的应用程序apk,我没有找到jar。所以我猜jar中的类保存在classes.dex中,对吗?是否有可能从classes.dex中恢复jar?
我已经创建了一个加密模块并将其导出为jar文件。如何在android中运行时访问库jar文件?
加载库时需要进行自我完整性测试以通过FIPS验证。
第一个想法是在运行时读取jar文件,做一个散列并将其与某个地方保存的签名进行比较。
通过解压缩使用jar文件的应用程序apk,我没有找到jar。所以我猜jar中的类保存在classes.dex中,对吗?是否有可能从classes.dex中恢复jar?
是否有可能从classes.dex中恢复jar?
号
而且,它不会做你有点作用。无论谁改变你的JAR也只会改变哈希。
的DEX格式是不公开的,但确实存在一种工具,它解压到一个罐子,其所谓dex2jar并且可以在这里找到http://code.google.com/p/dex2jar/
不认为这虽然解决您的问题,只是想你想知道。
在加载模块之前,您需要执行“批准的完整性技术”。唯一NIST “已批准” 完整性验证方法是: - DSA/RSA/ECDSA签名 - C/MAC或HMAC
见 “6.4批准完整性技术” 中FIPS140-2 Implementation Guidance document。
一个简单的MD5/SHA-1/SHA-2哈希是不够的。
在运行时是否可以读取我的类的字节码?谢谢。 –
@思洛:我不能肯定地说。 – CommonsWare