好友
阅读权限10
听众
最后登录1970-1-1
|
50吾爱币
本帖最后由 itce7l 于 2022-10-13 19:04 编辑
编译环境,Android 8.1 ARM架构的模拟器
1.使用Ptrace注入安卓进程时可以从libc.so中获取mmap函数的地址,但是在获取dlopen、dlsym、dlclose函数地址时,遇到一些问题,如下图:
图1
观察打印出的地址值,dlopen的地址明显是从libdl.so中的而不是从linker(/system/bin/linker)中的,
代码中用的是linker,导致在后续调用dlopen、dlsym、dlclose这些函数时获取不到返回值(实际上返回的是mmap函数调用后返回的地址,0xaa185000=mmap_base)
2.如果注入成功,在dlopen执行后,在mmap_base = 0xaa185000这个位置后边是不是应该会有注入的库的路径,比如/data/local/tmp/xxx.so,现在没有是不是因为注入失败了。
aa17c000-aa17d000 rw-p 00061000 fe:01 1195 /system/lib/android.hardware.media.omx@1.0.so
aa185000-aa195000 rwxp 00000000 00:00 0
aa195000-aa1b0000 r--s 00000000 fe:01 2071 /system/usr/hyphen-data/hyph-de-ch-1901.hyb
aa1b0000-aa1b9000 r-xp 00000000 fe:01 1398 /system/lib/libmediametrics.so
3.本人目前还是学生,望各位大佬不吝赐教,必有答谢,QQ:1994343839 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|