首页
社区
课程
招聘
[求助]使用android-inline-hook无效的问题
发表于: 2018-12-18 21:31 7034

[求助]使用android-inline-hook无效的问题

2018-12-18 21:31
7034
一个APK加载了libgame.so
用 ele7enxxh 的 android-inline-hook 实现hook他的一个导出函数。发现so指令确实被更改了。但是就是不执行到那里去。
我甚至将这一页内存清零 ,程序依然可以运行。同时我还hook了libc.so的connect,HOOK connect 函数是有效的,说明应该不是指令缓存没有刷新的问题。
然后又测试 直接修改libgame.so的磁盘文件函数头部,再push回目录。运行起来又崩了,说明这个函数确实被调用了。



[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 1372
活跃值: (5548)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
b28K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6W2L8r3f1%4k6h3&6^5P5r3S2Q4x3V1k6m8L8X3c8J5L8$3W2V1i4K6u0V1d9h3&6D9K9h3&6W2i4K6u0V1d9r3!0G2K9#2)9J5c8X3W2K6M7%4g2W2M7#2)9J5c8U0p5%4

好像有类似的问题 @ele7enxxh 我的也是android7.1.2难道是系统机制的问题。
指令流直接走另一个文件或者内存过了?
2018-12-18 21:38
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
3
cat /proc/pid/maps看看是不是呗map了多次
2018-12-18 23:15
0
雪    币: 1372
活跃值: (5548)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
4
malokch cat /proc/pid/maps看看是不是呗map了多次
谢谢指点,经过仔细检查,确实是被map了多次。因为刚开始没有加载game so 。我使用了dlopen加载game.so,修改的是我的so,打印maps也是正常的。但是后来游戏又调用了dlopen此时返回的是另一份game.so。
有两个办法解决,第一是 hook dlopen (我测试失败,android 7.1.2 hook dlopen总是崩溃,暂未找到原因)
第二种是 在其他地方hook等待游戏加载完game.so以后 在执行我的hook。这次是成功的!!

其实我清0一页内存游戏都没有崩的时候已经想到是不是代码走别的地方过了。

再次感谢~~
2018-12-19 15:33
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我在Android7.1.2上同样的问题,但是我hook的时候所有so库都加载好了,cat /proc/pid/maps看到了已经加载的so,我再使用ele7enxxh的Android-Inline-Hook,同样是map了多次
使用5c9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1L8r3!0Y4i4K6u0W2j5%4y4V1L8W2)9J5k6h3&6W2N6q4)9J5c8X3A6A6L8Y4A6Z5N6h3!0B7N6h3&6Q4x3V1k6S2M7Y4c8A6j5$3I4W2i4K6u0r3k6r3g2@1j5h3W2D9M7#2)9J5c8U0V1&6x3o6l9I4x3o6g2Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0c8Q4b7U0S2Q4b7f1q4Q4c8e0c8Q4b7V1g2Q4z5p5u0Q4c8e0g2Q4b7f1c8Q4z5e0m8Q4c8e0W2Q4z5o6N6Q4z5p5y4Q4c8e0W2Q4z5f1c8Q4b7e0u0Z5L8$3!0C8i4@1f1$3i4K6V1$3i4@1t1&6i4@1f1$3i4@1t1K6i4K6V1#2i4@1f1@1i4@1t1&6i4K6W2r3i4@1f1$3i4K6V1^5i4@1q4r3i4@1f1#2i4K6V1H3i4K6S2o6i4@1f1$3i4@1p5H3i4@1t1%4i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1&6i4K6V1%4i4@1q4q4i4@1f1&6i4@1p5J5i4K6V1^5i4@1g2r3i4@1u0o6i4K6S2o6K9r3!0G2K9#2)9J5y4X3&6T1M7%4m8Q4x3@1u0G2M7r3g2F1i4@1f1#2i4K6R3%4i4@1u0p5i4@1f1$3i4K6V1#2i4@1t1H3i4@1f1$3i4@1t1J5i4@1p5I4i4@1f1$3i4K6W2o6i4K6R3&6i4@1f1&6i4K6V1%4i4@1q4q4i4@1f1&6i4@1p5J5i4K6V1^5i4@1f1K6i4K6R3H3i4K6R3J5
正常来说,这应该是你的第二种情况了
2019-6-4 16:14
0
雪    币: 1372
活跃值: (5548)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
6
guoqiangck 我在Android7.1.2上同样的问题,但是我hook的时候所有so库都加载好了,cat /proc/pid/maps看到了已经加载的so,我再使用ele7enxxh的Android-Inline- ...
我又遇到这个问题了。你解决没有?就是说我的hook 代码如果先dlopen了的话。后面加载的so就是另外的一个map。必须先等so加载了。我再HOOK才可以。有点烦脑
2019-12-24 18:01
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
IamHuskar 我又遇到这个问题了。你解决没有?就是说我的hook 代码如果先dlopen了的话。后面加载的so就是另外的一个map。必须先等so加载了。我再HOOK才可以。有点烦脑
Android7以后不能用dlopen了,那样hook的是你自己打开的so,我是通过主动查找已加载的so里面需要hook的函数地址,再使用inline hook就ok了
2019-12-24 18:07
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
你可以先等待检查需要hook的so是否加载,加载了再进行hook
2019-12-24 18:09
0
雪    币: 1372
活跃值: (5548)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
9
guoqiangck 你可以先等待检查需要hook的so是否加载,加载了再进行hook
其实就是namespace的问题。没想到好办法解决。检查需要Hook的so是否加载的话。最好还是直接在dlopen里面处理。
2019-12-24 18:26
0
雪    币: 1372
活跃值: (5548)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
10
guoqiangck 我在Android7.1.2上同样的问题,但是我hook的时候所有so库都加载好了,cat /proc/pid/maps看到了已经加载的so,我再使用ele7enxxh的Android-Inline- ...
b96K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3f1#2x3Y4m8G2K9X3W2W2i4K6u0W2j5$3&6Q4x3V1k6@1K9s2u0W2j5h3c8Q4x3X3b7&6y4o6R3&6y4o6u0Q4x3X3b7I4i4K6u0V1x3g2)9J5k6h3S2@1L8h3H3`.
2019-12-24 18:32
0
游客
登录 | 注册 方可回帖
返回