首页 > 编程语言 >x64汇编第一讲,Vs系列配置x64环境与x86环境

x64汇编第一讲,Vs系列配置x64环境与x86环境

时间:2024-08-25 16:25:57浏览次数:8  
标签:汇编 x86 配置 环境 x64 Vs 设置 asm

x64汇编第一讲,Vs系列配置x64环境与x86环境

作者头像 IBinary 发布于 2019-05-25 16:07:40 3K0 发布于 2019-05-25 16:07:40 举报 文章被收录于专栏:逆向技术

目录

  • x64汇编环境配置
    • 一丶x64环境配置
      • 1.1 VS系列编译器配置X64Asm开发环境.
    • 二丶Vs配置X86汇编环境.

x64汇编环境配置

一丶x64环境配置

现在windows系统都是64位了,那么对应的汇编也就是说已经升级到64位了. 一直没有时间写博客将64位汇编写出来.所以现在细心整理一下. 首先我们先配置好开发环境,然后我们才能进行开发.

1.1 VS系列编译器配置X64Asm开发环境.

1.1新建一个项目.项目里面添加一个.asm后缀的文件.

当然后缀.asm文件没有,所以我们随便添加一个文本文件.或者一个.cpp文件.在添加的时候将后缀名改为.asm即可.

1.2 配置x86 /x64汇编环境

我们要生成一个应用程序,可以进行选择是生成x86还是x64 现在汇编中也是一样的.直接进行配置.

当然你也可以自定义一个解决方案,是专门编译汇编的. 只需要你在 上方Debug哪里新建一个解决方案即可.这个自己研究不在累赘,如果嫌麻烦自己只用用x64的即可.

1.3 设置asm属性.

右键对.asm文件 点击属性,如下图表示 从项目中排除选择否, 然后项目类型改正自定义类型

1.4 asm属性继续设置

如果第三不应用之后则会出现如下显示界面 

此时在自定义生成工具里面,点击常规. 里面会出现很多内容.我们只关心 命令行跟输出即可.

如下;

命令行: ml64 /Fo $(IntDir)%(fileName).obj /c %(fileName).asm

输出: $(IntDir)%(fileName).obj;%(Outputs)

1.5设置程序入口点以及子系统

如果单纯的编写x64汇编.那么你就需要设置了. 对解决方案右键点击属性.找到链接->子系统

 

设置子系统位console控制台

然后设置入口点.

 

你写的x64汇编入口是哪个你就指定那个即可.

x64汇编代码

.DATA        ;定义数据段

IBinary DQ ?  ;自定义了一个常量为IBinary

.CODE         ;定义代码段

 

Fun PROC    ;定义函数
    ret
Fun ENDP

 

Main PROC
    
    sub rsp,20h
    xor r9,r9
    xor r8,r8
    xor rdx,rdx
    xor rcx,rcx
    call Fun
    add rsp,20h
    ret
Main ENDP

END

 

最后编译执行即可.

x64dbg 下的内容

 

1.6配置生成依赖项

如果上方编译不成功,则设置一下生成依赖项.

 

 

1.7 配置高亮插件

当时配置高亮插件是在Vs2019上面,点击扩展更新. 搜索ASM会出现两个 一个是 AsmHighlighter,另个好想是 AsmHxxxx 两个安装那个都可以.

二丶Vs配置X86汇编环境.

2.1.设置编译环境为win32

首先我们要选择编译为win32程序.这个自己直接在配置管理器选择即可.

2.2.设置附加依赖项.

附加依赖项在x64可设置可不设置,我没有设置.

如下:

 

 

2.3.设置Asm文件属性.

右键对.asm文件 点击属性,如下图表示 从项目中排除选择否, 然后项目类型改正自定义类型

 

此时跟X64设置的不一样了,我们选择项目类型为 Microsoft Macro Assembler即可.

 

设置 use safe Excetion Handlers 设置为是即可.

此时就设置成功了.

x86汇编代码测试

INCLUDELIB kernel32.lib

.MODEL flat,stdcall

;.code
ExitProcess PROTO,              ; exit program
dwExitCode:DWORD        ; return code


.data
.code
Main PROC

    mov eax,10000h      ; EAX = 10000h
    add eax,40000h      ; EAX = 50000h
    sub eax,20000h      ; EAX = 30000h

    push 0h
    call ExitProcess

main ENDP
END Main

 

直接拷贝到自己工程即可.直接编译即可.

此时你还需要 在解决方案属性里面的连接器里面 设置一下系统具体如下

解决方案 -> 连接器 -> 系统 -> 子系统 : 设置为 console (控制台) 解决方案 -> 连接器 -> 高级 -> 入口点 : 设置为你汇编代码的入口点. 如我的就是 Main

x32Dbg代码截图

 

标签:汇编,x86,配置,环境,x64,Vs,设置,asm
From: https://www.cnblogs.com/jijm123/p/18379082

相关文章

  • LVS
    问题LVSNAT模式必须设置默认路由指向DIR地址,如果不设置数据包RS服务器能否将数据包正确的返回给客户端。DR/TUN模式增加一条静态路由目标地址VIP地址,dev设备指向VIP的网口,如果不设置RS服务能否正确接收到DirectorServer发送的数据包LVSDR/TUN模式,RS服务器一定配置VIP地址在......
  • 嵌入式UI开发-lvgl+wsl2+vscode系列:12、GUI Guider安装使用及在ssd202开发板上测试
    一、前言接下来我们根据开发板官方的指南安装lvgl的ui工具GUIGuider进行开发和测试。理论上还有SquareLineStudio,但是由于一些收费等因素暂时不做过多介绍,gui工具只是辅助,加快开发效率,很多时候还是得直接用代码写界面。(还有一个原因就是GUIGuider可以直接设置中文界面)......
  • Ros2 vscode 调试运行
    1.编译调试版本:在使用colconbuild编译工作区时,你需要确保以调试模式编译,添加--cmake-args-DCMAKE_BUILD_TYPE=Debug参数:colconbuild--cmake-args-DCMAKE_BUILD_TYPE=Debug2.使用gdb进行调试gdb是一个常用的调试工具,可以帮助你在命令行中调试ROS2节点。步......
  • VS2022 Visual Studio Installer 一直卡在0%,或者下载速度慢的问题解决办法
    C:\Users\Administrator\AppData\Local\Temp到c盘查看日志,发现是下载一个叫vs_installer.opc的东西失败了, 直接复制日志里的https://aka.ms/vs/17/release/installer,下载,发现成功下载,然后放到installer安装器同级目录,重新打开setup安装,就成功了打开了,然后会一直正在准备中,......
  • 十五、OpenCVSharp实现相机标定
    文章目录简介一、相机模型1.针孔相机模型2.畸变模型(径向畸变、切向畸变)二、标定板的设计和使用1.常见的标定板类型(如棋盘格、圆形标定板)2.标定板图像的采集要求三、相机标定的步骤1.角点检测和提取2.求解相机内参和外参3.标定结果的评估和优......
  • 全新Versal HBM 系列自适应 SoC:XCVH1542-1MSEVSVA3697、XCVH1542-2MLELSVA4737、XCVH1
    系列概述VersalHBM系列具有快速内存、安全连接和自适应计算的异构集成,可消除内存绑定的计算密集型工作负载(如机器学习、数据库加速、下一代防火墙和高级网络测试仪)的处理和内存瓶颈。它从底层开始构建,以适应不断发展的算法、协议和数据速率。与VersalPremium系列*相比,通过集......
  • 云 VS 边缘计算,关系与区别是什么?
    云计算和边缘计算的区别是什么?云是一种IT环境,可以抽象、汇集和共享整个网络中的IT资源。边缘是网络边缘的计算位置,以及这些物理位置上的硬件和软件。是在云中运行工作负载,而边缘计算是在边缘设备上运行工作负载。边缘是云的一部分吗?某种程度上是。边缘设备可以是云的组......
  • 2.ros2创建话题+发布消息(VScode环境搭建+编写)
    前言:这是在1.ROS2安装-创建节点的基础上进行改进的,由于ubuntu自带的nano和vim在编写的时候不是很方便,在这教大家怎么用VScode进行编写代码1.Vscode安装1.1下面是Vscode的deb网盘连接,你也可以去官网下载        官网连接:DownloadVisualStudioCode-Mac,Linux,......
  • VS Code 摸鱼神器,确定不试一下?
    大家好,我是李牌牌。来分享点好玩的"知识"!VSCode插件市场中不仅有很多实用的开发插件,还有很多好玩的摸鱼插件,下面就来分享VSCode中值得一试的摸鱼插件!WeixinRead专门适配微信读书网页版的阅读插件,功能比较简单,可以阅读微信读书的内容,支持登录。安装完成之后,左侧工具栏......
  • 解决方案 | VS2022 社区版 获取工具和功能找不到visual stdio安装程序的终极解决办法
      首先这是一种解决方法:https://blog.csdn.net/Wysnbb/article/details/124588395 其次,如果上面方法解决不了,那么可以重新下载vs社区版。(不要误会,并不是下载10G+的东西)https://visualstudio.microsoft.com/zh-hans/vs/community/  下载得到:  安装VisualStud......