MCPcopy Create free account
hub / github.com/deathmemory/FridaContainer / loadAllClass2

Function loadAllClass2

utils/FCAnd.ts:247–304  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

245 }
246
247 function loadAllClass2() {
248 let tag = 'loadAllClass2';
249 Java.perform(function () {
250 DMLog.i(tag, "---------------Java.enumerateClassLoaders");
251 Java.enumerateClassLoadersSync().forEach(function (loader) {
252 try {
253 loadAllClassCore(loader);
254 } catch (e) {
255 DMLog.e(tag, "Java.enumerateClassLoaders error:" + e);
256 }
257 });
258 });
259
260 function loadAllClassCore(loader: any) {
261 let tag = 'loadAllClassCore';
262 var clstr = loader.$className.toString();
263 DMLog.i(tag, 'classloader: ' + clstr);
264 var class_BaseDexClassLoader = Java.use("dalvik.system.BaseDexClassLoader");
265 var pathcl = Java.cast(loader, class_BaseDexClassLoader);
266 DMLog.i(tag, ".pathList: " + pathcl.pathList.value);
267 var class_DexPathList = Java.use("dalvik.system.DexPathList");
268 var dexPathList = Java.cast(pathcl.pathList.value, class_DexPathList);
269 DMLog.i(tag, ".dexElements: " + dexPathList.dexElements.value.length);
270
271 var class_DexFile = Java.use("dalvik.system.DexFile");
272 var class_DexPathList_Element = Java.use("dalvik.system.DexPathList$Element");
273 for (var i = 0; i < dexPathList.dexElements.value.length; i++) {
274 var dexPathList_Element = Java.cast(dexPathList.dexElements.value[i], class_DexPathList_Element);
275 // console.log(".dexFile:", dexPathList_Element.dexFile.value);
276 if (dexPathList_Element.dexFile.value) {
277 //可能为空
278 var dexFile = Java.cast(dexPathList_Element.dexFile.value, class_DexFile);
279 var mcookie = dexFile.mCookie.value;
280 // console.log(".mCookie", dexFile.mCookie.value);
281 if (dexFile.mInternalCookie.value) {
282 // console.log(".mInternalCookie", dexFile.mInternalCookie.value);
283 mcookie = dexFile.mInternalCookie.value;
284 }
285 var classNameArr = dexPathList_Element.dexFile.value.getClassNameList(mcookie);
286 DMLog.i(tag, "DexFile.getClassNameList.length:" + classNameArr.length);
287 DMLog.i(tag, " |------------Enumerate ClassName Start");
288 for (var i = 0; i < classNameArr.length; i++) {
289 // DMLog.w(tag, " " + classNameArr[i]);
290 try {
291 loader.loadClass(classNameArr[i]);
292 } catch (e) {
293 DMLog.w(tag, "loadClass warning:" + e);
294 }
295 // if (classNameArr[i].indexOf(TestCalss) > -1) {
296 // loadClassAndInvoke(cl, classNameArr[i]);
297 // }
298 }
299 DMLog.i(tag, " |------------Enumerate ClassName End");
300 }
301 }
302
303 }
304 }

Callers 1

dump_dexFunction · 0.85

Calls 3

loadAllClassCoreFunction · 0.85
iMethod · 0.80
eMethod · 0.80

Tested by

no test coverage detected