为了偷懒,开始使用上了WSL,不得不说这是个很方便的东西,但是,WSL不具备linux的全部功能,这次遇到的一个对我影响比较大的,应该就是它无法运行32位程序。因为做pwn题需要不断调试程序已经本地运行程序,但是当我在本机运行32位elf文件时,却发生了报错

这就很惨了,然后我查了许多东西,后来确定了一件事,微软的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后都要输入一遍才行,尝试过设置开机自启,但是我的一直报错,不知道是不是我电脑的问题,其实我输入这个命令的时候,也会报错。可能是我的电脑的问题,后续解决只能慢慢寻找了


但是,至少可以运行32位程序了呢,不过gdb还是不能调试,任重而道远。

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

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

  1. win10 WSL运行32位程序

    win10 WSL运行32位程序除了要安装32位兼容库还需要一些额外的操作. WSL下只能运行32位程序,而不能调试!!!需要的话还是换虚拟机吧 1. 首先安装qemu and binfmt sudo ...

  2. 64位系统上运行32位程序的内存限制

    64位系统上运行32位程序能否申请到8G内存? 收藏到手机    转发   评论 2010-01-20 10:56 申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来 ...

  3. WindowServer2003中IIS6.0允许运行32位程序

    IIS6上的做法: 1.命令行键入: cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Ena ...

  4. ubuntu 12.04 LTS 64位兼容运行32位程序

    安装完Goagent,运行的时候出现了问题,在网络上翻看一些关于ubuntu的文档时,突然记起自己安装的是64位版,而goagent应该是32位的,于是通过sudo apt-get install i ...

  5. 如何在ubuntu14.04(64位)编译运行32位程序

    来源:http://andycoder.me/fix-32bug-under-ubuntu1404/ 缘起 我之前是ubuntu12.04(32bit),在一次手贱的apt-getremove之后呵呵 ...

  6. centos 6.x 64位 运行32位程序

    缘由:使用luajit的程序编译为32位,在64位系统上执行 安装如下: 基础依赖     yum install glibc.i686 可能的libstdc++依赖     yum install ...

  7. Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法

    chrome用户在安装了一些第三方的chrome插件后,每次打开浏览器的时候都会出现"请停用以开发者模式运行的扩展程序"的提示,只有每次点击取消之后才能正常使用扩展.如下图所示 每 ...

  8. Windows计算机管理打不开提示程序未关联解决办法

    在百度上搜的好多办法都试了,只有这个一次解决,步骤也非常简单: (我的电脑是win7 64位) 新建记事本加入下面内容,将文件类型改为.reg并执行 Windows Registry Editor V ...

  9. 在64位操作系统上运行32位的程序

    运行 32 位程序 WOW64 子系统使 32 位程序能够在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的运行而不用修改.WOW64 子系统 ...

最新文章

  1. 《机器学习实战》chapter05 Logistic回归
  2. java catch getm_Java------异常处理机制
  3. java日志模块_Java源码初探_logging日志模块实现
  4. 九度 1479:移位和旋转
  5. php mysql修复_MySQL数据表损坏的巧妙修复
  6. 你应当如何学习C++(以及编程)(rev#1)
  7. 大连英语培训百家外语雅思考试词汇量要求与记忆方法是什么
  8. 初学者怎么快速学习3D建模?零基础必备建模知识,你都明白吗?
  9. 程序员转正述职报告_公司程序员试用期转正工作总结
  10. 注意BeanPostProcessor启动时对依赖Bean的“误伤”陷阱(is not eligible for getting processed by all...)
  11. 浏览器旧版本下载地址汇总——持续更新
  12. HR不得不知的Excel技能——模板篇
  13. 阿里巴巴《Linux命令行与shell脚本编程大全》高清版 PDF 开放下载
  14. google 学术使用技巧
  15. 获取页面高度 height scroll
  16. 银行卡开户及交易项目--Oracle
  17. 疯狂Java讲义PDF
  18. keyProperty、useGeneratedKeys和keyColumn
  19. 我的离职访谈报告——(摘录华为离职员工)
  20. 遇到不认识的字怎么办

热门文章

  1. Xcode常见编译失败问题解决方案
  2. Java电影售票系统
  3. spyder 下安装scrapy
  4. ubuntu下cvs的安装、配置与使用
  5. 微机原理与接口技术【2】
  6. 扩频码的设计之信源编码
  7. Android应用数字签名详解
  8. uni-app mescroll-body的用法
  9. ocx开发经验,ActiveX开发快速入门
  10. 【GlobalMapper精品教程】030:栅格重采样案例教程(航测DSM)