如何grep或搜索OpenSSL的.jar文件?

时间:2016-03-25 02:32:16

标签: macos jar grep openssl google-play

我有一个使用某些.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.+'
}

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文件等档案中。