吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3423|回复: 4
收起左侧

[Android 原创] hooker内存漫游查看对象内部属性数据

[复制链接]
西二旗搬砖仔 发表于 2021-4-27 17:44

最近,有粉丝问我[hooker](https://github.com/CreditTone/hooker)如何获取对象内部属性数据。
![111.png-67.9kB][1]
无论是a、b、c命令扫描出来的对象,还是你hook脚本hook方法对应的所属对象都有办法获取内部属性数据。


关键条件:ObjectId!!!大家一定要搞到你要窥视这个对象的ObjectId。

## a、b、c命令扫描出来的对象获取内部属性
以a命令扫描Activity为例
![222.png-1038.1kB][2]



# hook脚本的hook方法对应的所属对象扫描出来的对象获取内部属性
hook脚本默认不会给你ObjectId,这时候你要手动把对象放入ObjectStore当中。

## hook构造方法
![444.png-589.4kB][3]
上面是hook某个对象的构造方法,我们把new之后的对象放到ObjectStore中。

## hook普通方法
如果这个方法有参数,并且是对象我们也可以将参数放到ObjectStore中。
```js
Java.perform(function() {
    var HookedClass = Java.use('com.xxx.bbb.xxx.GoodsDetailResult$Data');
    var setProductDetailMethod = HookedClass.setProductDetail.overload('com.xxx.bbb.bean.ProductDetail');
    setProductDetailMethod.implementation = function(v0) {
        var executor = this.hashCode();
        var beatText = 'public void com.xxx.bbb.xxx.GoodsDetailResult.setProductDetail(com.xxx.bbb.bean.ProductDetail)';
        var beat = newMethodBeat(beatText, executor);
        setProductDetailMethod.call(this, v0);
        //hook对象的普通方法将参数对象放到ObjectStore中
        storeObjectAndLog(v0);
        
        //这里还是可以将方法本身的对象this放到ObjectStore,不一定得hook在上面的构造方法,活学活用!!!明白?
        storeObjectAndLog(this);
        printBeat(beat);
    };
});
```
各种情况看你怎么用,天下无招胜有招。我不能说只有这两种方式,有N多种。看你是否能领悟到hooker设计的强大之处,活学活用吧!

## 执行hook脚本获取ObjectId
![555.png-832.6kB][4]


# 获取Object内部的属性
上面两个方法,随便你用什么方法。只要获取到ObjectId就ok。
通过ObjectId,获取对象内部属性有两种方式。


# 通过c/v命令扫描
## c命令扫描普通对象
c命令,以最快捷的方式打印对象
![333.png-1267.3kB][5]


## v命令扫描view对象
如果你确定一个对象是View的子类,可以用v命令扫描。v命令将会带出绑定的时间,如点击、滑动、长按、初始化等等
这里我不展示了,大家感兴趣自己是实践!


# 通过操作object_store.js方法动态打印对象

## 直接通过objectId将object序列化为json输出
![666.png-1199.1kB][6]

## 动态取得objectId对应的对象的内部属性
![777.png-598.7kB][7]

![888.png-1264.8kB][8]

# 总结
不吹牛逼,不刷屏,脚踏实地做事情!
https://github.com/CreditTone/hooker

  [1]: http://static.zybuluo.com/1273568669/omt0shiavijdd499y2ctf0yk/111.png
  [2]: http://static.zybuluo.com/1273568669/ebyy3emmo7rmtqxuy4l6gnay/222.png
  [3]: http://static.zybuluo.com/1273568669/pxyyl3sguequjki1tg1oyvcs/444.png
  [4]: http://static.zybuluo.com/1273568669/8u659dpixe5u2sj8801lmhym/555.png
  [5]: http://static.zybuluo.com/1273568669/wzdq2wjqo8tzrfvj9nswe7d1/333.png
  [6]: http://static.zybuluo.com/1273568669/wmyq7847jtoczeexr3tfhegt/666.png
  [7]: http://static.zybuluo.com/1273568669/tr04kqb6vdt69kw0lypa79y8/777.png
  [8]: http://static.zybuluo.com/1273568669/ea1k3r23hqjcyprujjg8gf3f/888.png[/md]

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
wabc666 + 1 + 1 我很赞同!
Jedis + 1 + 1 热心回复!
HuZH + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2021-4-27 18:19
同学markdown格式要点一下菜单栏的“MD”按钮粘进去,然后图片看下这个文章插入https://www.52pojie.cn/misc.php? ... 29&messageid=36
碧海橙空 发表于 2021-4-28 23:18
isver2 发表于 2021-4-29 15:31
QQ78347924 发表于 2021-4-29 19:16
自古大神哪里寻,唯有吾爱里面有
Lion_52 发表于 2021-4-30 09:01
感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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