能力值:
( LV4,RANK:50 )
|
-
-
26 楼
linkin5epk
我们看这一行[pid 15576] [000000751926c008] exit_group(0 ,显示15576线程是在0x751926c008地址处调用exit_group退出的,通过proc/ ...
他的意思是exit退出这个函数并不在libc.so的地址范围内,说明这个exit的代码很可能是动态申请的,所以才会关注后面的mmap动态申请内存的函数,而这个mmap申请的返回值基址是0x751926c000,正好0x751926c008在这里面,说明exit退出这个函数代码就是在这段动态申请的地址里。
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
linkin5epk
我们看这一行[pid 15576] [000000751926c008] exit_group(0 ,显示15576线程是在0x751926c008地址处调用exit_group退出的,通过proc/ ...
动态释放代码:通过mmap申请内存,把exit_group系统调用的汇编指令写到这段内存中,然后执行。此时如果用strace查看exit_group系统调用的地址就在前面mmap申请内存的空间范围里。
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
jueqingqiai
Log 如何打印的 id 和 ThreadId?
static log(msg: string) { let pid = Process.id let tid = Process.getCurrentThreadId() msg = pid + '-' + tid + ' ' + msg console.log(`${msg}`) } }
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
yyy123
动态释放代码:通过mmap申请内存,把exit_group系统调用的汇编指令写到这段内存中,然后执行。此时如果用strace查看exit_group系统调用的地址就在前面mmap申请内存的空间范围里。
大佬太强啦懂了懂了...我一开始理解成动态释放内存了....现在我的理解是系统调用的汇编代码是动态释放执行的吧...所以安卓系统调用只能通过libc库实现?或者直接执行汇编?exit_group的执行地址不在libc.so中,所以是动态释放的汇编代码来执行?(但是我ida查看libc.so也没有exit_group的导出函数?这是为什么呢?)
最后于 2024-3-8 14:57
被linkin5epk编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
|
能力值:
( LV1,RANK:0 )
|
-
-
31 楼
我是把这个文件删掉
|
能力值:
( LV6,RANK:80 )
|
-
-
32 楼
牛逼,学习了
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
学习了,新的思路
|
能力值:
( LV4,RANK:40 )
|
-
-
34 楼
请教一下: [pid 15576] [000000751926c008] exit_group(0 <unfinished ...> 这行前面还有一个exit(0),怎么忽略了呢?感觉这个exit(0)也很重要啊,exit_group是svc退出吗?strace能够监控svc退出吗?
|
能力值:
( LV1,RANK:0 )
|
-
-
35 楼
用的确实是arm64的包,15.2.5版本, 目前百度手机助手还是没有更新,爱奇艺 百度手机助手 15.2.5版本,ARM64位的 < hook mmap打印一下调用栈 if(parseInt(length, 16) == 28) >
为啥我这里这个判断一直进不去呀?进去之后一直获取不到 前线程的回溯 和符号(函数名、类名),并且程序视乎被暂停了
最后于 2024-3-15 01:36
被mb_xsfdfkko编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
36 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
mb_xsfdfkko
用的确实是arm64的包,15.2.5版本,目前百度手机助手还是没有更新,爱奇艺 百度手机助手 15.2.5版本,ARM64位的< hook mmap ...
确实,我复现的时候也是进不去
|
能力值:
( LV1,RANK:0 )
|
-
-
38 楼
手机怎么装 readelf
|
能力值:
( LV2,RANK:10 )
|
-
-
39 楼
不知道是什么原因,复现失败了,strace中可以观察到同样的mmap 28参数调用,但frida却无法hook到该条28参数的mmap,有哪位大佬能推测下可能是什么原因导致的嘛?
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
????????????????????????????
|
能力值:
( LV2,RANK:10 )
|
-
-
41 楼
大佬,附件的strace如何使用啊,谢谢。
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
牛逼 ,感谢大佬分享,我好好学习学习
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
strace 可以跟踪到svc么大佬
|
能力值:
( LV1,RANK:0 )
|
-
-
44 楼
666
|
能力值:
( LV2,RANK:10 )
|
-
-
45 楼
好像这个方案被公布后,人家修改了检测逻辑,后边的人又要等新的方案了。函数换成了munmap,应该是版本更新了
|
能力值:
( LV8,RANK:120 )
|
-
-
46 楼
linkin5epk
我们看这一行[pid 15576] [000000751926c008] exit_group(0 ,显示15576线程是在0x751926c008地址处调用exit_group退出的,通过proc/ ...
代码不是静态的,是通过解密或者什么方式,动态下发释放到内存中,然后执行,你看一下那块代码就知道了,exit__group不是libc调的 下面那个问题,mmap申请了一块内存,exit_group在申请等得那块内存附近执行,说明是先申请内存,后执行代码,把代码释放到了申请的内存中然后执行的
|
能力值:
( LV1,RANK:0 )
|
-
-
47 楼
strace -e trace=process,memory -i -f -p 25947
|
能力值:
( LV1,RANK:0 )
|
-
-
48 楼
strace -e trace=process,memory -i -f -p 25947 请问这个 pid是从哪来的呢,这个搜索的是什么应用的pid呢?
|
能力值:
( LV5,RANK:73 )
|
-
-
49 楼
学习了,谢谢分享
|
能力值:
( LV2,RANK:10 )
|
-
-
50 楼
楼主 请教下strace这个工具怎么编译不同安卓版本的啊 我看文章都是编译aarch64的
|
|
|