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

澎峰科技计算软件栈与沐曦GPU完成适配和互认证

近期,澎峰科技与沐曦完成了对PerfXLM(推理引擎)、PerfXCloud(大模型服务平台)与沐曦的曦云系列通用计算GPU的联合测试,测试结果表明PerfXLM、PerfXCloud软件与沐曦GPU产品实现了全面兼容。 PerfXLM高性能大…...

如何用vscode断点调试Vue.js的项目

源码放在git上了,大家自己去看吧,非常简单,视频教程里面也有。 GitHub - SpaceView/howto_debug_vue_js_with_vscode: A basic project show how to debug vue with vscode How to Debug? Following, Creating a Project | Vue CLI to …...

C++17 新特性解析:Lambda 捕获 this

C17 引入了许多改进和新特性,其中之一是对 lambda 表达式的增强。在这篇文章中,我们将深入探讨 lambda 表达式中的一个特别有用的新特性:通过 *this 捕获当前对象的副本。这个特性不仅提高了代码的安全性,还极大地简化了某些场景下…...

Springboot自动配置的原理

先拿redis来举个例子 第一步导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 第二步配置 spring: redis: database:host:127.0.0.1 port…...

第13章:Python TDD完善货币加法运算(二)

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…...

solidity基础 -- 存储类型

在Solidity智能合约开发中&#xff0c;存储类型是一个至关重要的概念。它不仅影响合约的性能&#xff0c;还决定了数据的存储位置和生命周期。Solidity提供了三种主要的存储类型&#xff1a;storage、memory和calldata。本文将结合给定的代码示例&#xff0c;并通过更多实例详细…...

GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比

GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比 目录 GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于GA-CNN-LST…...

AI对齐与开源发展:多学科融合创新之路

标题&#xff1a;AI对齐与开源发展&#xff1a;多学科融合创新之路 文章信息摘要&#xff1a; 本文分析了AI对齐研究中多学科融合的重要性及开源AI领域的最新发展。文章指出&#xff0c;AI对齐问题需要计算机科学与社会选择理论等学科深度结合&#xff0c;特别是在RLHF领域的应…...

大华Java开发面试题及参考答案 (下)

口述一种排序算法,如快排。 快速排序(Quick Sort): 快速排序是一种分治算法,基本思想是将一个数组分成两个子数组,然后递归地对这两个子数组进行排序。首先,从数组中选择一个元素作为基准元素(pivot),可以选择第一个元素、最后一个元素或随机元素。然后,将小于等于基…...

[Spring] OpenFeign的使用

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…...

java文件按行写入数据后并创建行索引及查询

背景 当有很多数据需要存储&#xff0c;这些数据只是想要简单的按行存储和查询&#xff0c;不需要进行其他条件搜索&#xff0c;此时就可以考虑不需把这些数据存储在数据库&#xff0c;而是直接写入文件&#xff0c;然后从文件中查询 但是正常情况下&#xff0c;如果仅仅只是按…...

在视频汇聚平台EasyNVR平台中使用RTSP拉流的具体步骤

之前有用户反馈&#xff0c;在EasyNVR平台中添加Pull时使用海康设备的RTSP流地址无法播放。经过研发的优化及一系列严谨的验证流程&#xff0c;我们已确认优化后的EasyNVR平台&#xff0c;通过Pull方式添加海康设备的RTSP流已经能够正常播放。以下是具体的操作步骤&#xff1a;…...

OS2.【Linux】基本命令入门(1)

目录 1.操作系统是什么? 2.好操作系统的衡量标准 3.操作系统的核心工作 4.在计算机上所有行为都会被转换为硬件行为 5.文件 6.简单介绍一些基本命令 1.clear 2.pwd 3.ls 1.ls -l 2.隐藏文件的创建 3.ls -al 4.ls -ld 5.ls -F(注意是大写) 4.cd 1.cd .. "…...

WPF 复杂页面布局及漂亮 UI 界面设计全解析

在 WPF 开发领域&#xff0c;打造一个既具备复杂功能又拥有美观 UI 界面的应用程序是众多开发者追求的目标。复杂页面布局与漂亮的 UI 设计不仅能提升用户体验&#xff0c;还能展现应用的专业性和独特性。本文将深入探讨如何在 WPF 中实现复杂页面布局以及设计出令人眼前一亮的…...

002-SpringBoot整合AI(Alibaba)

SpringBoot整合AI 一、引入依赖二、配置application.yml三、获取 api-key四、编写 controller五、起服务调用 一、引入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><vers…...

c++模板进阶

前言 一、非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数…...

99.8 金融难点通俗解释:净资产收益率(ROE)

目录 0. 承前1. 简述2. 比喻&#xff1a;养母鸡赚钱2.1 第一步&#xff1a;投资母鸡2.2 第二步&#xff1a;母鸡下蛋2.3 第三步&#xff1a;计算赚钱2.4 第四步&#xff1a;计算ROE 3. 生活中的例子3.1 好的ROE3.2 一般的ROE3.3 差的ROE 4. 小朋友要注意4.1 ROE高不一定好4.2 R…...

原生HTML集合

一、表格 1、固定表格 <div class"tablebox"><div class"table-container"><table id"myTable" border"0" cellspacing"0" cellpadding"0"><thead><tr></tr></thead>…...

【计算机网络】- 应用层HTTP协议

目录 初识HTTP 什么是HTTP 版本 HTTPS 模型 HTTP抓包工具 为什么使用 抓包工具的下载 下载后的重要操作 Fiddler的使用 HTTP请求与响应的基本格式 HTTP请求基本格式​编辑 HTTP响应基本格式 协议格式总结❗️❗️❗️​编辑 HTTP 详解 认识 URL URL基本格式 …...

python学opencv|读取图像(四十)掩模:三通道图像的局部覆盖

【1】引言 前序学习了使用numpy创建单通道的灰色图像&#xff0c;并对灰色图像的局部进行了颜色更改&#xff0c;相关链接为&#xff1a; python学opencv|读取图像&#xff08;九&#xff09;用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客 之后又学习了使用numpy创…...

数据库:MongoDB命令行帮助解释

MongoDB命令&#xff1a; mongodmongosmongoperrormongoexportmongofilesmongoimportmongorestoreMongostat MongoDB包中的核心组件包括: mongod 是 MongoDB 的核心服务器进程&#xff0c;负责数据存储和管理。mongos 是分片集群的路由进程&#xff0c;负责将请求路由到正确…...

python 统计相同像素值个数

目录 python 统计相同像素值个数 最大值附近的值 python 统计相同像素值个数 import cv2 import numpy as np import time from collections import Counter# 读取图像 image cv2.imread(mask16.jpg)# 将图像转换为灰度图像 gray_image cv2.cvtColor(image, cv2.COLOR_BGR2…...

工作流引擎Camunda与LiteFlow核心组件对比

以下为 Camunda 7 和 LiteFlow 详细的介绍&#xff0c;包括它们的核心组件和用途。 1. Camunda 7 详细介绍 Camunda 7 是一个基于 BPMN 2.0 标准的企业级工作流和决策自动化平台。它被广泛应用于复杂业务流程的管理和执行&#xff0c;其核心目标是通过流程自动化来提升企业效…...

记一个Timestamp时区问题的坑

resultSet.getTimestamp(“kpi_collect_time”)查出来的Timestamp居然是带时区的&#xff0c; 如果该Timestamp不是UTC时区的&#xff0c;Timestamp.toInstant().atZone(ZoneId.of(“UTC”))会把Timestamp转成UTC时区 使用Timestamp.toLocalDateTime()可以直接把时区信息抹除 …...

R语言学习笔记之开发环境配置

一、概要 整个安装过程及遇到的问题记录 操作步骤备注&#xff08;包含遇到的问题&#xff09;1下载安装R语言2下载安装RStudio3离线安装pacman提示需要安装Rtools4安装Rtoolspacman、tidyfst均离线安装完成5加载tidyfst报错 提示需要安装依赖&#xff0c;试错逐步下载并安装…...

Hive部署

1. 最小化安装Hive 本次安装的版本是Hive的3.1.3版本 解压缩Hive压缩包 # 解压缩 tar -zxvf apache-hive-3.1.3-bin.tar.gz、 # 修改文件夹名称(看个人习惯&#xff0c;可以不执行) mv apache-hive-3.1.3-bin apache-hive-3.1.3在conf目录下&#xff0c;新增hive-env.sh&…...

Windows第一次上手鸿蒙周边

端云一体所需装备 很重要&#xff1a;C/D/E/F盘要有二三十G的可用空间&#xff01; 硬件&#xff1a;华为鸿蒙实验箱&#xff08;基础版&#xff09;》飞机板核心板环境监测板 软件&#xff1a;Visual Studio Code写代码 终端编译 Hiburn烧录到开发板 MobaXterm &#xff08…...

【java数据结构】二叉搜索树

【java数据结构】二叉搜索树 一、二叉搜索树的概念二、二叉搜索树的操作2.1 插入2.2 查找2.3 删除&#xff08;重点以及难点&#xff09;2.3.1 删除节点的左边为null2.3.2 删除节点的右边为null2.3.3 删除的左右节点都不为空 三、二叉搜索树的性能分析3.1 最优情况3.2 最差情况…...

3D Vision--计算点到平面的距离

写在前面 本文内容 计算点到平面的距离 平台/环境 python open3d 转载请注明出处&#xff1a; https://blog.csdn.net/qq_41102371/article/details/121482246 目录 写在前面准备Open3D代码完 准备Open3D pip install open3d代码 import open3d as o3ddef compute_points2…...

相机内参的作用原理

由三角形角度关系&#xff0c;得到X_image / focal_length X_real / Z_distance 用双目测距得到Z_distance之后 然后联合X_image / focal_length可以计算得到真实世界的X_real...

计算机网络介质访问控制全攻略:从信道划分到协议详解!!!

一、信道划分介质访问控制 介质访问控制&#xff1a;多个节点共享同一个“总线型”广播信道时&#xff0c;可能发生“信号冲突” 应该怎么控制各节点对传输介质的访问&#xff0c;才能减少冲突&#xff0c;甚至避免冲突? 时分复用(TDM) 时分复用&#xff1a;将时间分为等长的“…...

代码随想录day1

704.二分查找&#xff1a; 1.左闭右闭 int search(vector<int>& nums, int target) {int right nums.size() - 1;int left 0;while(left < right){int middle left ((right - left) >> 1);if(nums.at(middle) target){return middle;}else if(nums[m…...

IJK播放器问题集

IJK播放器问题集 在使用ijkplayer进行播放时候&#xff0c;时常会遇到一些问题&#xff0c;故记录下&#xff1a; 1 ijkplayer出现小窗切换到大窗画面卡住问题 检查是否大小窗口切换时候&#xff0c;频繁设置了surface。某些底层api频繁设置会导致画面不动。 //holder判断是…...

macOS使用LLVM官方发布的tar.xz来安装Clang编译器

之前笔者写过一篇博文ubuntu使用LLVM官方发布的tar.xz来安装Clang编译器介绍了Ubuntu下使用官方发布的tar.xz包来安装Clang编译。官方发布的版本中也有MacOS版本的tar.xz&#xff0c;那MacOS应该也是可以安装的。 笔者2015款MBP笔记本&#xff0c;CPU是intel的&#xff0c;出厂…...

【设计模式-行为型】观察者模式

一、什么是观察者模式 说起观察者模式&#xff0c;不得不说一位观察者模式的高级应用者&#xff0c;朱元璋。不知道大家有没有看过胡军演的电视剧《朱元璋》。这部剧背景是元朝末年&#xff0c;天下大乱&#xff0c;朱元璋自幼父母双亡&#xff0c;沦为乞丐&#xff0c;后遁入空…...

HTML5 新表单属性详解

HTML5 为 <form> 和 <input> 标签引入了一系列新属性&#xff0c;极大地增强了表单的功能和用户体验。这些新属性不仅简化了开发者的工作&#xff0c;还为用户提供了更友好、更高效的交互方式。本文将详细介绍这些新属性&#xff0c;并结合代码示例帮助大家更好地理…...

Android程序中使用FFmpeg库

目录 前言 一、环境 二、创建APP 三. 添加FFmpeg库文件到app中 1. 复制ffmpeg头文件和so库到app中 2. 修改CMakeLists.txt文件内容. 3. 修改ffmpeglib.cpp 文件内容 4. 修改NativeLib.kt 文件添加方法和加载库 5. 调用 四. 增加解析视频文件信息功能 总结 前言 前面…...

到华为考场考HCIE的注意事项和考试流程

大家好&#xff0c;我是张同学&#xff0c;来自成都职业技术学院2021级计算机网络专业。最近成功通过了 Datacom HCIE 考试&#xff0c;在这里和大家分享一下我的经验。 考证契机 在母校的培养下&#xff0c;我接触到ICT这个行业&#xff0c;打好了基础&#xff0c;开始了成…...

基于STM32的智能书架管理系统设计

目录 引言系统设计 硬件设计软件设计 系统功能模块 图书分类与存储模块环境监测与保护模块数据显示与用户交互模块远程管理与书籍推荐模块 控制算法 图书分类与存储管理算法环境监测与保护算法数据记录与推荐算法 代码实现 图书分类与存储代码环境监测与保护代码数据显示与远程…...

STL--list(双向链表)

目录 一、list 对象创建 1、默认构造函数 2、初始化列表 3、迭代器 4、全0初始化 5、全值初始化 6、拷贝构造函数 二、list 赋值操作 1、赋值 2、assign&#xff08;迭代器1&#xff0c;迭代器2&#xff09; 3、assign&#xff08;初始化列表&#xff09; 4、assig…...

构建高效稳定的网络环境

概述 网络技术是当今IT行业的重要组成部分&#xff0c;构建高效稳定的网络环境对于企业、个人和互联网发展至关重要。本文将探讨网络技术中的关键要素&#xff0c;包括网络协议、网络架构、网络安全和网络优化&#xff0c;并提供实用的技巧和最佳实践&#xff0c;以帮助您构建…...

2025美赛倒计时,数学建模五类模型40+常用算法及算法手册汇总

数学建模美赛倒计时&#xff0c;对于第一次参加竞赛且没有相关基础知识的同学来讲&#xff0c;掌握数学建模常用经典的模型算法知识&#xff0c;并熟练使用相关软件进行建模是关键。本文将介绍一些常用的模型算法&#xff0c;以及软件操作教程。 数学建模常用模型包括&#xf…...

ElasticSearch DSL查询之排序和分页

一、排序功能 1. 默认排序 在 Elasticsearch 中&#xff0c;默认情况下&#xff0c;查询结果是根据 相关度 评分&#xff08;score&#xff09;进行排序的。我们之前已经了解过&#xff0c;相关度评分是通过 Elasticsearch 根据查询条件与文档内容的匹配程度自动计算得出的。…...

C语言--数据在内存中的存储

数据在内存中的存储 主要研究整型和浮点型在内存中的存储。 1. 整数在内存中的存储 在学习操作符的时候&#xff0c;就了解过了下面的内容&#xff1a; 整数的2进制表示方法有三种&#xff0c;即原码、反码和补码。 有符号的整数&#xff0c;三种表示方法均有符号位和数值…...

qml ScrollView详解

1、概述 QML中的ScrollView是一个容器组件&#xff0c;它允许用户滚动查看其内容&#xff0c;当内容超出视口大小时特别有用。ScrollView提供了垂直和水平滚动条&#xff08;或触摸滚动&#xff09;&#xff0c;使用户能够访问被视口裁剪的内容部分。它常用于显示大量数据或复…...

通过frm和ibd文件恢复mysql数据

1.提取所有的文件名并查找出以frm结尾的 dir /t /b >1.txt 2.要准备的软件 1.mysql-utilities-1.6.5-winx64.msi 2.vcredist_x64.exe(c 2013) 3.利用frm生成sql文件 mysqlfrm --serverroot:123456localhost:3306 --port3308 D:\phpstudy_pro\Extensions\MySQL5.7.26\da…...

观察者模式 - 观察者模式的应用场景

引言 观察者模式&#xff08;Observer Pattern&#xff09;是设计模式中行为型模式的一种&#xff0c;它定义了对象之间的一对多依赖关系&#xff0c;使得当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都会自动收到通知并更新。观察者模式广泛应用于事件处理系统…...

【Mac】Python相关知识经验

一、给Python3安装第三方库 mac下给Python3安装第三方库pillow&#xff0c;处理图片 【安装方式】&#xff1a; 终端中输入命令&#xff1a;python3 -m pip install pillow 按回车&#xff0c;等待pillow下载安装 NOTE: 其他模块同理&#xff0c;如pytesseract 二、Python版…...

使用 JMeter 的 Autostop Listener 插件:自动化性能测试的守护者

在性能测试中&#xff0c;监控测试执行的状态并及时做出响应是至关重要的。如果测试过程中出现性能瓶颈或系统崩溃&#xff0c;继续运行测试可能会导致资源浪费或测试结果不准确。JMeter 的 Autostop Listener 插件正是为了解决这一问题而设计的。它允许你设置自动化停止条件&a…...