简单的修改逻辑,比如把 a==0 改成 a!=0 这种是可以的,但是添加复杂的逻辑应该是怎么操作
1
wnpllrzodiac 3 天前 via Android
arm 汇编大神啊。前提是 so 没加固
|
2
LLaMA2 3 天前
自己写自己的 so 库 dlopen 加载已有的 so 库,
然后自己看看能不能在自己的 so 库中 hook 目标 |
3
Donaldo 3 天前
hook ,改 so 很难。
|
4
seers 3 天前 via Android
字节不是有个 hook 框架,可以看看
|
5
653513754 3 天前
inlinehook
|
6
NouveauNom OP |
7
Donaldo 3 天前
@NouveauNom #6 真没动手干过这种大规模的修补,直觉上来看,或许可以靠把你所要执行的逻辑写好汇编 patch 到 so 的某个位置(这个位置不能覆盖掉原本的程序?),然后再从跳转上入手。
|
8
nightwitch 3 天前
@LLaMA2 安卓现在 dlopen 有白名单,只允许 dlopen ndk 里的那些 so (当然这个机制也有办法可以绕过去,绕过去的话有上架 Google Play 的风险)
|
9
seers 3 天前 via Android 1
@NouveauNom 在符号自己写个 bl 吧,然后找个空段填逻辑
|
10
653513754 3 天前
静态 patch
|
11
billccn 3 天前 1
把整个 so 当成外部库写进新逻辑里,然后编译的时候作为静态引用,就能合并进新的 so 里面了。稍微手写一个工具确保新项目引用一下原 so 里面每一个 symbol.
|