能力值:
( LV1,RANK:0 )
|
-
-
126 楼
66666
|
能力值:
( LV1,RANK:0 )
|
-
-
127 楼
666
|
能力值:
( LV7,RANK:102 )
|
-
-
128 楼
必须的
|
能力值:
( LV1,RANK:0 )
|
-
-
129 楼
66666666666
|
能力值:
( LV1,RANK:0 )
|
-
-
130 楼
666
|
能力值:
( LV2,RANK:15 )
|
-
-
131 楼
tql
|
能力值:
( LV2,RANK:10 )
|
-
-
132 楼
66666666666666
|
能力值:
( LV1,RANK:0 )
|
-
-
133 楼
天水姜伯约
hook so入口点可以用一套模板代码
get_so_name = (const char *(*)(void *soinfo))
(linker64_base ...
大牛,你的代码后面有一部分缺失了
|
能力值:
( LV1,RANK:0 )
|
-
-
134 楼
看看
|
能力值:
( LV2,RANK:10 )
|
-
-
135 楼
大佬非你莫属
|
能力值:
( LV1,RANK:0 )
|
-
-
136 楼
666
|
能力值:
( LV9,RANK:235 )
|
-
-
137 楼
Bileton
大牛,你的代码后面有一部分缺失了
function hook_linker_constructors() {
// 1. 获取 linker64 的基地址或直接查找符号
// 在 Android 10+ 中,linker 位于 /apex/com.android.runtime/bin/linker64
const linkerName = "linker64";
// 2. 查找符号地址 (对应 C++ 代码中的 get_sym_addr)
// __dl__ZN6soinfo17call_constructorsEv -> soinfo::call_constructors()
// __dl__ZNK6soinfo10get_sonameEv -> soinfo::get_soname()
const call_constructors_addr = Module.findExportByName(linkerName, "__dl__ZN6soinfo17call_constructorsEv");
const get_soname_addr = Module.findExportByName(linkerName, "__dl__ZNK6soinfo10get_sonameEv");
if (!call_constructors_addr || !get_soname_addr) {
console.log("[-] 找不到符号,请确认 Android 版本或符号名是否正确");
return;
}
// 3. 定义 get_soname 函数拨号 (NativeFunction)
const get_so_name = new NativeFunction(get_soname_addr, 'pointer', ['pointer']);
console.log("[+] Found call_constructors at: " + call_constructors_addr);
console.log("[+] Found get_soname at: " + get_soname_addr);
// 4. 使用 Interceptor.attach 替代 DobbyInstrument
Interceptor.attach(call_constructors_addr, {
onEnter: function (args) {
// 在 C++ 中,成员函数的第一个参数 (x0) 是 'this' 指针,即 soinfo 实例
const soinfo_ptr = args[0];
// 调用 get_soname 获取库名
const soname_ptr = get_so_name(soinfo_ptr);
if (!soname_ptr.isNull()) {
const soname = soname_ptr.readCString();
// 5. 逻辑判断:匹配 libmetasec_ml.so
if (soname.indexOf("libmetasec_ml.so") !== -1) {
console.log("[*] Detected loading: " + soname);
// 此时 .init_array 尚未执行,你可以在这里进行进一步的 Hook
// 例如:hook 该 so 内部的函数
}
}
}
});
}
// 执行 Hook
hook_linker_constructors();那个是dobby的代码,用ai翻译成了frida js,可以看一下
|
能力值:
( LV1,RANK:0 )
|
-
-
138 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
139 楼
6666
|
能力值:
( LV1,RANK:0 )
|
-
-
140 楼
学习学习
|
能力值:
( LV2,RANK:10 )
|
-
-
141 楼
6666
|
能力值:
( LV1,RANK:0 )
|
-
-
142 楼
6666
|
能力值:
( LV1,RANK:0 )
|
-
-
143 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
144 楼
666
|
能力值:
( LV2,RANK:10 )
|
-
-
145 楼
666
|
能力值:
( LV9,RANK:190 )
|
-
-
146 楼
 学习一下
|
能力值:
( LV2,RANK:10 )
|
-
-
147 楼
666666
|
能力值:
( LV2,RANK:10 )
|
-
-
148 楼
111
|
能力值:
( LV1,RANK:0 )
|
-
-
149 楼
学习一下
|
能力值:
( LV1,RANK:0 )
|
-
-
150 楼
如果侦测脚本出来的so这是这样的,该怎么找对应位置呢?[09:37:33 PM] Thread:19209 Loading => libSignatureKiller.so 没有绝对路径
|
|
|