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

Windows逆向工程提升之二进制分析工具:HEX查看与对比技术

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

十六进制查看工具

应用于逆向工程的知识点

​编辑

二进制对比工具

应用于逆向工程的知识点


十六进制查看工具

十六进制查看器是逆向工程的基础工具,它可以以十六进制格式显示文件内容,同时展示对应的ASCII字符表示。

VOID HexAscii(const BYTE* data, SIZE_T offset, SIZE_T length)
{char ascii[17] = { 0 };ascii[16] = '\0';printf("%08X | ", offset);for (size_t i = 0; i < 16; i++){if (i < length){printf("%02X ", data[i]);ascii[i] = isprint(data[i]) ? data[i] : '.';}else{printf("   ");ascii[i] = ' ';}}printf(" |%s|\n", ascii);
}

这个函数接收数据缓冲区、偏移量和长度,以标准的十六进制转储格式输出。对于不可打印的字符,用点(.)替代,这是十六进制编辑器的常用做法。

HexDump函数则通过逐块读取文件内容,调用HexAscii函数处理每一块数据:

VOID HexDump(CONST CHAR* fileName)
{FILE* pFile = fopen(fileName, "rb");if (!pFile){printf("fopen failed -> %s\r\n", fileName);return;}BYTE buffer[16] = { 0 };SIZE_T byteRead = 0;SIZE_T offset = 0;while ((byteRead = fread(buffer, 1, sizeof(buffer), pFile)) > 0){HexAscii(buffer, offset, byteRead);offset += byteRead;}
}

应用于逆向工程的知识点

  1. 文件格式分析:通过十六进制查看可以识别文件头、魔数等特征,如PE文件的MZ头(0x4D5A)。
  2. 字符串提取:能够快速定位程序中的明文字符串,这些字符串常常揭示程序功能或API调用。
  3. 代码段识别:帮助分析机器码和数据区的边界,为反汇编提供参考。
  4. 数据结构分析:通过二进制模式识别复杂数据结构的布局。

二进制对比工具

二进制对比工具用于识别两个PE文件之间的差异,这在分析软件补丁、不同版本间的变化或恶意软件变种时非常有用。

该工具首先验证输入文件是否为有效的PE文件:

BOOL IsPeFile(CONST CHAR* filePath)
{FILE* pFile = fopen(filePath, "rb");if (!pFile) return FALSE;WORD dosSignature = NULL;if (fread(&dosSignature, sizeof(WORD), 1, pFile) != 1){fclose(pFile);return FALSE;}if (dosSignature != IMAGE_DOS_SIGNATURE/*0x5A4D*/){fclose(pFile);return FALSE;}fclose(pFile);return TRUE;
}

对比过程中,工具逐字节比较两个文件,并以彩色高亮显示差异:

VOID CompareFileByBin(CONST CHAR* file1path, CONST CHAR* file2path)
{// 文件打开和检查代码...// 循环读取并比较文件内容while (1){SIZE_T byteRead1 = fread(szBuffer1, 1, USN_PAGE_SIZE, pFile1);SIZE_T byteRead2 = fread(szBuffer2, 1, USN_PAGE_SIZE, pFile2);if (byteRead1 == 0 && byteRead2 == 0) break;if (byteRead1 != byteRead2){SetConsoleColor(CON_RED);printf("警告: 文件长度不相等 OFFSET -> 0x%08llx\r\n", dwOffset + (byteRead1 < byteRead2 ? byteRead1 : byteRead2));SetConsoleColor(CON_WHITE);break;}for (size_t i = 0; i < byteRead1 && i < byteRead2; i++){if (szBuffer1[i] != szBuffer2[i]){SetConsoleColor(CON_RED);printf("0x%08llX | 0x%02X  | 0x%02X  | %c - %c \r\n",dwOffset + i,szBuffer1[i],szBuffer2[i],(szBuffer1[i] >= 32 && szBuffer1[i] <= 126) ? szBuffer1[i] : '.',(szBuffer2[i] >= 32 && szBuffer2[i] <= 126) ? szBuffer2[i] : '.');SetConsoleColor(CON_WHITE);dwDifferences++;}}dwOffset += byteRead1;}
}

应用于逆向工程的知识点

  1. PE文件结构:程序通过检查DOS头部的MZ签名(0x5A4D)来验证文件是否为合法的PE文件。PE文件是Windows可执行文件的标准格式,包含代码、数据和资源。

  2. 补丁分析:通过比较软件不同版本,可以快速定位被修改的代码段,这在分析安全补丁时特别有用。

  3. 内存映射:理解PE文件的内存布局对于动态分析至关重要。每个节区(section)都有其在内存中的虚拟地址和权限。

相关文章:

Windows逆向工程提升之二进制分析工具:HEX查看与对比技术

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 十六进制查看工具 应用于逆向工程的知识点 ​编辑 二进制对比工具 应用于逆向工程的知识点 十六进制查看工具 十六进制查看器是逆向工程的基础工具&#xff0c;它可以以十六进制格式…...

电脑A和电脑B都无法ping通电脑C网络,电脑C可以ping通电脑A和B,使用新系统测试正常,排除硬件问题。

主要硬件&#xff1a;研华AIMB-705主板、i5-6500 C机在防火墙高级设置里启用以下两项规则后&#xff0c;A/B机可正常访问C机网络。&#xff08;直接关闭防火墙也可解决此问题&#xff09; 文件和打印机共享 (回显请求 - ICMPv4-In) 核心网络诊断 - ICMP 回显请求 (ICMPv4-In)…...

【VMware】虚拟机运行 Linux Ubuntu、MAC 安装和配置

文章目录 一、VMware Workstation Pro 下载二、VMware Workstation Pro 安装三、Ubuntu Linux虚拟机镜像下载安装与配置 1、Ubuntu系统镜像下载 2、创建虚拟机&#xff08;VMware&#xff09;及硬件配置 3、编辑虚拟机设置 4、安装Ubuntu系统及系统…...

遨游科普:三防平板是什么?有什么作用?

在数字化与智能化浪潮席卷全球的今天&#xff0c;电子设备的可靠性已成为衡量其价值的核心标准之一。三防平板&#xff0c;这一“硬核”的工业设备&#xff0c;正凭借其卓越的环境适应能力&#xff0c;从专业领域走向大众视野&#xff0c;成为极端场景下不可或缺的数字化工具。…...

电脑闪屏可能的原因

1. 显示器 / 屏幕故障 屏幕排线接触不良&#xff1a;笔记本电脑屏幕排线&#xff08;屏线&#xff09;松动或磨损&#xff0c;导致信号传输不稳定&#xff0c;常见于频繁开合屏幕的设备。屏幕面板损坏&#xff1a;液晶屏内部灯管老化、背光模块故障或面板本身损坏&#xff0c;…...

VR 互动实训的显著优势​

&#xff08;一&#xff09;沉浸式学习&#xff0c;提升培训效果​ 在 VR 互动实训中&#xff0c;员工不再是被动的知识接受者&#xff0c;而是主动的参与者。以销售培训为例&#xff0c;员工戴上 VR 设备&#xff0c;就能置身于逼真的销售场景中&#xff0c;与虚拟客户进行面对…...

2025.05.19【Connectedscatter】连接散点图详解

How to add a legend to base R plot The legend() function allows to add a legend. See how to use it with a list of available customization. Image on the chart background The rasterImage function allows to add an image on the background of the chart. 文章目…...

C++之函数模板类模板

模板 1.泛型编程2. 函数模板函数模板概念函数模板的实例化模板参数的匹配原则 3.类模板类模板的定义格式类模板的实例化 4.模板的优缺点 C 模板是一种强大的泛型编程工具&#xff0c;它允许你编写与类型无关的代码&#xff0c;提高代码复用性。 1.泛型编程 先看一个我们之前经…...

《告别低效签约!智合同如何用AI重构商业“契约时代”》​​——解析智能合约技术的爆发与行业变革

在数字化浪潮奔涌的当下&#xff0c;合同作为商业活动的核心枢纽&#xff0c;正经历着智能化的深度变革。智合同-合同智能应用这一创新模式&#xff0c;犹如一颗璀璨的新星&#xff0c;在商业领域的天空中绽放出独特光芒&#xff0c;深刻改变着人们对合同管理与应用的认知和实践…...

Axure难点解决分享:垂直菜单展开与收回(4大核心问题与专家级解决方案)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:垂直菜单展开与收回 主要内容:超长菜单实现、展开与收回bug解释、Axure9版本限制等问题解…...

PCB设计教程【入门篇】——电路分析基础-基本元件(电阻电容电感)

前言 本教程基于B站Expert电子实验室的PCB设计教学的整理&#xff0c;为个人学习记录&#xff0c;旨在帮助PCB设计新手入门。所有内容仅作学习交流使用&#xff0c;无任何商业目的。若涉及侵权&#xff0c;请随时联系&#xff0c;将会立即处理 目录 前言 1.PCB原理图的作用…...

909. 蛇梯棋

https://leetcode.cn/problems/snakes-and-ladders/description/?envTypestudy-plan-v2&envIdtop-interview-150思路&#xff1a;题目要求我们使用最小的步数走到终点&#xff08;注意不能走回头路&#xff0c;传送不算&#xff09;&#xff0c;那我们的想法就很明确了&am…...

Redis学习打卡-Day4-Redis实现消息队列

Redis 基于阻塞队列实现秒杀的优化 新增秒杀优惠券的同时&#xff0c;将优惠券信息保存到 Redis 中。基于 Lua 脚本&#xff0c;判断秒杀库存、一人一单&#xff0c;决定用户是否抢购成功。如果抢购成功&#xff0c;将优惠券id和用户id封装后存入阻塞队列。开启独立线程任务&a…...

探索C++面向对象:从抽象到实体的元规则(上篇)

前引&#xff1a;在计算机科学的浩瀚星空中&#xff0c;面向对象编程&#xff08;OOP&#xff09; 无疑是照亮现代软件开发的核心范式。而 C 作为一门兼具高性能与抽象能力的系统级语言&#xff0c;其类与对象的语法设计更是开发者构建复杂系统的“元规则”。你是否曾困惑于 封…...

华为鸿蒙电脑发布,企业运营效率可以提高吗?

今日&#xff0c;科技圈迎来重磅消息&#xff0c;华为于19日在成都正式发布两款鸿蒙电脑&#xff0c;标志着鸿蒙操作系统首次登陆电脑端&#xff0c;这是中国国产操作系统的重大里程碑&#xff0c;更是中国电子信息产业自主可控进程中的关键一步。 鸿蒙操作系统作为首个统一移动…...

遨游科普:三防平板是什么?应用在什么场景?

在数字化转型的浪潮中&#xff0c;智能终端设备正从消费级市场向工业级场景深度渗透。传统平板电脑虽能满足日常需求&#xff0c;却难以应对极端环境下的挑战——暴雨、沙尘、震动、高温或低温等恶劣条件&#xff0c;往往成为数据采集、实时通讯和作业效率的“绊脚石”。在此背…...

图像中紫边出现原因

一、紫边 在实景调试中&#xff0c;我们经常会遇到高亮场景下的物体边缘分布有明显的紫边&#xff08;purple fringe&#xff09;现象, 就如下图所示&#xff1a; 对于紫边的成因&#xff0c;通常认为是镜头色差&#xff08;镜头对不同光谱光线的折射程度不同&#xff0c;导致不…...

中服云生产线自动化智能化调度生产系统:打造智能制造新标杆

前言 在当今制造业竞争日益激烈的背景下&#xff0c;实现生产线的自动化与智能化已成为企业提升竞争力的关键。作为国内技术领先的工业物联网平台、数字孪生、自动控制技术厂商&#xff0c;中服云凭借其深厚的技术积累和创新能力&#xff0c;打造了一套完整的生产线自动化智能…...

【电动汽车充电系统核心技术全解:从can通讯高压架构到800V超充未来】

标题&#xff1a;电动汽车充电系统核心技术全解&#xff1a;从高压架构到800V超充未来 目录 前言&#xff1a;开篇暴击&#xff1a;中国电动车年产670万辆背后&#xff0c;充电技术如何破局一、充电系统架构解剖&#xff1a;四大核心模块如何“打配合”&#xff1f;二、CAN总线…...

uniapp-商城-62-后台 商品列表(分类展示商品的布局)

每一个商品都有类别&#xff0c;比如水果&#xff0c;蔬菜&#xff0c;肉&#xff0c;粮油等等&#xff0c;另外每一个商品都有自己的属性&#xff0c;这些都在前面的章节进行了大量篇幅的介绍。这里我们终于完成了商品类的添加&#xff0c;商品的添加&#xff0c;现在到了该进…...

在嵌入式系统中, 一般链路层断开多久,断开TCP为好

一、典型场景与推荐策略 1. 实时性优先&#xff08;工业控制、自动化设备&#xff09; 需求&#xff1a;快速释放资源&#xff0c;避免因等待重传浪费内存或阻塞任务。 策略&#xff1a; 立即断开&#xff1a;在lwip_netif_link_callback中检测到链路断开后直接关闭TCP连接&a…...

解决 MySQL 错误 1356 (HY000)

当你遇到 ERROR 1356 (HY000): View mysql.user references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them 错误时&#xff0c;通常是由于 MariaDB 或 MySQL 版本更新导致的视图引用问题。 示例 UPDATE mysql.user SET H…...

【数据仓库面试题合集④】SQL 性能调优:面试高频场景 + 调优策略解析

随着业务数据规模的持续增长,SQL 查询的执行效率直接影响到数据平台的稳定性与数据产出效率。因此,在数据仓库类岗位的面试中,SQL 性能调优常被作为重点考察内容。 本篇将围绕常见 SQL 调优问题,结合实际经验,整理出高频面试题与答题参考,助你在面试中游刃有余。 🎯 高…...

机器学习第十七讲:PCA → 把100维数据压缩成3D视图仍保持主要特征

机器学习第十七讲&#xff1a;PCA → 把100维数据压缩成3D视图仍保持主要特征 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&#xff1a;超详细手把手指南 主…...

一个由微软开源的 Python 工具,用于将多种文件格式转换为 Markdown 格式

&#x1f4da; Markitdown 由微软开源的 Python 工具&#xff0c;用于将多种文件格式转换为 Markdown 格式 支持&#xff1a;PDF、PowerPoint、Word、Excel、图像、音频、HTML、文本格式&#xff08;CSV、JSON、XML&#xff09;、ZIP 文件的转换。 它旨在提供一个简单且灵活的…...

Python多进程、多线程、协程典型示例解析

一、multiprocessing&#xff08;多进程&#xff09; 1. 模块简介 作用&#xff1a;创建多个独立运行的进程&#xff08;每个进程有独立内存空间&#xff09;适用场景&#xff1a;数学计算、图像处理等CPU密集型任务核心原理&#xff1a;绕过Python的GIL锁&#xff0c;真正利…...

httpx[http2] 和 httpx 的核心区别及使用场景如下

httpx[http2] 和 httpx 的核心区别在于 HTTP/2 协议支持&#xff0c;具体差异及使用场景如下&#xff1a; 1. 功能区别 命令/安装方式协议支持额外依赖适用场景pip install httpx仅 HTTP/1.1无通用请求&#xff0c;轻量依赖pip install httpx[http2]支持 HTTP/2需安装 h2>3…...

[强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程-下

[强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程-下 2.6 矩阵-向量形式2.7 求解状态值2.7.1 方法1&#xff1a;解析解2.7.2 方法2&#xff1a;数值解2.7.3 示例 2.8 动作值2.8.1 示例2.8.2 基于动作值的贝尔曼方程 本人为强化学习小白&#xff0c;为了在后续科研的过程…...

c/c++数据类型转换.

author: hjjdebug date: 2025年 05月 18日 星期日 20:28:52 CST descrip: c/c数据类型转换. 文章目录 1. 为什么需要类型转换?1.1 发生的时机:1.2 常见的发生转换的类型: 2. c语言的类型转换: (Type) value2.1 c语言的类型变换是如何实现的? 规则是什么? 3. c 的static_cast…...

大语言模型训练数据格式:Alpaca 和 ShareGPT

在大规模语言模型&#xff08;LLM&#xff09;的开发中&#xff0c;训练数据的质量和格式起着至关重要的作用。为了更好地理解和构建高质量的数据集&#xff0c;社区发展出了多种标准化的数据格式。其中&#xff0c;Alpaca 和 ShareGPT 是两种广泛使用的训练数据格式&#xff0…...

C++(23):容器类<vector>

目录 一、核心概念 二、基本语法 1. 头文件 2. 声明与初始化 三、常用操作 四、具体实例 1、size()、front()、back() 2、push_back()、pop_back()、capacity() 3、reserve&#xff08;&#xff09; 一、核心概念 Vectors 包含着一系列连续存储的元素,其行为…...

Nginx配置中include mime.types的作用及正确配置mime类型

部署应用后发现页面没有正确加载CSS样式文件&#xff0c;通过检查nginx配置文件&#xff0c;发现nginx有一项配置include mime.type没有正确配置导致。 http {log_format main $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent &q…...

C++ 之 继承

1.继承的概念及定义 1.1继承的引入 我们设计一个person类&#xff0c;类中包含姓名、年龄、身高....等数据成员 我们再设计一个student类&#xff0c;类中也需要包含姓名、年龄、身高...等数据成员 我们再设计一个teacher类&#xff0c;类中也需要包含姓名、年龄、身高...等数…...

基于CNN的猫狗识别(自定义CNN模型)

目录 一&#xff0c;数据集介绍 1.1 数据集下载 1.2 数据集简介 二&#xff0c;模型训练 2.1 用到的模块 2.2 设置随机种子 2.3 图像的预处理 2.4 CNN模型层结构 2.5 初始化 2.6 训练和验证 三&#xff0c;模型测试 3.1 定义相同预处理 3.2 定义相同的层结构 3.3…...

互联网大厂Java面试场景:从Spring Boot到分布式缓存技术的探讨

互联网大厂Java面试场景&#xff1a;从Spring Boot到分布式缓存技术的探讨 场景描述 互联网大厂某次Java开发岗面试&#xff0c;主考官是一位严肃的技术专家&#xff0c;而应聘者则是搞笑的程序员“码农明哥”。面试围绕音视频场景的技术解决方案展开&#xff0c;探讨从Sprin…...

linux本地部署ollama+deepseek过程

1.Tags ollama/ollama GitHub 选择一个版本下载&#xff0c;我下的是0.5.12 2.tar解压该文件 3.尝试启动ollama ollama serve 4.查看ollama的版本 ollama -v 5.创建一个系统用户 ollama&#xff0c;不允许登录 shell&#xff0c;拥有一个主目录&#xff0c;并且用…...

【数据结构与算法】ArrayList 与顺序表的实现

目录 一、List 接口 1.1 List 接口的简单介绍 1.1 常用方法 二、顺序表 2.1 线性表的介绍 2.2 顺序表的介绍 2.3 顺序表的实现 2.3.1 前置条件:自定义异常 2.3.2 顺序表的初始化 2.3.2 顺序表的实现 三、ArrayList 实现类 3.1 ArrayList 的两种使用方式 3.2 Array…...

Vue 3.0 中的slot及使用场景

1. 基本概念 在 Vue 中&#xff0c; slot 用于定义组件中的插槽位置&#xff0c;外部的内容会被插入到组件内部的这个位置。插槽的内容是动态的&#xff0c;可以根据需要进行传递和渲染。它允许开发者在组件外部传递任意内容&#xff0c;并在组件内部进行渲染&#xff0c;主要…...

go语言协程调度器 GPM 模型

go语言协程调度器 GPM 模型 下面的文章将以几个问题展开&#xff0c;其中可能会有扩展处&#xff1a; 什么是调度器&#xff1f;为什么需要调度器&#xff1f; 多进程/多线程时cpu怎么工作&#xff1f; 进程/线程的数量多多少&#xff1f;太多行不行&#xff1f;为什么不行&…...

Python打卡 DAY 29

知识点回顾 1. 类的装饰器 2. 装饰器思想的进一步理解&#xff1a;外部修改、动态 3. 类方法的定义&#xff1a;内部定义和外部定义 作业&#xff1a;复习类和函数的知识点&#xff0c;写下自己过去29天的学习心得&#xff0c;如对函数和类的理解&#xff0c;对python这门工…...

C++控制结构详解:if-else、switch、循环(for/while/do-while)

1. 引言 在C编程中&#xff0c;控制结构用于控制程序的执行流程。它们决定了代码在什么条件下执行、如何重复执行某段代码&#xff0c;以及如何选择不同的执行路径。C提供了多种控制结构&#xff0c;主要包括&#xff1a; 条件语句&#xff1a;if-else、switch-case循环语句&…...

APP手机端测试覆盖点

通过上图&#xff0c;我们覆盖了完整的一个APP&#xff0c;需要进行哪些测试...

C++:⾯向对象的三⼤特性

面向对象的三大特性&#xff1a; 继承&#xff1a;允许一个类&#xff08;子类 / 派生类&#xff09;继承另一个类&#xff08;父类 / 基类&#xff09;的属性和方法&#xff0c;实现代码复用和层次化设计。 封装&#xff1a;将数据&#xff08;成员变量&#xff09;和操作数据…...

三、高级攻击工具与框架

高级工具与框架是红队渗透的核心利器&#xff0c;能够实现自动化攻击、权限维持和隐蔽渗透。本节聚焦Metasploit、Cobalt Strike及企业级漏洞利用链&#xff0c;结合实战演示如何高效利用工具突破防御并控制目标。 1. Metasploit框架深度解析 定位&#xff1a;渗透测试的“瑞…...

玄机-第二章日志分析-redis应急响应

前言 记录记录 关于redis的一些手法 redis未授权访问漏洞利用redis写webshell利用“公私钥” 认证获取root权限利用crontab反弹shellredis日志: /var/log/redis.log 1. 通过本地 PC SSH到服务器并且分析黑客攻击成功的 IP 为多少,将黑客 IP 作为 FLAG 提交; cd /var/log 查看…...

MoodDrop:打造一款温柔的心情打卡单页应用

我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 起心动念&#xff1a;我想做一款温柔的情绪应用 「今天的你&#xff0c;心情如何&#xff1f;」 有时候&#x…...

Web开发-JavaEE应用SpringBoot栈SnakeYaml反序列化链JARWAR构建打包

知识点&#xff1a; 1、安全开发-JavaEE-WAR&JAR打包&反编译 2、安全开发-JavaEE-SnakeYaml反序列化&链 一、演示案例-WEB开发-JavaEE-项目-SnakeYaml序列化 常见的创建的序列化和反序列化协议 • &#xff08;已讲&#xff09;JAVA内置的writeObject()/readObje…...

RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍

视频讲解&#xff1a; RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试&#xff0c;踩坑介绍 今天测试下V2D&#xff0c;这是K1特有的硬件级别的2D图像加速器&#xff0c;参考如下文档&#xff0c;但文档中描述的部分有不少问题&#xff0c;后面会讲下 https://bianbu-linux.spa…...

学习!FastAPI

目录 FastAPI简介快速开始安装FastApiFastAPI CLI自动化文档 Reqeust路径参数Enum 类用于路径参数路径参数和数值校验 查询参数查询参数和字符串校验 请求体多个请求体参数嵌入单个请求体参数 CookieHeader表单文件直接使用请求 ResponseResponse Model多个关联模型 响应状态码…...

【Python 算法零基础 4.排序 ① 选择排序】

就算经历各番碰撞&#xff0c;幸运也将一直站在我这边 —— 25.5.18 一、引言 选择排序(Selection Sort) 是一种简单直观的排序算法。它首先在未排序序列中找到最小(大)元素&#xff0c;存放到排序序列的起始位置&#xff0c;然后&#xff0c;再从剩余未排序元素中继续寻找最小…...