Closed zqhGeek closed 2 years ago
你应该是设置了 useLegacyPackaging false
(旧版本 gradle 是 extractNativeLibs
),这种情况下 so 会以未压缩的形式放到 apk 中,apk 会变大,安装后不需要把 apk 中的 so 解压出来,因此安装后占用体积会变小。
这种情况下,maps 里也是有的,只是只能看到 xxx.apk,看不到 so 名。用 dl_iterate_phdr
可以获取到 so 文件名,就是你截图中的命名格式。
bytehook 是支持 hook 这种形式加载的 so 库的。hook 失败和这个问题应该没有关系。
hook 失败,你可以贴一下执行 hook 的逻辑,以及 hook 函数的返回值,还可以通过 bytehook_hooked_t hooked
设置 callback,在 callback 里可以获取 hook 失败的 status_code。
感谢大佬的帮助,因为我习惯了看那个log中的 hook ok的日志,看到没打印就认为是不成功,没有用回调去看,实际看是hook成功了,我先关闭,后面我补上回调看看,结果
我使用的是项目的demo,没有修改hook部分,仅修改hookee_test,我发现不管是否有压缩形式,hook的回调都是随机性,不是每次成功hook都回调,回调也是demo中的逻辑没有改动,使用的是single模式,虽然结果都能hook到,但是每次的日志输出都不固定
@zqhGeek adb logcat -b main -G 6M
@caikelun 我已经在开发者模式调到了16M,应该不是这个影响?
bytehook Version
1.0.5
Android OS Version
11
Android ABIs
arm64-v8a
Device Manufacturers and Models
oppo
Describe the Bug
我使用bhook去hook自己加载的另一个so,发现没有hook到,map中没找到这个so,pc命中的是base.apk,打印bhook中的bh_elf_manager_iterate_cb,没看到这个so,这个是Android 11的特性?