testFrida.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. function frida_Java() {
  2. Java.perform(function () {
  3. //作为判断用
  4. if (Java.available) {
  5. //注入的逻辑代码
  6. // console.log("-------------开始筛选类名----------------");
  7. // Java.enumerateLoadedClasses({
  8. // onMatch: function (className) {
  9. // if (className.includes('beizi') && className.includes('fusion.b')) {
  10. // // console.log('类方法=>',className,'\t');
  11. // if(className == 'com.beizi.fusion.b.a$l'){
  12. // console.log('类名=>', className);
  13. // const hook = Java.use(className)
  14. // const methos = hook.class.getDeclaredMethods()
  15. // hook.$dispose;
  16. // methos.forEach(e => {
  17. // console.log('类方法=>',e,'\t');
  18. // });
  19. // }
  20. // }
  21. // },
  22. // onComplete: function () {
  23. // console.log('------------------结束筛选类名---------------');
  24. // }
  25. // })
  26. // base64 hook
  27. //打印堆栈
  28. // function printStacks() {
  29. // console.log(
  30. // Java.use("android.util.Log")
  31. // .getStackTraceString(
  32. // Java.use("java.lang.Throwable").$new()
  33. // )
  34. // );
  35. // }
  36. // //base64
  37. // var base64 = Java.use("android.util.Base64");
  38. // base64.encodeToString.overload('[B', 'int').implementation = function (a, b) {
  39. // console.log("base64.encodeToString: ", JSON.stringify(a),"\t");
  40. // var result = this.encodeToString(a, b);
  41. // console.log("base64.encodeToString result: ", result,"\t")
  42. // printStacks();
  43. // return result;
  44. // }
  45. // http hook
  46. const OkHttpClient = Java.use("okhttp3.OkHttpClient");
  47. OkHttpClient.newCall.implementation = function (request) {
  48. const result = this.newCall(request);
  49. console.log(request.toString(),'\t');
  50. return result
  51. };
  52. } else {
  53. //未能正常加载JAVA VM
  54. console.log("error");
  55. }
  56. });
  57. }
  58. setImmediate(frida_Java, 0);