当前位置: 首页 > 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 (…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

ip子接口配置及删除

配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...