如何grep或searchOpenSSL的.jar文件?

我有一个Android应用程序正在使用一些.jar文件(库)。 我的应用程序因为OpenSSL漏洞被拒绝,但找不到包含OpenSSL的.jar文件。

如何在我的MAC上searchOpenSSL的.jar文件?

grep Openssl.class /Users/joon/work/androidApp/*.jar 

UPDATE ===

这是我的依赖和jar子。 当我运行下面提到的grep命令时,不会告诉我哪个jar问题只是我有一个旧版本的OpenSSL。 而且,像Bouncy Castle这样的下面的一些jar子,不论是否有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.+' } 

如何在我的MAC上searchOpenSSL的.jar文件?

您可以使用以下脚本检查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 

您应该将正在报告给您的易受攻击的OpenSSL版本replace为string'1.0.1h' 。 请务必保留单引号,因为句点是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 {} \; 

它删除在每个目录中创build的.DS_Store文件,并随后将其添加到ZIP文件等档案中。