frida / frida-java-bridge

Java runtime interop from Frida
324 stars 120 forks source link

Error: Java API only partially available on MacOS #297

Closed XhstormR closed 1 year ago

XhstormR commented 1 year ago

OpenJDK download link: https://cdn.azul.com/zulu/bin/zulu20.32.11_1-ca-jdk20.0.2-macosx_x64.zip MacOS version: 13.5.2 (22G91)

$ frida --version 
16.1.4

$ zulu20.32.11_1-ca-jdk20.0.2-macosx_x64/zulu-20.jdk/Contents/Home/bin/java --version   
openjdk 20.0.2 2023-07-18
OpenJDK Runtime Environment Zulu20.32+11-CA (build 20.0.2+9)
OpenJDK 64-Bit Server VM Zulu20.32+11-CA (build 20.0.2+9, mixed mode, sharing)

$ frida -l 123.js  -p 60983 
     ____
    / _  |   Frida 16.1.4 - A world-class dynamic instrumentation toolkit
   | (_| |
    > _  |   Commands:
   /_/ |_|       help      -> Displays the help system
   . . . .       object?   -> Display information about 'object'
   . . . .       exit/quit -> Exit
   . . . .
   . . . .   More info at https://frida.re/docs/home/
   . . . .
   . . . .   Connected to Local System (id=local)

Error: Java API only partially available; please file a bug. Missing: _ZN14NMethodSweeper16sweep_code_cacheEv, _ZN19Abstract_VM_Version19jre_release_versionEv, _ZN14NMethodSweeper11_traversalsE, _ZN14NMethodSweeper13_should_sweepE
    at E (frida/node_modules/frida-java-bridge/lib/jvm.js:146)
    at b (frida/node_modules/frida-java-bridge/lib/jvm.js:10)
    at _tryInitialize (frida/node_modules/frida-java-bridge/index.js:29)
    at _ (frida/node_modules/frida-java-bridge/index.js:21)
    at <anonymous> (frida/node_modules/frida-java-bridge/index.js:332)
    at call (native)
    at o (/_java.js)
    at <anonymous> (/_java.js)
    at <anonymous> (frida/runtime/java.js:1)
    at call (native)
    at o (/_java.js)
    at r (/_java.js)
    at <eval> (frida/runtime/java.js:3)
    at _loadJava (native)
    at get (frida/runtime/core.js:134)
    at <eval> (/Users/user/Documents/IdeaProjects/tttttt/123.js:21)
    at evaluate (native)
    at <anonymous> (/frida/repl-2.js:1)
[Local::PID::60983 ]->
XhstormR commented 1 year ago

I switched to JDK version 17 and it worked magically. JDK link: https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_x64.zip

$ zulu17.44.53-ca-jdk17.0.8.1-macosx_x64.zipdawdw/zulu17.44.53-ca-jdk17.0.8.1-macosx_x64/bin/java --version 
openjdk 17.0.8.1 2023-08-24 LTS
OpenJDK Runtime Environment Zulu17.44+53-CA (build 17.0.8.1+1-LTS)
OpenJDK 64-Bit Server VM Zulu17.44+53-CA (build 17.0.8.1+1-LTS, mixed mode, sharing)

$ frida -l 123.js -p 61065  
     ____
    / _  |   Frida 16.1.4 - A world-class dynamic instrumentation toolkit
   | (_| |
    > _  |   Commands:
   /_/ |_|       help      -> Displays the help system
   . . . .       object?   -> Display information about 'object'
   . . . .       exit/quit -> Exit
   . . . .
   . . . .   More info at https://frida.re/docs/home/
   . . . .
   . . . .   Connected to Local System (id=local)
Attaching...
jdk.internal.reflect.DelegatingClassLoader@74e52303
jdk.internal.loader.ClassLoaders$PlatformClassLoader@69d1b303
jdk.internal.reflect.DelegatingClassLoader@1dd02175
jdk.internal.reflect.DelegatingClassLoader@4fe767f3
jdk.internal.reflect.DelegatingClassLoader@488d1cd7
jdk.internal.reflect.DelegatingClassLoader@82ea68c
jdk.internal.reflect.DelegatingClassLoader@1838ccb8
jdk.internal.reflect.DelegatingClassLoader@71809907
jdk.internal.reflect.DelegatingClassLoader@1b7cc17c
jdk.internal.loader.ClassLoaders$BootClassLoader@17cfff34
TomcatEmbeddedWebappClassLoader
  context: ROOT
  delegate: true
----------> Parent Classloader:
org.springframework.boot.loader.LaunchedURLClassLoader@6576fe71

org.springframework.boot.loader.LaunchedURLClassLoader@6576fe71
jdk.internal.reflect.DelegatingClassLoader@5ae50ce6
jdk.internal.reflect.DelegatingClassLoader@409c54f
jdk.internal.reflect.DelegatingClassLoader@10e31a9a
jdk.internal.reflect.DelegatingClassLoader@25f4878b
jdk.internal.reflect.DelegatingClassLoader@2002fc1d
jdk.internal.reflect.DelegatingClassLoader@5082d622
jdk.internal.reflect.DelegatingClassLoader@5e82df6a
jdk.internal.reflect.DelegatingClassLoader@20f5281c
jdk.internal.reflect.DelegatingClassLoader@3bd94634
jdk.internal.reflect.DelegatingClassLoader@4ddbbdf8
jdk.internal.reflect.DelegatingClassLoader@1d2adfbe
jdk.internal.reflect.DelegatingClassLoader@60dcc9fe
jdk.internal.reflect.DelegatingClassLoader@55183b20
jdk.internal.reflect.DelegatingClassLoader@56673b2c
jdk.internal.loader.ClassLoaders$AppClassLoader@531d72ca
jdk.internal.reflect.DelegatingClassLoader@9353778
jdk.internal.reflect.DelegatingClassLoader@14bee915