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

Function loadAllClassCore

utils/FCAnd.ts:260–303  ·  view source on GitHub ↗
(loader: any)

Source from the content-addressed store, hash-verified

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 }
305
306 rpc.exports = {

Callers 1

loadAllClass2Function · 0.85

Calls 3

iMethod · 0.80
wMethod · 0.80
toStringMethod · 0.45

Tested by

no test coverage detected