资源共享吧|易语言论坛|逆向破解教程|辅助开发教程|网络安全教程|www.zygx8.com|我的开发技术随记

 找回密码
 注册成为正式会员
查看: 996|回复: 1

[安卓逆向] frida的问题请教下小肩膀老师

[复制链接]

5

主题

297

帖子

0

精华

终身高级VIP会员

Rank: 7Rank: 7Rank: 7

资源币
104
积分
300
贡献
0
在线时间
145 小时
注册时间
2019-8-18
最后登录
2024-5-7

终身VIP会员

发表于 2020-3-24 22:38:46 | 显示全部楼层 |阅读模式
1资源币
本帖最后由 奥数大师 于 2020-3-24 22:39 编辑

看完frida的第11,12课,尝试写了下枚举所有类然后hook类的所有方法,结果发现报错

1.png
运行,前面的打印都没问题,后面无论点APP的哪个按钮都会报下面红色的错误
2.png
这是代码
  1. function hookTmp() {
  2.     Java.perform(function () {
  3.         var classes = Java.enumerateLoadedClassesSync();
  4.         for (var i = 0; i < classes.length; i++) {
  5.             if (classes[i].indexOf("com.xiaojianbang.app") != -1) {
  6.                 var tmpClass = Java.use(classes[i]);
  7.                 var methods = tmpClass.class.getDeclaredMethods();
  8.                 for (var j = 0; j < methods.length; j++) {
  9.                     var tmpMethodName = methods[j].getName();
  10.                     console.log(classes[i], tmpMethodName);
  11.                     //到这里打印都是没问题的

  12.                     for (var k = 0; k < tmpClass[tmpMethodName].overloads.length; k++) {

  13.                         tmpClass[tmpMethodName].overloads[k].implementation = function () {
  14.                             for (var p = 0; p < arguments.length; p++) {
  15.                                 //console.log(p,arguments[p]);
  16.                             }
  17.                             return this[tmpMethodName].apply(this, arguments);//应该是这句return报错了
  18.                         }

  19.                     }



  20.                 }

  21.             }



  22.         }



  23.     });


  24. }
复制代码


请教下这是哪里有什么问题吗



最佳答案

查看完整内容

代码改了下 变量被覆盖了 所有undefined
回复

使用道具 举报

1

主题

62

帖子

0

精华

资源共享吧金牌老师

Rank: 6Rank: 6

资源币
54
积分
64
贡献
0
在线时间
9 小时
注册时间
2020-2-28
最后登录
2022-4-26

论坛管理员超级版主终身VIP会员资源共享吧男神终身成就原创先锋精华会员

发表于 2020-3-24 22:38:47 | 显示全部楼层
  1.     function hookAll(tmpClass, tmpMethodName){
  2.         for (var k = 0; k < tmpClass[tmpMethodName].overloads.length; k++) {
  3.             tmpClass[tmpMethodName].overloads[k].implementation = function () {
  4.                 for (var p = 0; p < arguments.length; p++) {}
  5.                 console.log(tmpMethodName);
  6.                 console.log(this);
  7.                 return this[tmpMethodName].apply(this, arguments);
  8.             }
  9.         }
  10.     }
  11.     Java.perform(function () {
  12.         var classes = Java.enumerateLoadedClassesSync();
  13.         for (var i = 0; i < classes.length; i++) {
  14.             if (classes[i].indexOf("com.xiaojianbang.app") != -1) {
  15.                 var tmpClass = Java.use(classes[i]);
  16.                 var methods = tmpClass.class.getDeclaredMethods();
  17.                 for (var j = 0; j < methods.length; j++) {
  18.                     var tmpMethodName = methods[j].getName();
  19.                     hookAll(tmpClass, tmpMethodName);
  20.                 }
  21.             }
  22.         }
  23.     });
复制代码
  代码改了下 变量被覆盖了 所有undefined
回复

使用道具 举报

 点击右侧快捷回复  

本版积分规则

小黑屋|资源共享吧 ( 琼ICP备2021005790号-1 )

GMT+8, 2024-5-19 21:22 , Processed in 0.047013 second(s), 14 queries , MemCached On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表