关于WSL(Windows子系统)无法运行32位程序的初步解决办法

为了偷懒,开始使用上了WSL,不得不说这是个很方便的东西,但是,WSL不具备linux的全部功能,这次遇到的一个对我影响比较大的,应该就是它无法运行32位程序。因为做pwn题需要不断调试程序已经本地运行程序,但是当我在本机运行32位elf文件时,却发生了报错
1.png
这就很惨了,然后我查了许多东西,后来确定了一件事,微软的WSL不支持运行32位程序,尽管升级到WSL2可能会有部分解决,但是升级到wsl2会遇到和vmware冲突的问题,两者相比,vmware肯定要留的,所以,乖乖的退回了wsl,继续想办法解决无法运行32为程序的问题。
后来偶然间看淡qemu的应用。看到了曙光
我们可以借助qemu,来构造一个i386的虚拟环境
说干就干首先安装qemu-user-static软件包,添加i386 binfmt,启用i386体系结构,更新软件包列表,并安装一些i386软件包

1.安装qemu和binfmt

sudo apt update
sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'

2.启用i386架构和软件包

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install gcc:i386

3.运行binfmt服务

sudo service binfmt-support start

这个命令每次重新打开wsl后都要输入一遍才行,尝试过设置开机自启,但是我的一直报错,不知道是不是我电脑的问题,其实我输入这个命令的时候,也会报错。可能是我的电脑的问题,后续解决只能慢慢寻找了
2.png
3.png
但是,至少可以运行32位程序了呢,不过gdb还是不能调试,任重而道远。

原文地址:https://blog.donstpast.cn/index.php/archives/85/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值