-
-
编译64位程序时使用汇编的方法总结
-
发表于:
2021-11-5 13:15
27967
-
目前在科锐学习3阶段已经尾声,这一年多来不仅仅是正向、逆向能力的提升,同时在对问题查找答案的方法上也有了很大的进步。
在32位程序开发中可以很方便的使用内联汇编(_asm、_asm{}),随着时代的发展,64位程序开发的需求也逐渐增多。但很遗憾微软并不想让我们在64位程序中随随便便(像原来一样)的用内联汇编。
今天正在做作业,64位的ARK工具,一些功能使用汇编(比如屏蔽中断、恢复、拿CR4)更为方便,结合老师的讲解以及网络查询的资料,做一下整理。
/c是只编译不链接,钱老师n久之前讲过的知识。
默认添加的是不参与生成的,需要手动设置一下
选择自定义生成工具后点击应用,会出现新的选项。
在“自定义生成工具”中设置“命令行”和“输出文件”。
输入完毕点击确定,然后编译工程测试下,会看到输出了 .obj文件。
声明.asm中的函数并编写测试代码使用它。
测试结果正常,当然还有一种类似的方法,更为简单
右键点击工程名,在弹出的菜单选择“生成依赖项”----> “生成自定义”
勾选 masm后确定
这里可以在解决方案资源管理器里,右键选中添加的.asm文件,然后在弹出菜单中选择“属性”,查看下“项类型”是否为“Microsoft Macro Assembler”,如果不是,那需要手动设置下。一般情况下在添加了生成自定义,这时候是不需要自己再对文件设置了。
我自己更倾向于最后一种方法,原因就是简单,之后再添加.asm文件不需要额外的设置了。哪里写的不对的请多多指正。
2021年11月5日13点14分
win10
20H2
(
19042.928
)
Visual Studio
2019
(
16.11
.
5
)
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!