当前位置: 首页 > 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软件变得得心应手。

相关文章:

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

RadASM是一款著名的WIN32汇编编辑器,支持MASM、TASM等多种汇编编译器,Windows界面,支持语法高亮,自带一个资源编辑器和一个调试器。 一、汇编IDE工具:RadASM RadASM有内置的语言包 下载地址:RadASM asse…...

.NET Framework

.NET Framework 是微软推出的一个软件开发平台,主要用于构建和运行 Windows 应用程序。它是 .NET 生态系统的早期版本,专注于 Windows 平台,并提供了丰富的类库和运行时环境。 注意事项 跨平台限制:.NET Framework 主要适用于 W…...

LabVIEW太赫兹二维扫描成像系统

使用LabVIEW设计太赫兹二维扫描成像系统。通过LabVIEW平台开发,结合硬件如太赫兹源、平移台、锁相放大器等,实现了高效、精准的成像功能。系统采用蛇形扫描方式,通过动态调整扫描参数,达到优化成像质量的目的。 ​ 项目背景 在非…...

图片专栏——概念

欢迎来到图片世界,大家一起学习交流! 1. 像素(Pixel) 定义:像素是图像的最小单位,是“图像元素”的缩写。你可以把像素想象成拼图中的一个最小块,无数个像素组合在一起就形成了完整的图像。作用&#xff…...

Linux内存管理(Linux内存架构,malloc,slab的实现)

文章目录 前言一、Linux进程空间内存分配二、malloc的实现机理三、物理内存与虚拟内存1.物理内存2.虚拟内存 四、磁盘和物理内存区别五、页页的基本概念:分页管理的核心概念:Linux 中分页的实现:总结: 六、伙伴算法伙伴算法的核心…...

【C++】模板(进阶)

本篇我们来介绍更多关于C模板的知识。模板初阶移步至:【C】模板(初阶) 1.非类型模板参数 1.1 非类型模板参数介绍 模板参数可以是类型形参,也可以是非类型形参。类型形参就是我们目前接触到的一些模板参数。 //类型模板参数 …...

Esxi下虚拟机磁盘类型厚置备改精简置备

Esxi虚拟机磁盘类型厚置备改精简置备 一、esxi报错磁盘不足 1.1、虚拟机报错磁盘不足 1.2、虚拟机磁盘类型 VMware vSphere 中有两种主要类型的虚拟硬盘:精简配置磁盘和厚置备磁盘。 厚置备磁盘有两种分配模型:厚置备延迟置零和厚置备置零。 三者比…...

Element使用表单重置如果不使用prop,重置无法生效

文章目录 为什么需要 prop?示例:使用 prop 的正确方式关键点总结 在 element-ui 的 el-form 组件中, prop 属性是与表单验证和表单字段绑定密切相关的,尤其在使用 resetFields() 重置表单数据时。 如果不使用 prop&#xff0…...

Windows FileZila Server共享电脑文件夹 映射21端口外网连接

我有这样一个使用场景,在外部网络环境下,通过手机便捷地读取存储在电脑上的视频文件。比如在外出旅行、出差,身边没有携带电脑,仅依靠手机设备,就能随时获取电脑里存储的各类视频,无论是学习资料视频、工作…...

MongoDB 备份与恢复综述

目录 一、基本概述 二、逻辑备份 1、全量备份 2、增量备份 3、恢复 三、物理备份 1、cp/tar/fsync 2、WiredTiger 热备份 3、恢复 四、快照备份 一、基本概述 MongoDB 是一种流行的 NoSQL 数据库,它使用文档存储数据,支持丰富的查询语言和索引…...

node.js 文件操作

在 Node.js 中,文件操作主要通过内置的 fs(File System)模块来实现。 1. 读取文件 const fs require("fs");// 异步读取文件fs.readFile("example.txt", "utf8", (err, data) > {if (err) {console.erro…...

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)图像变换

形态变换 图像处理中的形态学操作是处理图像结构的有效方法。以下是一些常见的形态学操作的介绍及其在 OpenCV 中的实现示例。 1. 腐蚀(Erosion) 腐蚀操作通过消除图像边界来减少图像中的白色区域(前景),使物体的边…...

Spark SQL中的from_json函数详解

Spark SQL中的from_json函数详解 在Spark SQL中,from_json是一个用于解析JSON数据的函数,主要用于将JSON格式的字符串解析为结构化的数据(即StructType或其他Spark SQL数据类型)。这个函数在处理半结构化数据(如JSON日…...

【软件架构】软件的十二种架构简介

软件的十二种架构简介 一、软件的12种架构 1. 单体架构 (Monolithic Architecture)2. 分层架构 (Layered Architecture)3. 事件驱动架构 (Event-Driven Architecture)4. 微服务架构 (Microservices Architecture)5. 服务导向架构 (Service-Oriented Architecture, SOA)6. 客户…...

日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件

日历热力图,月度数据可视化图表,vue组件 先看效果👇 在线体验https://www.guetzjb.cn/calanderViewGraph/ 日历图简单划分为近一年时间,开始时间是 上一年的今天,例如2024/01/01 —— 2025/01/01,跨度刚…...

Vue 3中导航守卫(Navigation Guard)结合Axios实现token认证机制

在Vue 3中,导航守卫(Navigation Guard)用于拦截路由的变化,可以在用户访问页面前进行检查。结合Axios进行token认证机制时,我们可以通过导航守卫在路由跳转时,检查用户的认证状态,确保用户有有效…...

【爬虫】使用 Scrapy 框架爬取豆瓣电影 Top 250 数据的完整教程

前言 在大数据和网络爬虫领域,Scrapy 是一个功能强大且广泛使用的开源爬虫框架。它能够帮助我们快速地构建爬虫项目,并高效地从各种网站中提取数据。在本篇文章中,我将带大家从零开始使用 Scrapy 框架,构建一个简单的爬虫项目&am…...

一分钟学习数据安全——白盒加密及安当应用

白盒加密作为一种先进的加密技术,在数据安全、通信安全和信息隐私保护等多个关键领域都有应用。这次的一分钟,让您快速了解一下白盒加密的概念,以及安当产品中的白盒加密应用。 一、什么是白盒加密 简单来说,白盒加密是一种特殊…...

composer安装指定php版本, 忽略平台原因导致的报错

windows下 //composer安装指定php版本, 写出完整的php和composer.phar路径 D:\phpstudy_pro\Extensions\php\php8.1.11nts\php.exe D:\phpstudy_pro\Extensions\composer1.8.5\composer.phar install windows下一些扩展不支持, 如下图, 所以本地composer安装组件时可以忽略 …...

Java 前端详解

Java 前端详解 Java 前端开发主要涉及使用 Java 相关技术和框架来创建用户界面和处理用户交互。虽然 Java 原本是后端开发的主力语言,但它也提供了许多前端开发工具和框架。以下是 Java 前端开发的主要内容和技术栈。 一、Java 前端技术栈 Java Swing 和 AWT AWT (…...

用Python给双足机器人做个“不倒翁”大脑:线性倒立摆仿真入门(附完整代码)

用Python给双足机器人做个“不倒翁”大脑:线性倒立摆仿真入门(附完整代码) 当你在公园里看到小朋友玩不倒翁时,有没有想过双足机器人也需要类似的"不倒"能力?线性倒立摆模型(LIPM)就是…...

高压电源软启动:从浪涌抑制到系统可靠性的工程实践

1. 高压电源软启动的必要性 第一次见到整流二极管炸裂的场景,至今记忆犹新。那是在一个工业电源调试现场,工程师刚合上电闸就听到"啪"的一声脆响,随后便闻到焦糊味——价值数百元的整流模块瞬间报废。罪魁祸首就是电容滤波电路带来…...

Ubuntu软件包依赖关系全解析,动态规划 - 回文子串问题。

查找软件包的依赖关系 在Ubuntu中&#xff0c;可以使用apt-cache命令查看软件包的依赖关系。运行以下命令列出指定软件包的所有依赖项&#xff1a; apt-cache depends <package-name>将<package-name>替换为目标软件包名称。该命令会显示直接依赖、推荐依赖以及可选…...

2026年大数据专业数据分析学习指南

一、核心技术与工具2026年主流大数据技术栈&#xff08;如Spark、Flink、Hadoop生态&#xff09; 实时数据处理与批处理技术对比 云原生数据分析平台&#xff08;AWS/GCP/Azure解决方案&#xff09; 机器学习与深度学习在数据分析中的融合应用二、数学与统计基础概率论与数理统…...

Linux系统管理员必备命令大全

1. Linux命令概述作为一名Linux系统管理员&#xff0c;掌握常用命令是基本功。Linux命令是操作系统与用户交互的主要方式&#xff0c;通过命令行可以完成几乎所有系统管理任务。与图形界面相比&#xff0c;命令行操作更加高效、灵活&#xff0c;特别是在远程管理和自动化脚本方…...

OpenClaw技能开发入门:为Qwen3-32B定制专属文件分类器

OpenClaw技能开发入门&#xff1a;为Qwen3-32B定制专属文件分类器 1. 为什么需要文件分类技能 上周我的桌面又变成了"数字垃圾场"——下载文件夹里混杂着PDF报告、会议录音、临时截图和一堆未命名的压缩包。当我第三次因为找不到客户合同而错过deadline时&#xff…...

安卓跑步打卡项目App源码分享:内含完整源码与简易开发文档

安卓源码&#xff0c;安卓开发&#xff0c;跑步打卡项目app源码&#xff0c;包括源码和简单文档跑步打卡 App 技术白皮书——从传感器到云端轨迹的完整数据链路一、定位&#xff1a;一款“轻量级、端侧优先”的运动健康产品本 App 面向青少年及日常健身人群&#xff0c;在“零账…...

Linux内核中的内存屏障技术详解

Linux内核中的内存屏障技术详解 引言 内存屏障&#xff08;Memory Barrier&#xff09;是Linux内核中用于确保内存操作顺序的重要机制。在多处理器系统中&#xff0c;由于CPU缓存、指令重排序等因素&#xff0c;内存操作的实际执行顺序可能与代码中的顺序不同&#xff0c;这可能…...

【26大英赛】全国大学生英语竞赛高频核心词汇表pdf电子版(考前必背单词)

2026年全国大学生英语竞赛进入最后冲刺阶段&#xff0c;考试日期定于4月12日。距离考试仅剩6天时间&#xff0c;备考工作刻不容缓。 为助力考生高效复习&#xff0c;现推出最新版竞赛核心词汇手册。该资料以PDF电子版形式提供&#xff0c;支持自由下载和打印使用&#xff0c;方…...

2026届学术党必备的六大降AI率网站推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 使原本旨在降低文本被人工智能检测系统识别概率的降AI工具&#xff0c;借助调整词汇、句式以…...