Ich verwende einen gerooteten Emulator. Das Magisk-Zielpaket ist com.catdaddy.cat22. System http tools CA ist installiert. Java-seitiges HTTPS funktioniert unter Umgehung von TrustManagerImpl.verifyChain, aber Aufrufe von bobcatwweproduktion.cdgsrv.com schlagen immer noch mit „Zertifikat abgelehnt“ fehl. Ich vermute, dass der kritische Pfad natives Cronet/BoringSSL ist.
Was ich gesehen habe:
libssl.so und libcrypto.so sind geladen. Kein libmbedtls.so. libcronet.so ist offensichtlich nicht vorhanden und kann daher statisch verknüpft/umbenannt werden
Exportlisten zeigen viele Symbole: SSL_set_custom_verify, SSL_CTX_set_cert_verify_callback, SSL_set_verify, X509_check_, EVP_PKEY_verify, ... aber: Module.findExportByName('libssl.so','SSL_get_verify_result'|'X509_verify_cert'|...) gibt null zurück oder Hooks werden beim fehlgeschlagenen Flow nie ausgelöst.
Hooked-Komparatoren sind im Großen und Ganzen modulübergreifend memcmp/__memcmp_chk/bcmp/CRYPTO_memcmp/u_memcmp ein Handshake-Phasen-Gate, sodass während des fehlgeschlagenen Handshakes keine Vergleichstreffer erfolgen.
Libc getaddrinfo/connect eingehängt und Datei geöffnet geöffnet* AAssetManager_open, sodass für diesen Fluss keine .crt-Lesevorgänge ausgeführt werden.
Fragen, die ich habe:
Zu Cronet/modernem BoringSSL Builds, welche stabilen Hook-Punkte sehen tatsächlich Hostnamen-/Zertifikat-/Pinning-Entscheidungen, wenn die üblichen X509_-/SSL_verify-Exporte nicht ausgelöst werden? Wie bekannte Cronet-Callback-Shims QUIC-Pfade oder alternative Prüfer?
Warum kann ein Symbol in enumerateExports() erscheinen, aber über findExportByName Visibility/versioned Symbol/Stub nicht auflösbar sein? Gibt es eine zuverlässige Möglichkeit, solche Funktionen einzubinden?
Wenn Cronet statisch verknüpft/umbenannt ist, nach welchen Symbolen oder Mustern sollte ich suchen, um seinen TLS-Verifizierungspfad zu finden?
Ziel: Beobachten und deaktivieren Sie den Entscheidungspunkt nicht, um zu verstehen, warum dieser eine Host das Zertifikat ablehnt, während Java-Verkehr durchläuft. Endlich, um die Anfrage von bobcatwweproduktion.cdgsrv.com zu sehen, ohne dass das Zertifikat blockiert wird.
Ich verwende einen gerooteten Emulator. Das Magisk-Zielpaket ist com.catdaddy.cat22. System http tools CA ist installiert. Java-seitiges HTTPS funktioniert unter Umgehung von TrustManagerImpl.verifyChain, aber Aufrufe von bobcatwweproduktion.cdgsrv.com schlagen immer noch mit „Zertifikat abgelehnt“ fehl. Ich vermute, dass der kritische Pfad natives Cronet/BoringSSL ist. Was ich gesehen habe: [list] [*]libssl.so und libcrypto.so sind geladen. Kein libmbedtls.so. libcronet.so ist offensichtlich nicht vorhanden und kann daher statisch verknüpft/umbenannt werden
[*]Exportlisten zeigen viele Symbole: SSL_set_custom_verify, SSL_CTX_set_cert_verify_callback, SSL_set_verify, X509_check_, EVP_PKEY_verify, ... aber: Module.findExportByName('libssl.so','SSL_get_verify_result'|'X509_verify_cert'|...) gibt null zurück oder Hooks werden beim fehlgeschlagenen Flow nie ausgelöst.
[*]Hooked-Komparatoren sind im Großen und Ganzen modulübergreifend memcmp/__memcmp_chk/bcmp/CRYPTO_memcmp/u_memcmp ein Handshake-Phasen-Gate, sodass während des fehlgeschlagenen Handshakes keine Vergleichstreffer erfolgen.
[*]Libc getaddrinfo/connect eingehängt und Datei geöffnet geöffnet* AAssetManager_open, sodass für diesen Fluss keine .crt-Lesevorgänge ausgeführt werden.
[/list] Fragen, die ich habe: [list] [*]Zu Cronet/modernem BoringSSL Builds, welche stabilen Hook-Punkte sehen tatsächlich Hostnamen-/Zertifikat-/Pinning-Entscheidungen, wenn die üblichen X509_-/SSL_verify-Exporte nicht ausgelöst werden? Wie bekannte Cronet-Callback-Shims QUIC-Pfade oder alternative Prüfer?
[*]Warum kann ein Symbol in enumerateExports() erscheinen, aber über findExportByName Visibility/versioned Symbol/Stub nicht auflösbar sein? Gibt es eine zuverlässige Möglichkeit, solche Funktionen einzubinden?
[*]Wenn Cronet statisch verknüpft/umbenannt ist, nach welchen Symbolen oder Mustern sollte ich suchen, um seinen TLS-Verifizierungspfad zu finden?
[/list] Ziel: Beobachten und deaktivieren Sie den Entscheidungspunkt nicht, um zu verstehen, warum dieser eine Host das Zertifikat ablehnt, während Java-Verkehr durchläuft. Endlich, um die Anfrage von bobcatwweproduktion.cdgsrv.com zu sehen, ohne dass das Zertifikat blockiert wird.
Wir führen unsere Java-Anwendung auf der Betriebssystemplattform RHEL 8.5 aus. In der ssl.conf-Datei unseres Apache haben wir nur das TLSv1.2-Protokoll aktiviert. Und wir verwenden in unserer...
Die native CPP -Bibliothek (unter Verwendung von Multi -Threading -Bibliothek wie Arm Neon), die sehr schnell mit nativem Android -ausführbaren Datei ausgeführt wird, wird bei der Integration in die...
Die native CPP -Bibliothek (unter Verwendung von Multi -Threading -Bibliothek wie Arm Neon), die sehr schnell mit nativem Android -ausführbaren Datei ausgeführt wird, wird bei der Integration in die...
Das JDK 21-Dokument über virtuelle Threads (im Folgenden „VT“)
(
ist ziemlich klar über einen synchronisierten Block, der dazu führt, dass ein Thread angeheftet wird, oder über native Methoden, oder...
Es gibt viele ältere Beiträge darüber, wie Nuget standardmäßig die niedrigste kompatible Version für transitive Pakete standhält und somit Schwachstellen in Ihrem Code erstellt. Es sieht so aus Der...