(loader: any)
| 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 = { |
no test coverage detected