首页
社区
课程
招聘
[求助]想要注入的进程中没有导入dlopen所在的库怎么办?
发表于: 2017-9-21 18:52 5774

[求助]想要注入的进程中没有导入dlopen所在的库怎么办?

2017-9-21 18:52
5774
    我想注入一个进程,但是发现dlopen,dlsym函数所在的库在运行时并没有导入进来,这时候怎么办呢?自己写dlopen的代码放进去吗?或者有什么办法把那个库导入到进程里呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
对于动态连接的程序而言,dlopen系列函数是由linker实现的,而不是在某个动态库里,libdl.so之类的只是供构建阶段用的。只要注入一段shellcode到目标进程,然后在内存找到linker里的dlopen就可以了。
2017-9-21 20:35
0
雪    币: 44
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
malokch 对于动态连接的程序而言,dlopen系列函数是由linker实现的,而不是在某个动态库里,libdl.so之类的只是供构建阶段用的。只要注入一段shellcode到目标进程,然后在内存找到linker ...
我其实是根据android的arm注入代码移植到了mips上,mips这个是在openwrt系统下,有点奇葩,有个ld进程进行动态启动符号重定向,然后代码里面调用dlopen时会另外加载一个libdl**.so库,在这种情况下注入是能够成功的,如果代码里面不调用dlopen系列函数,那个so就不加载,然后就找不到dlopen了。我通过proc/pid/maps确认了一下,dlopen的汇编是在libdl**.so库加载范围内的。这种情况咋办?
2017-9-22 09:28
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
4
shuicg 我其实是根据android的arm注入代码移植到了mips上,mips这个是在openwrt系统下,有点奇葩,有个ld进程进行动态启动符号重定向,然后代码里面调用dlopen时会另外加载一个libdl ...
openwrt的话应该是uclibc,  libdl.so的dlopen会调用ld-uClibc.so的dl_load_shared_library来实现加载so。如果是glibc的话,dlopen应该是调用ld-2.19.so的dl_find_dso_for_object。
2017-9-22 11:36
0
雪    币: 44
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
非常感谢malokch  ,最后还是没研究出来,按照uclibc的dl_load_shared_library写,这个有点不知所措了
2017-10-11 12:54
0
游客
登录 | 注册 方可回帖
返回
//