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