HookImpl.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import {logHHex} from "./logger";
  2. import {SoName} from "./config";
  3. export let HookImpl = {
  4. start: function () {
  5. let module = Process.findModuleByName(SoName);
  6. // Interceptor.attach(module.base.add(0x6A65EC), {
  7. // onEnter: function (args) {
  8. // var pointer = args[0];
  9. //
  10. // pointer.add(0x18).writeU32(100);
  11. // //101
  12. // console.log("pointer " + pointer)
  13. // logHHex(pointer)
  14. // this.ptr =pointer;
  15. // },
  16. // onLeave: function (ret) {
  17. // console.log("level");
  18. // logHHex(this.ptr)
  19. // return ret;
  20. // }
  21. // //32
  22. // })
  23. setTimeout(function (){
  24. let globalHead = module.base.add(0x9AD338).readPointer();
  25. let metadataReg = module.base.add(0x9AD308).readPointer();
  26. let codeReg = module.base.add(0x9AD300).readPointer();
  27. let injectso = Module.load("/data/data/com.DefaultCompany.Demo1/files/libil2cppdumper.so");
  28. let nativePointer1 = injectso.findExportByName("_ZN12Il2CppDumper5startEPvS0_S0_S0_");
  29. console.log("my so inject addr "+nativePointer1)
  30. let startFun =
  31. new NativeFunction(nativePointer1,"void",['pointer','pointer','pointer','pointer']);
  32. let il2cpp = Process.findModuleByName(SoName);
  33. console.log("base "+il2cpp.base)
  34. startFun(il2cpp.base,globalHead,metadataReg,codeReg);
  35. },2000);
  36. }
  37. }