我有一个使用某些.jar文件(库)的Android应用。我的应用程序因OpenSSL漏洞而被拒绝,但无法找到包含OpenSSL的.jar文件。
如何在我的MAC上搜索.jar文件中的Openssl?
grep Openssl.class /Users/joon/work/androidApp/*.jar
UPDATE ===
这是我的依赖项和Jars。当我运行下面提到的grep命令时,它并没有告诉我哪个jar是问题,因为我有一个旧版本的OpenSSL。此外,下面的一些罐子,比如Bouncy Castle,无论是否有OpenSSL,自2013年以来都没有更新,这是在OpenSSL安全修复之前。我们尝试逐个删除每个jar,并重新编译+清理(注释掉代码以便编译),但它仍然说旧的OpenSSL正在使用中。任何人都可以指出下面的罪魁祸首吗?
JARS:
httpmime-4.1.3.jar
libGoogleAnalyticsServices.jar
opentok-android-sdk-2.3.1.jar
sc-light-jdk15on-1.47.0.2.jar
scpkix-jdk15on-1.47.0.2.jar
scprov-jdk15on-1.47.0.2.jar
socketio.jar
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.+'
compile 'com.google.android.gms:play-services-maps:6.5.+'
compile 'com.crashlytics.android:crashlytics:1.+'
}
答案 0 :(得分:1)
如何在我的MAC上搜索.jar文件中的Openssl?
您可以使用以下脚本检查JAR文件:
#!/usr/bin/env bash
JAR_FILES=("httpmime-4.1.3.jar"
"libGoogleAnalyticsServices.jar"
"opentok-android-sdk-2.3.1.jar"
"sc-light-jdk15on-1.47.0.2.jar"
"scpkix-jdk15on-1.47.0.2.jar"
"scprov-jdk15on-1.47.0.2.jar"
"socketio.jar")
for jar_file in "${JAR_FILES[@]}"
do
echo "************ $jar_file ************"
grep '1.0.1h' "$jar_file"
done
您应该将字符串'1.0.1h'
替换为向您报告的易受攻击的OpenSSL版本。请务必保留单引号,因为句点是1.0.1h
中的文字。
另一种方法是:
find /Users/joon/work/androidApp/ -name '*.jar' -exec grep 'Openssl.class' {} \;
或者:
find /Users/joon/work/androidApp/ -name '*.jar' -exec grep '1.0.1h' {} \;
在OS X上,这也很有用:
find "$HOME" -name '.DS_Store' -exec rm -f {} \;
删除在每个目录中创建的.DS_Store
个文件,然后将其添加到ZIP文件等档案中。