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.
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...
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...
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...
Das Problem besteht darin, die längste Folge von Zahlen von 1 bis 100 zu finden, so dass jede Zahl entweder mehrfach oder ein Divisor oder die vorherige und ohne Wiederholung ist. Beispielsweise ist...