MCPcopy Create free account
hub / github.com/MJx0/AndKittyInjector / getJavaVM

Method getJavaVM

AndKittyInjector/src/Injector/KittyInjector.cpp:1171–1204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1169
1170
1171uintptr_t KittyInjector::getJavaVM(inject_elf_info_t &injected)
1172{
1173 if (!injected.is_valid())
1174 {
1175 KITTY_LOGE("getJavaVM: Invalid info.");
1176 return false;
1177 }
1178
1179 auto libart = _kMgr->elfScanner.findElf("libart.so", EScanElfType::Native, EScanElfFilter::System);
1180 uintptr_t pJNI_GetCreatedJavaVMs = libart.findSymbol("JNI_GetCreatedJavaVMs");
1181 if (!pJNI_GetCreatedJavaVMs)
1182 {
1183 KITTY_LOGE("getJavaVM: Couldn't find function \"JNI_GetCreatedJavaVMs\".");
1184 return false;
1185 }
1186
1187 jint status = _kMgr->trace.callFunction(pJNI_GetCreatedJavaVMs, _rbuffer, 1, _rbuffer + sizeof(uintptr_t))
1188 .result.val;
1189
1190 uintptr_t pJvm = 0;
1191 jsize nJvms = 0;
1192 _kMgr->readMem(_rbuffer, &pJvm, sizeof(pJvm));
1193 _kMgr->readMem(_rbuffer + sizeof(uintptr_t), &nJvms, sizeof(nJvms));
1194
1195 if (status != 0 || !pJvm || nJvms != 1)
1196 {
1197 KITTY_LOGE("getJavaVM: %p JNI_GetCreatedJavaVMs Failed to get JavaVM err(%d).",
1198 (void *)pJNI_GetCreatedJavaVMs,
1199 status);
1200 return 0;
1201 }
1202
1203 return pJvm;
1204}
1205
1206bool KittyInjector::callEntryPoint(inject_elf_info_t &injected)
1207{

Callers

nothing calls this directly

Calls 1

is_validMethod · 0.80

Tested by

no test coverage detected