当前位置: 首页 > news >正文

汇编与逆向(一)-汇编工具简介

RadASM是一款著名的WIN32汇编编辑器,支持MASM、TASM等多种汇编编译器,Windows界面,支持语法高亮,自带一个资源编辑器和一个调试器。

一、汇编IDE工具:RadASM

RadASM有内置的语言包

下载地址:RadASM assembler IDE(RadASM assembler IDE)

1、把这三个下载之后,解压主程序

比如到:I:\RadASM 再解压汇编包语言包 。注意:语言包的Language目录、汇编包中的文件及目录要放在主程序所在目录中,比如:I:\RadASM。

说明见readme.txt

2、设置中文语言

弄好后点击 RadASM.exe 启动RadASM,然后点击 Option:

3、配置RadASM

重启RadASM,点击        选项==>编程语言

4、使用方法

可以参考:radasm的汇编语言操作入门 - nyc1893 - 博客园 (cnblogs.com)

5、中文乱码问题的解决

如果你不需要再汇编程序里使用中文,那你就已经完事了,但是RadASM本身如果程序里有中文就会乱码,下面是解决办法:调节字体。

点击        选项==>字体选项

点击  代码编辑 ,选择字体(这里推荐微软雅黑),再选择编码,别忘了确定应用!

点击确定应用确定, OK!

二、汇编编译工具:MASM32

官网下载地址:MASM32 SDK(https://masm32.com/download/masm32v11r.zip)

1、安装

解压缩masm32v11r.zip,点击install.exe,选择分区,一直“确定”

直到:

点击ok

最后

我的Masm安装在I分区中,如图:

2、设置系统环境变量

注:如果不使用命令行编译,可忽略,直接在RadAsm中设置Masm32路径,见下文。

设置三个Window系统环境变量:include、lib,path增加masm32

include =c:\masm32\include
lib=c:\masm32\lib
path=c:\masm32\bin

完成后,命令行输入ml,回车,出现以下页面,表示配置成功

3、命令行编译asm

Masm32目录中新建source文件夹(可以是其他任意目录),记事板写入以下代码,到存到c:\masm32\source\helloword.asm

.386
.model flat ,stdcall ;32bit memory model
option casemap :none ;case sensitveinclude windows.inc
include user32.inc
include kernel32.incincludelib user32.lib
includelib kernel32.lib.const g_szHello db 'Hello World',0g_szTitle db 'PE',0
.codestart:invoke MessageBox,NULL,Offset g_szHello,Offset g_szTitle,MB_OKinvoke ExitProcess,0end start

命令行编译:ml -c -coff C:\masm32\source\HelloWord.asm

编译成功,出现obj文件

命令行链接:link -subsystem:windows HelloWord.obj

出现exe文件

双击exe文件,出现以下窗口,运行成功! 

三、RadAsm设置Masm32路径

F5,Assemble汇编成功

四、使用RadAsm汇编hello word!

1、创建一个无资源的汇编工程

2、输入代码

.386
.model flat ,stdcall ;32bit memory model
option casemap :none ;case sensitveinclude windows.inc
include user32.inc
include kernel32.incincludelib user32.lib
includelib kernel32.lib.const g_szHello db 'Hello World',0g_szTitle db 'PE',0
.codestart:invoke MessageBox,NULL,Offset g_szHello,Offset g_szTitle,MB_OKinvoke ExitProcess,0end start

3、Ctrl+F5,完成编译运行

注意:默认Masm32没有Doslink.exe,编译纯Dos的App时,,

Alt+Ctrl+F5会报错,Link生成obj失败!按Ctrl+F5 构建并运行,成功生成exe文件后再进入调制器中运行。

4、在调试器中运行

按alt+7 打开Register列表,按F10 即可让程序在单步状态下运行,同时相应的查看包括PSW寄存器和其他寄存器的状态情况。

标志位对应的符号如下:

       radasm软件界面简单,不光对于新手容易上手,还拥有较强的工程管理功能,加之众多插件的支持,使得它用汇编语言编写Windows软件变得得心应手。

http://www.lryc.cn/news/524666.html

相关文章:

  • .NET Framework
  • LabVIEW太赫兹二维扫描成像系统
  • 图片专栏——概念
  • Linux内存管理(Linux内存架构,malloc,slab的实现)
  • 【C++】模板(进阶)
  • Esxi下虚拟机磁盘类型厚置备改精简置备
  • Element使用表单重置如果不使用prop,重置无法生效
  • Windows FileZila Server共享电脑文件夹 映射21端口外网连接
  • MongoDB 备份与恢复综述
  • node.js 文件操作
  • python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)图像变换
  • Spark SQL中的from_json函数详解
  • 【软件架构】软件的十二种架构简介
  • 日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件
  • Vue 3中导航守卫(Navigation Guard)结合Axios实现token认证机制
  • 【爬虫】使用 Scrapy 框架爬取豆瓣电影 Top 250 数据的完整教程
  • 一分钟学习数据安全——白盒加密及安当应用
  • composer安装指定php版本, 忽略平台原因导致的报错
  • Java 前端详解
  • 鸿蒙安装HAP时提示“code:9568344 error: install parse profile prop check error” 问题现象
  • Javaweb之css
  • 实施工程师:面试基础宝典
  • react install
  • ElasticSearch DSL查询之排序和分页
  • uniapp封装websocket
  • 【Linux】18.Linux进程控制(2)
  • reactor框架使用时,数据流请求流程
  • 读西瓜书的数学准备
  • 摄像头模块如何应用在宠物产品领域
  • c++学习第七天