20232803 2023-2024-2 《网络攻防实践》实践八报告

目录

    • 1. 实践内容
    • 2. 实践过程
      • 2.1 动手实践任务一
      • 2.2 动手实践任务二:分析Crackme程序
        • 2.2.1 crackme1.exe
        • 2.2.2 crackme2.exe
      • 2.3 分析实践任务一
      • 2.4 分析实践任务二
    • 3. 学习中遇到的问题及解决
    • 4. 学习感悟、思考等

1. 实践内容

  • 动手实践任务一:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者。

  • 动手实践任务二:分析Crackme程序

    • 任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
  • 分析实践任务一:分析一个自制恶意代码样本rada,并撰写报告,回答问题。

  • 分析实践任务二:Windows 2000系统被攻破并加入僵尸网络

    • 任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置,并回答问题。

2. 实践过程

2.1 动手实践任务一

具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

  • 在学习通中下载rada.rar压缩包,解压密码为rada,将压缩包中的两个文件粘贴到WinXPattacker中。

注:如无法粘贴可先为WinXPattacker安装VMware Tools
在这里插入图片描述

  • 在命令行窗口中输入以下命令查看RaDa.exe的文件格式
cd 桌面
file RaDa.exe

在这里插入图片描述
根据命令结果可知,RaDa.exe是PE32位的可执行文件,具有微软Windows系统的GUI界面,系统架构为英特尔80386系列,运行在32位Windows系统上

  • 输入命令strings RaDa.exe查看RaDa.exe文件恶意代码字符串
    在这里插入图片描述
    如上图所示,前面的字符串都是一些乱码,而最后出现了两个dll文件和三个没有文件名后缀的文件,根据这三个文件的文件名,猜测是程序或函数

  • 输入命令RaDa --authors查看作者信息
    在这里插入图片描述

  • 输入命令RaDa.exe --authors查看作者信息
    在这里插入图片描述
    可以发现以上两个命令显示的作者信息是一致的

  • 按如下步骤打开PEid工具
    在这里插入图片描述

  • 打开PEid工具后,点击文件右侧的按钮,打开RaDa.exe文件
    在这里插入图片描述

  • 打开后,根据提供的信息可知RaDa.exe文件的加壳为UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
    在这里插入图片描述

  • 打开超级巡警虚拟机脱壳器
    在这里插入图片描述

  • 点击文件右侧的按钮选择文件RaDa.exe
    在这里插入图片描述

  • 点击右侧脱壳按钮,脱壳后的文件将保存到RaDa.exe同一目录下
    在这里插入图片描述

  • 在命令行窗口中输入strings RaDa_unpacked.exe查看脱壳后的文件里的字符串
    在这里插入图片描述
    可以看到输出结果中有大量的函数调用名,但仅知道这些还不够,还需要进行反汇编

  • 打开反汇编软件IDA Pro Free
    在这里插入图片描述

  • 点击New按钮
    在这里插入图片描述

  • 选择PE Executable,打开桌面上的RaDa_unpacked.exe文件
    在这里插入图片描述

  • 打开后如下图
    在这里插入图片描述

  • 我们重点关注右下角的strings窗口,将该窗口最大化
    在这里插入图片描述
    可以发现在该软件里看到的字符串与命令行窗口里的字符串相同

  • 修改编码格式:在strings窗口中右键,点击Setup,将Unicode勾选上,点击OK完成
    在这里插入图片描述

  • 可以看到字符串发生变化了
    在这里插入图片描述

  • 下拉,在地址JDR0:00402D04处,找到了作者信息
    在这里插入图片描述

  • 与命令RaDa.exe --authors得到的作者信息进行比对
    在这里插入图片描述
    可以发现,该作者信息与命令得到的作者信息一致,作者为Raul Siles & David Perez

2.2 动手实践任务二:分析Crackme程序

  • 在学习通中下载crackme1.execrackme2.exe文件,传入WinXPattacker虚拟机
2.2.1 crackme1.exe
  • 打开命令行窗口,运行crackme1.exe,并依次输入不同的参数,根据输出的结果来猜测程序所需的特定输入
    在这里插入图片描述
    根据返回结果很难看出程序需要什么参数

  • 打开反汇编软件IDA Pro Free,新建一个PE Executable分析界面,对crackme1.exe进行分析
    在这里插入图片描述

  • 打开右下角的strings窗口
    在这里插入图片描述
    可以看到该程序有四种输出语句,而刚才在命令行窗口中只试探出其中的两种,我们还需要找出另外两种输出的特定输入

  • 打开IDA View-A窗口,然后依次点击页面上方的View - Graphs - Function calls查看函数调用图
    在这里插入图片描述
    可以看到输出函数printfsub_401280调用,sub_401280还调用了strcmp函数,应该是用于判断输入与密码是否一致

  • 查看sub_401280代码块
    在这里插入图片描述

  • 依次点击页面上方的View - Graphs - Flow Chart 查看代码流程图
    在这里插入图片描述
    结合之前我们在命令行窗口中做的尝试,根据以上汇编代码我们可以得知:

    • sub_401280先判断输入的参数个数
      • 如果参数个数不为一个,则跳转到false分支,调用fprintf输出I think you are missing something.
      • 如果参数个数为一个,则跳转到true分支
        • 调用strcmp判断输入是否为I know the secret,如果不是则跳转到下一false分支,输出Pardon?What did you say?
        • 如果输入是I know the secret,则跳转到下一true分支,输出You know how to speak to programs,Mr.Reverse—Engineer
  • 验证我们的分析:在命令行窗口中输入crackme1.exe “I know the secret”

注:I know the secret需要加上双引号

在这里插入图片描述
根据输出结果可知验证成功

2.2.2 crackme2.exe

注:分析crackme2.exe的过程与分析crackme1.exe的过程基本一致,下面仅作一些必要的介绍

  • 在命令行窗口观察不同的输入对应输出的区别
    在这里插入图片描述

  • 使用IDA Pro Free打开crackme2.exe,查看Strings窗口
    在这里插入图片描述
    可以看到有五种输出结果

  • 查看函数调用图
    在这里插入图片描述
    可以看到fprintfstrcmp等函数被sub_401280调用

  • 查看代码流程图
    在这里插入图片描述
    结合之前我们在命令行窗口中做的尝试,根据以上汇编代码我们可以得知:

    • sub_401280先判断输入的参数个数
      • 如果参数个数不为一个,则跳转到false分支,调用fprintf输出I think you are missing something.
      • 如果参数个数为一个,则跳转到true分支
        • 调用strcmp判断调用的文件名是否为crackmeplease.exe,如果不是则跳转到下一false分支,输出I hava an identity problem.
        • 如果调用的文件名是crackmeplease.exe,则跳转到下一true分支
          • 调用strcmp判断输入是否为I know the secret,如果不是则跳转到下一false分支,输出Pardon?What did you say?
          • 如果输入是I know the secret,则跳转到下一true分支,输出正确语句
  • 验证我们的分析:将crackme2.exe文件名改为crackmeplease.exe,在命令行窗口中输入crackmeplease.exe “I know the secret”
    在这里插入图片描述
    根据输出结果可知验证成功

2.3 分析实践任务一

  • 输入命令md5sum RaDa.exe获取RaDa.exe文件的MD5值
    在这里插入图片描述
  • 双击运行脱壳后的RaDa_unpacked.exe文件,然后打开监视工具Process Explorer,用于监听RaDa_unpacked.exe
    在这里插入图片描述
  • Process Explorer中打开RaDa_unpacked.exe,点击Strings查看监听到的字符串信息
    • 根据图中信息可知,该程序先访问了http://10.10.10.10/RaDa,请求了RaDa_commands.html页面,进行一些下载和上传的操作
    • 并且还检查了是否在VMware虚拟机环境下,发现不是,开始进行DDoS Smurf攻击
    • 此外,还修改了注册表,通过Wscript.Shell进行操作,将RaDa.exe设为开机自动启动
      在这里插入图片描述
    • 之后还攻击了192.168172.1610三个内网网段
    • 这里还能看到该程序的所有者为Raul Siles & David Perez,于2004年9月编写该程序
      在这里插入图片描述

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;

摘要为caaa6985a43225a0b3add54f44a0d4c7

2、找出并解释这个二进制文件的目的;

  • 访问http://10.10.10.10/RaDa,请求该网站上的页面,进行下载和上传的操作
  • 实施DDoS Smurf攻击
  • 修改注册表,将RaDa.exe设为开机自动启动
  • 攻击192.168172.1610三个内网网段

3、识别并说明这个二进制文件所具有的不同特性;

  • 会将文件下载到C盘指定目录
  • 实施DDoS Smurf攻击
  • RaDa.exe设为开机自动启动

4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;

  • 使用了UPX加壳技术,不先进行脱壳而直接分析的话,会得到许多乱码结果

5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;

  • 该恶意程序通过修改注册表来实现开机自动运行,通过连接到特定的网站来下载文件,并在系统中留下后门,从而允许攻击者远程控制受影响的主机。此外,该程序实施DDoS攻击,其目的是使主机失去响应。该恶意程序并不通过自我复制来传播,也不伪装成合法程序诱使用户执行,因此它是蠕虫或木马。因此,该恶意软件应被归类为后门程序。

6、给出过去已有的具有相似功能的其他工具;

  • 木马Bobax
  • 特洛伊木马Setiri

7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

  • 作者为Raul Siles & David Perez
    • 命令行输入RaDa --authorsRaDa.exe --authors
    • 反编译该脱壳文件RaDa_unpacked.exe
    • 使用监视工具Process Explorer进行监听

2.4 分析实践任务二

  • 在学习通下载botnet_pcap_file.dat文件,传入Kali虚拟机中
  • 右键botnet_pcap_file.dat文件选择使用Wireshark打开,进行分析
    在这里插入图片描述
    可以看到,里面有各种协议的数据包,且ip地址也是多种多样

1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送哪些消息?IRC一般使用哪些TCP端口?

  • IRC(Internet Relay Chat)是一种主要用于实时文本通信的在线聊天系统,它允许用户在不同的“频道”上进行交流。
  • 当IRC客户端申请加入一个IRC网络时,它会发送一个用户认证消息,通常包括用户的昵称、用户标识和其他可能的认证信息。这个过程遵循IRC协议,客户端会与服务器进行一系列的通信,以完成注册、登录和加入频道等操作。
  • IRC一般使用的TCP端口是6667和6697。端口6667通常用于未加密的IRC通信,而端口6697通常用于TLS/SSL加密的IRC通信,提供更安全的数据传输。

2、僵尸网络是什么?僵尸网络通常用于什么?

  • 僵尸网络(Botnet)是由大量被恶意软件感染并被黑客远程控制的计算机组成的网络。这些计算机被称为“僵尸”,因为它们在不知情的用户控制之外执行黑客的命令。僵尸网络的控制者,即僵尸主控机(Botmaster),可以通过命令与控制(Command and Control,C&C)服务器向bot发布命令,使僵尸网络执行特定的恶意行为。

  • 僵尸网络通常用于以下目的:

    • 分布式拒绝服务攻击(DDoS):通过向目标网站或服务器发送大量请求,使其无法处理合法用户的访问,导致服务不可用。
    • 垃圾邮件发送:利用被感染的计算机发送大量的垃圾邮件,包括诈骗邮件和恶意软件分发。
    • 加密货币挖矿:利用僵尸网络中的计算机进行加密货币挖矿,而不经过设备所有者的同意。
    • 数据盗窃:窃取被感染计算机上的敏感信息,如银行账户密码、信用卡信息等。
    • 勒索软件传播:通过电子邮件附件或其他方式传播勒索软件,要求受害者支付赎金以恢复其数据或设备。
    • 间谍软件活动:监视用户的活动并收集敏感数据,然后将其发送回攻击者。
    • 投票欺诈:在在线投票系统中,使用僵尸网络模拟大量独立用户进行欺诈性投票。

3、蜜罐主机(IP地址:172.16.134.191)与哪些IRC服务器进行了通信?

  • 输入ip.src == 172.16.134.191 && tcp.port == 6667筛选数据包
    在这里插入图片描述
    根据筛选后得到的数据包可知,蜜罐主机与IRC服务器209.126.161.2966.33.65.5863.241.174.144217.199.175.10209.196.44.172进行了通信

4、在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?

  • 输入命令sudo apt-get install tcpflow 安装tcpflow
    在这里插入图片描述
  • 输入命令sudo tcpflow -r Desktop/botnet_pcap_file.dat "host 209.196.44.172 and port 6667"对样本进行分流
    在这里插入图片描述
  • 分流后得到两个数据文件172.016.134.191.01152-209.196.044.172.06667209.196.044.172.06667-172.016.134.191.01152,以及一份报告report.xml
    在这里插入图片描述
  • 输入以下命令来计算209.196.044.172.06667-172.016.134.191.01152文件中有多少主机访问了209.196.044.172
sudo cat 209.196.044.172.06667-172.016.134.191.01152 | grep -a "^:irc5.aol.com 353" | sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x ://g" | tr ' ' '\n' | tr -d "\15" | grep -v "^$" | sort -u | wc -l
# grep 取出昵称
# sed 去除前缀
# tr 将空格转换为新行
# tr -d 去除\r
# grep -v "^$" 去除空行
# sort -u 排序并去重
# wc 计算行数

在这里插入图片描述
结果为:有3461个不同的主机访问了以209.196.44.172为服务器的僵尸网络

5、哪些IP地址被用于攻击蜜罐主机?

  • 输入以下命令找出所有连接蜜罐主机的IP地址,将结果输出到IP.txt文件中,并输入IP地址的个数
tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > IP.txt;wc -l IP.txt

在这里插入图片描述
可以看到输出165,表示有165个IP被用于攻击蜜罐主机

  • 打开IP.txt文件即可查看这165个被用于攻击蜜罐主机的IP地址
    在这里插入图片描述

6、攻击者尝试攻击了哪些安全漏洞?

  • 使用Tcpdump工具筛选出蜜罐主机有哪些端口是响应的

    • 输入命令tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and tcp[tcpflags]== 0x12 | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq筛选TCP端口
    • 输入命令tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq筛选UDP端口
      在这里插入图片描述
      可以看到相应的TCP端口有135、139、25、445、4899、80,而响应的UDP端口只有137
  • 135端口:在Wireshark中输入tcp.port == 135进行筛选
    在这里插入图片描述
    在筛选后的数据包中只有一些TCP三次握手过程的数据包,没有数据的交互

  • 139端口:输入tcp.port == 139进行筛选
    在这里插入图片描述
    在筛选后的数据包中有许多TCP、SMB和NBSS类型的数据包,但没有关于攻击或漏洞的信息

  • 25端口:输入tcp.port == 25进行筛选
    在这里插入图片描述
    在筛选后的数据包中只有一些TCP三次握手过程的数据包,没有数据的交互

  • 445端口:输入tcp.port == 445进行筛选
    在这里插入图片描述
    在筛选后的数据包中发现了可执行文件PSEXESVC.EXE,查阅资料可知这是一种蠕虫病毒的特征码

    • 攻击者拿到ADMIN权限
      在这里插入图片描述
    • 攻击者拿到Administrator权限
      在这里插入图片描述
      攻击者攻击成功,拿到了管理员权限,导致被远程控制
  • 4899端口:输入tcp.port == 4899进行筛选
    在这里插入图片描述
    在筛选后的数据包中只有一些TCP三次握手过程的数据包,没有数据的交互

  • 80端口:输入tcp.port == 80进行筛选
    在这里插入图片描述
    在筛选后的数据包中发现有一数据包中含有CCCCCCCC...填充数据,这是攻击者在尝试缓冲区溢出攻击

    • 追踪TCP流
      在这里插入图片描述
    • 追踪HTTP流
      在这里插入图片描述
      发现并没有后续,说明攻击者失败了
  • 137端口:输入udp.port == 137进行筛选
    在这里插入图片描述
    在筛选后的数据包中发现只有NBNS包,NBNS是网络基本输入/输出系统(NetBIOS)的一部分,主要负责在基于NetBIOS名称访问的网络上提供主机名和地址映射服务

7、哪些攻击成功了?是如何成功的?

  • 根据刚才第六个问题中的抓包分析可知,只有445端口攻击成功,攻击者通过PSEXESVC.EXE可执行文件,获取了目标主机的管理员权限,从而控制了目标主机

3. 学习中遇到的问题及解决

  • 问题描述:在Kali中安装tcpflow时报错
    在这里插入图片描述
  • 解决方案:发现连接实验室网线时,Kali会提示没有网络,因此将网线拔出,改为连接手机热点

4. 学习感悟、思考等

通过这次实践,我深刻体会到了恶意代码分析和逆向工程的复杂性与重要性。在分析Rada恶意代码样本和Crackme程序的过程中,锻炼了我脱壳、字符串提取、反汇编及逻辑思维的能力;在分析网络数据源的过程中,面对大量的数据,我学会了如何筛选和识别关键信息,通过对数据包的深入分析,我能够理解攻击者的策略和行为模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/591447.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python编程实践1/3】模块

目录 目标 模块 import ​编辑 代码小结 题目 from...import 随机模块 代码小结 randint函数 骰子大战 choice函数 总结 目标 拧一颗螺丝,只会用到螺丝刀;但是修一台汽车,需要一整套汽修的工具。函数就像螺丝刀,可以帮…

Go实战训练之Web Server 与路由树

Server & 路由树 Server Web 核心 对于一个 Web 框架,至少要提供三个抽象: Server:代表服务器的抽象Context:表示上下文的抽象路由树 Server 从特性上来说,至少要提供三部分功能: 生命周期控制&…

FIFO Generate IP核使用——Native读写接口信号详解

Native FIFO接口信号是用于FIFO IP核与外部电路进行通信的信号。当FIFO支持独立的写和读时钟时,这些信号可以包括标准端口和可选端口。 1 当FIFO具有独立时钟时的接口信号 当FIFO具有独立的时钟时,其接口信号会相应地有所变化。特别是关于复位信号rst…

Hibernate入门学习

目录 1、ORM思想概述 2、自定义ORM框架 3、第一个Hibernate程序开发步骤(重要) 1)下载完整包 2)创建项目,导入所需jar包 3)建立student表 4)创建和student表对应的Student实体类 5&…

postman中百度preview无法加载的解决方案

问题 在使用postman关联时,百度接口与天气接口已使用glb_city关联,但在百度接口发送请求时,发现preview无法加载 解决方案 1、进入百度 百度全球领先的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超过千亿的中…

基于Springboot的民航网上订票系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的民航网上订票系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

vue3 + ts 快速入门(全)

文章目录 学习链接1. Vue3简介1.1. 性能的提升1.2.源码的升级1.3. 拥抱TypeScript1.4. 新的特性 2. 创建Vue3工程2.1. 基于 vue-cli 创建2.2. 基于 vite 创建(推荐)vite介绍创建步骤项目结构安装插件项目结构总结 2.3. 一个简单的效果Person.vueApp.vue …

11个2024年热门的AI编码助手

大家好,人工智能(AI)领域的大型语言模型(LLMs)已经逐渐发展成熟,并且深入到了我们日常的工作当中。在众多AI应用中,编码助手尤为突出,是开发人员编写更高效、准确无误代码的必备辅助…

docker原理

Docker原理 在前面我们学习了Docker,接下来我们探究一下Docker的底层技术原理 Linux 命名空间(namespace)、控制组(cgroups)和 联合文件系统(UnionFS) 三大技术支撑了目前 Docker 的实现&…

STM32入门学习之DMA

1.直接存储访问DMA(Direct Memory Access):DMA传输不需要CPU的参与,直接在内存和I/O设备间开辟了一条新的数据传输通道,不仅提高数据传输的速率,还因为不需要CPU的干预,从而提高了CPU的利用率。(注:文中的资…

OpenCV如何在图像中寻找轮廓(60)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV如何模板匹配(59) 下一篇 :OpenCV检测凸包(61) 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 cv::findContours使用 OpenCV 函数 cv::d rawContours …

基于SSM的校园短期闲置资源置换平台(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的校园短期闲置资源置换平台(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过…

英语语法动词和动词的虚拟语气

动词 谓语动词的三大功能:时、态、气 1、时 和 态 的组合构成了英语的 16 种时态。 2、气 表示的是动作的情感和假设。

uboot-网络配置

文章目录 一、网络简介二、修改PHY芯片地址三、删除 uboot 中 74LV595 的驱动代码1.删除宏定义,添加ENET1和ENET2复位引脚,宏定义2.删除内容如下 四、添加 I.MX6U-ALPHA 开发板网络复位引脚驱动 一、网络简介 💦I.MX6UL/ULL 内部有个以太网 …

perl:用 MIDI::Simple 生成midi文件,用 pygame 播放 mid文件

在 csdn.net 下载 strawberry-perl-5.32.1.1-64bit.zip 解压安装在 D:\Strawberry\ 运行 cpan install MIDI::Simple D:\Strawberry\c\bin\gmake.exe test -- OK Running make install for CONKLIN/MIDI-Perl-0.84.tar.gz Installing D:\Strawberry\perl\site\lib\MIDI.pm I…

算法打卡day40

今日任务: 1)139.单词拆分 2)多重背包理论基础(卡码网56携带矿石资源) 3)背包问题总结 4)复习day15 139单词拆分 题目链接:139. 单词拆分 - 力扣(LeetCode) …

【数据库原理及应用】期末复习汇总高校期末真题试卷

试卷 一、填空题 1.________是位于用户与操作系统之间的一层数据管理软件。 2.数据库系统的三级模式结构是指________、________、________。 3.数据库系统的三种数据模型是________ 、________、________。 4.若关系中的某一属性组的值能唯一地标识一个元组,则…

项目管理-项目进度管理3/3

项目管理:每天进步一点点~ 活到老,学到老 ヾ(◍∇◍)ノ゙ 何时学习都不晚,加油 项目进度管理:需掌握 ITTO, 搞懂计算图,问题和解决方案。 项目进度管理6个过程,包括(口…

Qt5.15.2安装Android开发环境。

下载Java 8,不要下Java 20 jdk8 安装跟着默认走就行:C:\Program Files\Java 需要将QtCreator的sdk_definitions.json文件修改一下 “cmdline-tools;latest” 修改为 “cmdline-tools;6.0” 在一个非中文路径,建立一个android-sdk-windows空…

MATLAB 微积分

MATLAB 微积分 MATLAB提供了多种方法来解决微分和积分问题,求解任意程度的微分方程式以及计算极限。最重要的是,您可以轻松求解复杂函数的图,并通过求解原始函数及其导数来检查图上的最大值,最小值和其他文具点。 本章将讨论微…