在windows10-64bit环境下编译运行调试32位汇编

上bhh老师的汇编课,不想用虚拟机xp操作麻烦缺少常用工具,win10的ollydbg/ollyice又有问题所以萌生了用银河第一ide,vs调试32位汇编程序的想法。需要注意的是,本文主要针对已反汇编的代码调试,vs本身好像并没有反汇编这一功能,反汇编方法就多了,很好找。

  1. workflow
    在xp虚拟机中使用od/oi可以直接反汇编调试查看寄存器一气呵成,而在win10下,workflow会很不一样。win10下调试一个x86应用程序需要经过反汇编->获得汇编.asm文件->使用vs调试.asm文件这一过程,本文主要针对最后一个步骤。
  2. 配置环境
    win10的汇编依赖库为masm,这个库一般已经被集成在了vs中,可以直接使用。但是我们还是要确保安装了对应工具。在安装时,选中使用c++的桌面应用开发,并确保vc++这一项被选中

在windows10-64bit环境下编译运行调试32位汇编_第1张图片
为了再次确认编译工具是否被正确安装,请前往安装目录进行确认
示例目录:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\Hostx64\x86\ml.exe
安装完成后直接打开vs,选择创建空项目并对该项目进行配置

  1. 配置项目
    右键项目,生成依赖项,生成自定义,勾选masm
    在windows10-64bit环境下编译运行调试32位汇编_第2张图片
    右键项目,属性,vc++目录,将masm的库添加至项目中
    在windows10-64bit环境下编译运行调试32位汇编_第3张图片
    右键项目,属性,链接器,系统,子系统选择控制台
    在windows10-64bit环境下编译运行调试32位汇编_第4张图片
    在windows10-64bit环境下编译运行调试32位汇编_第5张图片
    高级,入口点输入main
    在windows10-64bit环境下编译运行调试32位汇编_第6张图片
    项目就配置完成了,f5或者点击本地调试器即可运行调试
    在windows10-64bit环境下编译运行调试32位汇编_第7张图片
  2. 特殊情况
    查看寄存器:在调试开始后选择调试->窗口->寄存器即可查看寄存器
    查看内存:在调试开始后选择调试->窗口->内存即可查看内存
    出现找不到xxx.inc(例如windows.inc):这是因为masm的版本原因,可以通过增加安装masm32并添加至路径解决(注意include include\windows.inc要改为include windows.inc,includelib lib\kernel32.lib要改为includelib kernel32.lib,这是因为搜索路径变化了)
    在windows10-64bit环境下编译运行调试32位汇编_第8张图片

超链接:intel汇编教程集
https://blog.csdn.net/sinat_27382047/article/details/70339455

你可能感兴趣的:(汇编,vs,汇编)