首页
社区
课程
招聘
[求助]qemu 用户模式下如何执行动态链接软件?
发表于: 2018-10-16 10:46 10722

[求助]qemu 用户模式下如何执行动态链接软件?

2018-10-16 10:46
10722
看 《揭秘家用路由器0day……》书(p65),用qemu User Mode模式下执行依赖动态库的软件时,需要将qemu-mipsel复制到当前文件夹下,之后执行chroot . ./qemu-mipsel XXX就可以了,我测试先将qemu-mipsel复制到当前文件夹,之后使用命令chroot . ./qemu-mipsel (后面不带XXX程序名),报错 chroot: failed to run command ‘./qemu-mipsel’: No such file or directory 。加上XXX程序名时,也报同样错。但在当前路径下执行 ./qemu-mipsel 能执行成功。./qemu-mipsel XXX(加上XXX程序名),报 /lib/ld-uClibc.so.0: No such file or directory,应该是XXX程序依赖的/lib/ld-uClibc.so.0库的相对路径又不对了。

感觉书上写的不太对,有人遇到过这问题吗,怎么解决?系统是 ubuntu 16.04 x64

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
要先解压路由器的rootfs到某个文件夹,再 chroot到这个文件夹。必要的情况下还要挂载 /sys /proc /dev
2018-10-16 12:22
0
雪    币: 1392
活跃值: (5137)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
3
./qemu-mipsel xxxx -L/your/library/path
2018-10-16 13:02
0
雪    币: 4005
活跃值: (2183)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
可以用qemu-mipsel-static替代
2018-10-16 13:51
0
雪    币: 216
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
Umiade 可以用qemu-mipsel-static替代
用这个确实可以 
chroot . ./qemu-mipsel-static XXX ,谢谢了~
请问带 static 与 不带 static 的有什么区别?
最后于 2018-10-16 16:22 被potop编辑 ,原因:
2018-10-16 16:20
0
雪    币: 216
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢~
我用binwalk解包后进到根文件夹下,用 ./qemu-mipsel ./bin/busybox -L ./lib/,还是报错: /lib/ld-uClibc.so.0: No such file or directory
2018-10-16 16:32
0
雪    币: 4005
活跃值: (2183)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
potop Umiade 可以用qemu-mipsel-static替代 用这个确实可以 chroot . . ...
其实是qemu-mipsel的库没找到,而不是XXX的库,所以用静态的版本就可以了;
./qemu-mipsel xxxx -L/your/library/path  /your/library/path指的是qemu的库  
2018-10-17 10:16
0
雪    币: 216
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
Umiade 其实是qemu-mipsel的库没找到,而不是XXX的库,所以用静态的版本就可以了; ./qemu-mipsel xxxx -L/your/library/path /your/library/p ...
谢谢了~
2018-10-17 14:41
0
雪    币: 11
活跃值: (12)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
9
static 与 非static的区别: 如果使用qemu-mipsel(非static),在运行该命令时,qemu-mipsel命令本身也有其依赖库,因而也需要去寻找。由于使用了chroot命令,将当前路径设置为"根目录",那么找qemu-mipsel的依赖库就会在当前路径下寻找,正常情况下肯定找不到。一种解决方式是将qemu-mipsel的依赖库全部复制到当前路径下(注意路径要正确);另一种方式就是使用qemu-mipsel-static, 由于是静态编译的,其依赖库已经包含在这个可执行文件中了。
2018-10-19 09:58
0
雪    币: 216
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
明白了,谢谢
2018-10-19 10:00
0
雪    币: 8
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢~
2018-10-20 11:38
0
游客
登录 | 注册 方可回帖
返回
//