Qt源码解析 索引

汇编逆向--- MASM 和 Visual Studio入门

前提知识:需要对VS开发环境熟悉。

主题:

  • VS环境准备
  • 教程:构建和运行 32 位程序
  • 教程:构建和运行 64 位程序
  • 源代码中的语法突出显示

语法高亮插件 AsmDude

  • 使用 Visual Studio 调试器
  • 被杀毒软件拦截的EXE程序

关闭360等杀毒软件。

VS环境准备

默认使用 Visual Studio 2019

安装需要:

下载并安装 VS 2019 Community Edition 后,您可能需要安装 Visual C++ 语言选项。首先,让我们看看它是否已经安装(在大学计算机实验室中经常发生)。从 Visual Studio 菜单中选择文件 >> 新建 >> 项目。您将看到这个创建新项目对话框窗口。在语言下拉列表中查找 C++

如果没有,查找 安装教程(略)

Visual C++ 语言包括 Microsoft Assembler (MASM)。要验证是否安装了 MASM,请打开 Windows 资源管理器窗口并在 Visual Studio 安装目录中查找名为ml.exe的文件,例如 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools \MSVC\14.xx.xxxx\bin\HostX64\x86。(上面的“x”字符表示当前 VS 安装版本号中的数字。)

设置 Visual Studio

Visual Studio 支持多种编程语言和应用程序类型。C++ 编程语言配置与汇编语言编程最接近,因此我们建议执行以下步骤:

  1. 从菜单中选择工具 >> 导入和导出设置
  2. 选择“导入选定的环境设置”单选按钮
  3. 选择“不,只导入...”单选按钮
  4. 从默认设置列表中选择“Visual C++”,然后单击“下一步”按钮
  5. 单击完成按钮,然后单击关闭按钮
  6. 请注意 Visual Studio 工作区左侧和右侧的选项卡。关闭服务器资源管理器、工具箱和属性选项卡。(可选地,您可以使用鼠标将 Solution Explorer 工具窗口拖动到工作区的右侧。)如果您以后不小心关闭了 Solution Explorer 窗口,您可以将其恢复:从菜单中选择 View,然后在视图列表中找到解决方案资源管理器。

可选步骤:设置制表符缩进大小

启动 Visual Studio 并从“工具” 菜单中选择“选项”。选择并展开文本编辑器【Text Editor】项,选择所有语言【All Languages】,然后选择 制表符【Tabs】。或者,您可能想要选择插入空格单选按钮:

按照需求设置制表符大小。

语法高亮

博主选择Asm-Dude扩展插件

创建第一个项目:


.386
.model flat,stdcall
.stack 4096                 ;伪指令标识,定义运行时堆栈
ExitProcess proto,dwExitCode:dword.code
main procmov    eax,5               ;将5存入eax寄存器add  eax,6               ;eax寄存器加6invoke ExitProcess,0    ;调用windows服务函数,ExitProcess结束程序
main endp                   ;endp伪指令,过程main的结束
end main                    ;伪指令,表示汇编语言最后一行

.386伪指令,表示是32位程序。

.model 选择内存模式flat,确定调用约束stdcall

编译并运行

此程序相当于C++的helloword程序。编译无错误,调试运行程序。

程序模板

;程序模板
.386
.model flat,stdcall
.stack 4096                 ;伪指令标识,定义运行时堆栈
ExitProcess proto,dwExitCode:dword
.data ;声明变量
.code
main proc;代码区invoke ExitProcess,0    ;调用windows服务函数,ExitProcess结束程序
main endp                   ;endp伪指令,过程main的结束
end main                    ;伪指令,表示汇编语言最后一行

知识点:

  • 指令语法

[ lable : ] mnemonic [ operands ] [;comment]

汇编00-MASM 和 Visual Studio 2019 入门相关推荐

  1. 【Tools】Visual Studio 2019专业版下载和安装

    00. 目录 文章目录 00. 目录 01. Visual Studio 2019下载 02. Visual Studio 2019安装 03. Visual Studio 2019测试 04. 预留 ...

  2. 【Tools】Visual Studio 2019下载和安装

    00. 目录 文章目录 00. 目录 01. Visual Studio 2019简介 02. Visual Studio 2019下载 03. Visual Studio 2019安装 04. Vi ...

  3. Visual Studio 2019 RC入门——第1部分

    目录 介绍 背景 语言包 打开Visual Studio 2019 RC 克隆或检查我们的代码 打开项目或解决方案 打开本地文件夹 无代码继续 创建一个新项目 兴趣点 介绍 在本文中,让我们看看如何开 ...

  4. Microsoft Visual Studio 2019介绍之使用入门

    Microsoft Visual Studio 2019介绍之使用入门 目录 1.前言: 2.Visual Studio安装: 3.项目的创建和代码的编译与运行: 4.常见问题及解决方法: 1.前言 ...

  5. C#编程入门第一课 Visual studio 2019使用,cs文件构成,打开项目文件,两句最简单语句,运行前,运行程序,显示行号,设置字体

    C#编程入门第一课 文章目录 C#编程入门第一课 1 2 3 Visual Studio 2019 4. cs文件构成 5. 打开项目文件 6. 两句最简单语句 7. 运行前 8.运行程序 9.显示行 ...

  6. Visual Studio 2019 C# 上位机入门(2):写一个简单的串口助手

    前言 本文记录一下用Visual Studio 2019 C# 写一个简单的串口助手的过程,由于没有先从小处学习,而是直接找相关资料就开始做,免不了很多奇怪的问题花了一些时间,基于此情况,我将尽可能整 ...

  7. Visual Studio 2019 RC入门——第2部分

    目录 介绍 背景 使用新项目模板 顶部的语言组合框 平台组合框 项目类型组合框 使用Visual Studio 2019 Web应用程序项目 使用Web应用程序 使用代码 创建我们的第一个ASP.NE ...

  8. c/c++入门教程 - 1.基础c/c++ - 1.0 Visual Studio 2019安装环境搭建

    推荐视频课程:https://www.bilibili.com/video/BV1et411b73Z?p=2 已投币三连,b站果然是个学习的网站. 本来是想在linux环境下运行QT,于是先学了几个月 ...

  9. 环境配置 龙书dx12_DX12龙书 00 - 环境配置:通过 Visual Studio 2019 运行示例项目

    0x00 安装 Visual Studio 2019 安装 Visual Studio 2019 以及相关组件. 注:安装组件时带的 Windows 10 SDK 可以在 Individual com ...

最新文章

  1. UIProgressView(进度条控件)
  2. swiper 定义放多少张图片_swiper轮播问题之二:默认显示3张图片,中间显示全部两边显示部分...
  3. 满纸荒唐言,一把辛酸泪--红楼一梦
  4. c.语言 获取随机数,C 语言随机数获取
  5. 神经网络优化中的Weight Averaging
  6. Scala类的定义,主/辅构造器,以及方法中的变量定义,单例对象,伴生对象,Apply方法调用,应用程序对象
  7. Mysql数据类型之浮点与二进制型数据使用案例总结
  8. Linux学习笔记 文件读写小细节
  9. Orion:谷歌的新一代SDN控制器
  10. Linux浏览器libgtk-3,终于把WebKit(基于GTK)移植到ARM上
  11. srsLTE源码学习:RLC,无线链路控制子层抓包rlc_pcap.h,rlc_pcap.cc
  12. left join 和inner join关联查询区别
  13. Windows核心编程_异型窗口
  14. JavaScript代码如何在VScode进行调试?
  15. 我的世界javamod怎么装_我的世界MOD安装方法图文教程_我的世界MOD怎么安装_牛游戏网...
  16. Word文件的OpenXML解析(以Python3为例)
  17. FPGA开平方的实现(三种方法)
  18. [从头读历史] 第253节 孔子和他的《春秋》 [BC722至BC658]
  19. 多种方式查看电脑是否支持Modern Standby
  20. C++笔记(《C++新经典》)

热门文章

  1. 客户永恒不变的六大终极问题
  2. 面试官:说一说Zookeeper中Leader选举机制
  3. ameba-飞燕平台连接指引 linkkit 阿里生活物联网平台
  4. 股票购买接口系统怎么使用vn.py进行量化策略?
  5. SharePoint Server 2016 Beta 版,中文版本安装出错的解决方案
  6. Deep Learning(深度学习)学习笔记整理系列之(三)
  7. Java8本地缓存Caffeine
  8. Nightwatch入门(三):配置
  9. .net Framework 源代码 · ScrollViewer
  10. <!-- 8、【循环练习-蜗牛爬井】 --><!-- 井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。 -->