Überprüfen Sie die OpenSSL-Version in Android mit der Java-Laufzeit oder dem Shell-Befehl

Ich habe ein Problem mit der Überprüfung der OpenSSL-Version auf einem Android-Gerät. Ich habe es mit Java grep OpenSSLversucht , aber es funktioniert nicht?system/lib/libssl.soruntime.exec

Jeder kann mir helfen, wie man einen Befehl macht, um die OpenSSL-Version in Android zu überprüfen?

Antworten (1)

grepmag Binärdateien nicht wirklich, aber Sie können die Zeichenfolgen aus der Binärdatei extrahieren und diese mit strings. Diese Binärdatei ist auf den meisten Standard-ROMs nicht verfügbar, aber Sie können Busybox oder ein ähnliches Tool verwenden, um sie auf den meisten Geräten zu verwenden.

Auf meinem Gerät listet der folgende Befehl die korrekte OpenSSL-Version auf, die von libssl.so verwendet wird:

strings /system/lib/libssl.so | grep -i openssl

Dies gibt mir die folgende Ausgabe:

OpenSSLDie
OPENSSL_cleanse
OPENSSL_DIR_read
OPENSSL_DIR_end
external/openssl/ssl/bio_ssl.c
external/openssl/ssl/d1_both.c
external/openssl/ssl/d1_enc.c
external/openssl/ssl/d1_lib.c
external/openssl/ssl/d1_pkt.c
external/openssl/ssl/d1_srtp.c
external/openssl/ssl/s23_clnt.c
external/openssl/ssl/s23_lib.c
external/openssl/ssl/s23_srvr.c
external/openssl/ssl/s2_clnt.c
external/openssl/ssl/s2_enc.c
external/openssl/ssl/s2_lib.c
external/openssl/ssl/s2_pkt.c
external/openssl/ssl/s2_srvr.c
external/openssl/ssl/s3_both.c
external/openssl/ssl/s3_cbc.c
external/openssl/ssl/s3_clnt.c
external/openssl/ssl/s3_enc.c
external/openssl/ssl/s3_lib.c
external/openssl/ssl/s3_pkt.c
external/openssl/ssl/s3_srvr.c
external/openssl/ssl/ssl_asn1.c
external/openssl/ssl/ssl_cert.c
OPENSSL_DIR_read(&ctx, '
external/openssl/ssl/ssl_ciph.c
OPENSSL_malloc Error
OpenSSL 1.0.1j 15 Oct 2014
external/openssl/ssl/ssl_lib.c
external/openssl/ssl/ssl_rsa.c
external/openssl/ssl/ssl_sess.c
external/openssl/ssl/ssl_txt.c
external/openssl/ssl/t1_enc.c
external/openssl/ssl/t1_lib.c
external/openssl/ssl/t1_reneg.c
external/openssl/ssl/tls_srp.c
DTLSv1 part of OpenSSL 1.0.1j 15 Oct 2014
SSLv2 part of OpenSSL 1.0.1j 15 Oct 2014
SSLv3 part of OpenSSL 1.0.1j 15 Oct 2014
TLSv1 part of OpenSSL 1.0.1j 15 Oct 2014

Ich kann nicht bestätigen, dass dies für jedes Gerät funktioniert, aber ich sehe keinen Grund, warum dies fehlschlagen sollte.

+1, obwohl der Befehl auf einem normalen ROM nicht funktionieren würde. stringsBinary ist nicht in einem typischen Stock-ROM enthalten. Dafür bräuchtest du Busybox.
@Firelord Entschuldigung, das wusste ich nicht. Danke, dass du mich korrigiert hast.
@gertmenkel, wie überprüfe ich, ob ich den Root-Benutzer entwurzele? mit Shell-Befehl Java-Laufzeit?
@Erwin Sitorus Fragen zum Schreiben von Apps (auf Android oder allgemein) sollten unter stackoverflow.com gestellt werden . Diese Seite ist für Android-Benutzer gedacht, nicht für Android-Programmierer.
@gertmenkel, ich möchte nur überprüfen, ob ich den Benutzer mit dem Shell-Befehl entwurzele, da die Busy-Box nur ausgeführt wird, wenn ich den Benutzer roote.
@Erwin Sitorus, es gibt diese Antwort bei StackOverflow, in der viele Möglichkeiten erörtert werden, um festzustellen, ob ein Gerät gerootet ist: stackoverflow.com/a/8097801/3746429
@gertmenkel, ich möchte nur, dass meine Codierung (Shell-Befehl mit Laufzeit) auf allen Android-Geräten ohne gerootetes Gerät ausgeführt werden kann.
@gertmenkel, können Sie mir helfen, die Version der Openssl-Anwendung von System/App oder Anwendung zu überprüfen, die auf Android installiert ist? mit grep