amass:深入攻击面映射和资产发现工具!全参数详细教程!Kali Linux教程!

简介

OWASP Amass 项目使用开源信息收集和主动侦察技术执行攻击面网络映射和外部资产发现。

此软件包包含一个工具,可帮助信息安全专业人员使用开源信息收集和主动侦察技术执行攻击面网络映射并执行外部资产发现。

使用的信息收集技术

技术数据来源
APIs(应用程序接口)360PassiveDNS, Ahrefs, AnubisDB, BeVigil, BinaryEdge, BufferOver, BuiltWith, C99, Chaos, CIRCL, DNSDB, DNSRepo, Deepinfo, Detectify, FOFA, FullHunt, GitHub, GitLab, GrepApp, Greynoise, HackerTarget, Hunter, IntelX, LeakIX, Maltiverse, Mnemonic, Netlas, Pastebin, PassiveTotal, PentestTools, Pulsedive, Quake, SOCRadar, Searchcode, Shodan, Spamhaus, Sublist3rAPI, SubdomainCenter, ThreatBook, ThreatMiner, URLScan, VirusTotal, Yandex, ZETAlytics, ZoomEye
Certificates(证书)Active pulls (可选), Censys, CertCentral, CertSpotter, Crtsh, Digitorus, FacebookCT
DNS(域名系统)Brute forcing, Reverse DNS sweeping, NSEC zone walking, Zone transfers, FQDN alterations/permutations, FQDN Similarity-based Guessing
Routing(路由)ASNLookup, BGPTools, BGPView, BigDataCloud, IPdata, IPinfo, RADb, Robtex, ShadowServer, TeamCymru
Scraping(爬取)AbuseIPDB, Ask, Baidu, Bing, CSP Header, DNSDumpster, DNSHistory, DNSSpy, DuckDuckGo, Gists, Google, HackerOne, HyperStat, PKey, RapidDNS, Riddler, Searx, SiteDossier, Yahoo
Web Archives(Web 档案库)Arquivo, CommonCrawl, HAW, PublicWWW, UKWebArchive, Wayback
WHOIS((读作“Who is”,而非缩写)是用来查询互联网中域名的IP以及所有者等信息的传输协议。)AlienVault, AskDNS, DNSlytics, ONYPHE, SecurityTrails, SpyOnWeb, WhoisXMLAPI

安装

二进制文件安装

通过以下命令来获取文件的压缩包。

wget https://github.com/owasp-amass/amass/releases/download/v4.1.0/amass_Linux_amd64.zip

通过 ls 命令可以看到已经下载成功了,出现了一个 zip 的文件,解压缩这个文件。解压完成后会出现一个文件夹。

ls
unzip unzip amass_Linux_amd64.zip
ls

进入目录并查看

cd amass_Linux_amd64/
ls

运行以下命令,如果出现这个界面,就说明安装成功了。

./amass -h

Docker安装

通过以下命令克隆项目源码,建议请先提前挂好代理。

git clone https://github.com/owasp-amass/amass.git

进入目录并查看

cd amass
ls

拉取 golang 镜像

sudo docker pull golang:1.19-alpine

 

拉取 alpine 镜像

sudo docker pull alpine

 

修改一下Dockerfile,添加上代理。建议加代理,不然可能会报错不成功。

#用 vim 工具去编辑文件。
vim Dockerfile#在代码
FROM golang:1.19-alpine as build
#后面添加上ARG HTTP_PROXY
ARG HTTPS_PROXYENV HTTP_PROXY=${HTTP_PROXY}
ENV HTTPS_PROXY=${HTTPS_PROXY}
ENV http_proxy=${HTTP_PROXY}
ENV https_proxy=${HTTPS_PROXY}

构建 Docker 镜像

sudo docker build --build-arg HTTP_PROXY=http://ip地址:端口 --build-arg HTTPS_PROXY=http://ip地址:端口 -t amass .

输入以下命令,如果出现这个界面的话,就说明安装成功了。

sudo docker run -it amass -h

源码安装

确保您已正确配置 Go 1.14 及以上版本的环境。如果还未安装的话,可以通过以下命令来进行安装

sudo apt install golang -y

验证版本

go version

克隆项目源码并进入目录

git clone https://github.com/owasp-amass/amass.git
cd amass
ls

为 go 配置国内代理

go env -w GOPROXY=https://goproxy.cn
go env

安装

go install ./...

安装完成后,生成的可执行文件在 go/bin 文件夹里面。

cd go/bin/
ls

运行以下命令,如果出现这个界面就说明安装成功了。

./amass -h

APT 包管理器安装

Kali Linux 默认已经安装好 amass 工具了。如果还未安装的话,也可以通过以下命令来进行安装

sudo apt install amass

使用

1. -h

显示程序使用信息

amass -h

2. -help

显示程序使用信息

amass -help

 

3. -version

打印此 Amass 二进制文件的版本号

amass -version

注意:amass的字典文件位于

amass/examples/wordlists

子命令

amass 包含 5 个子命令,换句话说,就是功能:

  • amass intel——发现枚举目标
  • amass enum——执行枚举和网络映射
  • amass viz——可视化枚举结果
  • amass track——跟踪枚举之间的差异
  • amass db——操作 Amass 图形数据库

在某些情况下,Amass 的子命令可以结合使用,这允许您创建执行多个 Amass 操作的脚本。

作为其子域名发现和信息收集技术的一部分,它支持 55 个来源,例如 API 和网站。

它采用各种信息收集技术进行 DNS 枚举

  • 使用域名词表和修改词表对子域名进行暴力破解
  • 通过读取 SSL/TLS 证书、执行 DNS 区域传输或检查证书透明度日志来识别子域名
  • 在已识别的域名上进行递归子域名发现
  • 使用 Hashcat 风格的掩码对子域名进行暴力破解(如果您拥有关于命名约定等的内部信息,这将非常有用)

可以使用配置文件进行配置,这使得它易于维护、使用或与脚本集成

Amass Intel

Amass intel 子命令(或者说模块)可以帮助收集有关该组织的开源情报,并允许你查找与该组织相关的更多根域名。要查看此子命令的可用选项,只需在终端中输入:

amass intel

 

此时或许值得一提的是,Amass 的另一个重要优势是所有子命令都会尝试保持参数的一致性。

此子命令默认会使用多种信息收集技术和数据源,例如 WHOIS 和 IPv4Info,以获取组织拥有的情报和父域名,除非在 Amass 的配置文件中明确禁用这些功能。

1. -h

显示程序使用信息

amass intel -h

2. -help

显示程序使用信息

amass intel -help

3. -active

尝试获取证书名称

amass intel -active -whois -d kali.org

4. -addr value

IP 地址和地址范围 (192.168.1.1-254),以逗号分隔

5. -asn value

ASN 以逗号分隔(可多次使用)

6. -cidr value

CIDR 以逗号分隔(可多次使用)

amass intel -active -whois -d owasp.org -addr 104.22.26.77 -asn 14993 -cidr 104.22.26.0/24

7. -config string

YAML 配置文件的路径。以下为更多详细信息

amass intel -config examples/config.yaml -whois -d kali.org

8. -d value

域名以逗号分隔(可多次使用)

amass intel -whois -d owasp.org,kali.org

9. -demo

审查输出以使其适合演示

amass intel -demo -whois -d owasp.org,kali.org

10. -df value

提供根域名的文件路径

amass intel -whois -df domains.txt

11. -dir string

包含输出文件的目录路径

amass intel -whois -d kali.org -dir output

12. -ef string

提供要排除的数据源的文件路径

amass intel -whois -d kali.org -ef exclude.txt

13. -exclude value

要排除的数据源名称以逗号分隔

amass intel -whois -d kali.org -exclude Shodan

14. -if string

提供要包含的数据源的文件路径

amass intel -whois -d kali.org -if include.txt

15. -include value

要包含的数据源名称以逗号分隔

amass intel -whois -d kali.org -include Shodan

16. -ip

显示已发现名称的 IP 地址

amass intel -whois -d kali.org -ip

17. -ipv4

显示已发现名称的 IPv4 地址

amass intel -whois -d kali.org -ipv4

18. -ipv6

显示已发现名称的 IPv6 地址

amass intel -whois -d kali.org -ipv6

19. -list

打印附加信息

amass intel -list

20. -log string

将写入错误的日志文件路径

amass intel -whois -d kali.org -log errors.log

21. -max-dns-queries int

最大并发 DNS 查询数

amass intel -whois -d kali.org -max-dns-queries 10

22. -o string

包含终端 stdout/stderr 的文本文件路径

amass intel -whois -d kali.org -o result.txt

23. -org string

针对 AS 描述信息提供的搜索字符串

amass intel -org "Bing"

24. -p value

端口号(以逗号分隔)(默认值:80, 443)

amass intel -active -whois -d kali.org -p 80,443

25. -r value

首选 DNS 解析器的 IP 地址(可多次使用)

amass intel -whois -d kali.org -r 114.114.114.114

26. -rf value

提供首选 DNS 解析器的文件路径

amass intel -whois -d kali.org -rf resolvers.txt

27. -timeout int

退出前允许枚举运行的分钟数

amass intel -whois -d kali.org -timeout 3

28. -v

输出状态/调试/故障排除信息

29. -whois

所有提供的域名均通过反向 whois 查询

amass intel -v -whois -d kali.org

Amass Enum

Amass 的大部分强大功能都集中于此。Amass 枚举允许您执行目标的 DNS 枚举和映射,以确定组织暴露的攻击面。枚举结果存储在图形数据库中,该数据库将位于 Amass 的默认输出文件夹中,或使用“-dir”标志指定的输出目录中。其他 Amass 子命令也是如此。

Amass 枚举可以在被动或主动配置模式下执行。被动模式速度更快,但 Amass 不会验证 DNS 信息,例如通过解析子域名。您可以使用“-passive”标志被动运行它,但您将无法启用许多技术或配置,例如 DNS 解析和验证。有时选择被动模式而不是主动模式有几个原因,例如:

  • 您需要了解所有已使用且将来可能重复使用的子域名,这可能是因为您需要持续监控目标的攻击面以发现变化,或者因为您正在进行网络钓鱼攻击并寻找子域名。
  • 您的周边安全测试流程会在后期验证 DNS 信息,并且需要快速获得 Amass 的结果。
  • 由于安全活动的限制或要求,您只能执行被动信息收集。

1. -h

显示程序使用情况消息

2. -help

显示程序使用情况消息

amass enum -h

3. -active

尝试区域传输和证书名称抓取

4. -addr value

IP 地址和地址范围 (192.168.1.1-254),以逗号分隔

amass enum -d owasp.org -addr 192.168.174.1-255

5. -alts

启用更改名称生成

amass enum -d owasp.org -alts

6. -asn value

ASN 以逗号分隔(可多次使用)

amass enum -d owasp.org -asn 23333

7. -aw value

用于更改名称的不同词表文件的路径

amass enum -d owasp.org -aw /usr/share/amass/wordlists/subdomains.lst

8. -awm value

用于名称更改的“hashcat 风格”词表掩码

amass enum -d owasp.org -awm '?1?l?l?l?l'

9. -bl value

不予调查的子域名黑名单

amass enum -d owasp.org -bl admin,kali.org

10. -blf string

提供黑名单子域名的文件路径

amass enum -d owasp.org -blf blacklisted.txt

11. -brute

搜索后执行暴力破解

amass enum -d owasp.org -brute

12. -cidr value

CIDR 以逗号分隔(可多次使用)

amass enum -d owasp.org -cidr 104.22.27.0/24

13. -config string

YAML 配置文件的路径。更多详细信息如下

amass enum -d owasp.org -config 桌面/amass/examples/config.yaml

14. -d value

域名以逗号分隔(可多次使用)

amass enum -d owasp.org,kali.org

15. -demo

审查输出以使其适合演示

amass enum -d kali.org -demo

16. -df value

提供根域名的文件路径

amass enum -df domains.txt

17. -dir string

包含输出文件的目录路径

amass enum -d kali.org -dir output

18. -dns-qps int

所有解析器每秒的最大 DNS 查询数

amass enum -d kali.org -dns-qps 5

19. -ef string

提供要排除的数据源的文件路径

amass enum -d kali.org -ef exclude.txt

20. -exclude value

要排除的数据源名称以逗号分隔

amass enum -d kali.org -exclude Yahoo

21. -if string

提供要包含的数据源的文件路径

amass enum -d kali.org -if include.txt

22. -iface string

提供用于发送流量的网络接口

amass enum -d kali.org -iface eth0

23. -include value

要包含的数据源名称以逗号分隔

amass enum -d kali.org -include Yahoo,Shodan

24. -list

打印所有可用数据源的名称

amass enum -list

25. -log string

将写入错误的日志文件的路径

amass enum -d kali.org -log error.log

26. -max-depth int

最大数量用于暴力破解的子域名标签数量

amass enum -d kali.org -max-depth 5

27. -max-dns-queries int

已弃用标志,将在 4.0 版中由 dns-qps 取代

amass enum -d kali.org -max-dns-queries 5

28. -min-for-recursive int

递归暴力破解前检测到的子域名标签(默认值:1)(默认 1)

amass enum -d kali.org -min-for-recursive 1

29. -nf value

提供已知子域名(来自其他工具/来源)的文件路径

amass enum -d kali.org -nf known-subdomains.txt

30. -nocolor

禁用彩色输出

amass enum -d kali.org -nocolor

31. -norecursive

关闭递归暴力破解

amass enum -d kali.org -norecursive

32. -o string

包含终端 stdout/stderr 的文本文件的路径

amass enum -d kali.org -o result.txt

33. -oA string

用于命名所有输出文件的路径前缀

amass enum -d kali.org -oA kali

34. -p value

端口号以逗号分隔(默认值:80, 443)

amass enum -d kali.org -active -p 80,443

35. -passive

已弃用,因为默认设置是 passive

amass enum -d kali.org -passive

36. -r value

不受信任 DNS 解析器的 IP 地址(可多次使用)

amass enum -d kali.org -r 114.114.114.114

37. -rf value

提供不受信任 DNS 解析器的文件路径

amass enum -d kali.org -rf resolvers.txt

38. -rqps int

每个不受信任解析器每秒的最大 DNS 查询数

amass enum -d kali.org -rqps 8

39. -scripts string

包含 ADS 脚本的目录路径

amass enum -d kali.org -scripts alterations.ads

40. -silent

执行期间禁用所有输出

amass enum -d kali.org -silent

41. -timeout int

退出前允许枚举运行的分钟数

amass enum -d kali.org -timeout 3

42. -tr value

受信任 DNS 解析器的 IP 地址(可多次使用)

amass enum -d kali.org -tr 8.8.8.8

43. -trf value

路径提供可信 DNS 解析器的文件

amass enum -d kali.org -trf trusted.txt

44. -trqps int

每个可信解析器每秒的最大 DNS 查询次数

amass enum -d kali.org -trqps 3

45. -v

输出状态/调试/故障排除信息

amass enum -d kali.org -v

46. -w value

用于暴力破解的不同字典文件的路径

amass enum -d kali.org -w /usr/share/amass/wordlists/subdomains.lst

47. -wm value

用于 DNS 暴力破解的“hashcat 风格”字典掩码

amass enum -d kali.org -wm 'zzz-?l?l?l'

Amass Viz

注意此子命令在新版本已被移出,老版本才有这个功能。我演示的时候用的是3.19.2的版本。

Amass viz 子命令允许您以多种方式可视化所有收集到的目标信息(存储在 Amass 图形数据库中)。结果还可以导入 Maltego 进行进一步的 OSINT(开源情报)分析。

1. -h

显示程序使用信息

amass viz -h

2. -help

显示程序使用信息

amass viz -help

3. -config string

INI 配置文件的路径。更多详细信息请见下文

4. -d value

域名以逗号分隔(可多次使用)

5. -d3

生成 D3 v4 强制模拟 HTML 文件

amass viz -d3 -d kali.org -config examples/config.ini

6. -df string

提供根域名的文件路径

amass viz -d3 -df domains.txt

7. -dir string

包含图形数据库的目录路径

amass viz -d3 -d kali.org -config examples/config.ini -dir ./examples/

8. -dot

生成 DOT 输出文件

amass viz -dot -d kali.org

9. -enum int

通过列表中的索引识别枚举

amass viz -dot -enum 3

10. -gexf

生成 Gephi 图形交换 XML 格式 (GEXF) 文件

amass viz -gexf -d kali.org

11. -graphistry

生成 Graphistry JSON 文件

amass viz -graphistry -d kali.org

12. -i string

Amass 数据操作 JSON 文件

amass viz -gexf -d kali.org -i examples/indexes.bolt

13. -maltego

生成 Maltego csv 文件

amass viz -maltego -d kali.org

14. -nocolor

禁用彩色输出

amass viz -maltego -d kali.org -nocolor

15. -o string

生成输出文件的目录路径

amass viz -maltego -d kali.org -o output

16. -oA string

用于命名所有输出文件的路径前缀

amass viz -maltego -d kali.org -oA kali

17. -silent

执行期间禁用所有输出

amass viz -maltego -d kali.org -silent

Amass Track

注意此子命令在新版本已被移出,老版本才有这个功能。我演示的时候用的是3.19.2的版本。

Amass track 是第二有用的子命令。它有助于比较针对同一目标和域名执行的枚举结果。

1. -h

显示程序使用信息

amass track -h

2. -help

显示程序使用信息

amass track -help

3. -config string

INI 配置文件的路径。更多详细信息见下文

amass track -d kali.org -config examples/config.ini

4. -d value

域名以逗号分隔(可多次使用)

amass track -d kali.org,owasp.org

5. -df string

提供根域名的文件路径

amass track -df domains.txt

6. -dir string

包含图形数据库的目录路径

amass track -d kali.org -dir /home/ubuntu/.config/amass/

7. -history

显示所有枚举对之间的差异

amass track -d kali.org -history

8. -last int

要包含在跟踪中的最近枚举的数量

amass track -d kali.org -last 2

9. -nocolor

禁用彩色输出

amass track -d kali.org -nocolor

10. -silent

执行期间禁用所有输出

amass track -d kali.org -silent

11. -since string

排除之前的所有枚举(格式:01/02 15:04:05 2006 MST)

amass track -d kali.org -since "05/08 00:00:00 2025 UTC"

Amass DB

注意此子命令在新版本已被移出,老版本才有这个功能。我演示的时候用的是3.19.2的版本。

您可以使用此子命令与 Amass 图形数据库进行交互,无论是默认数据库还是使用“-dir”标志指定的数据库。

1. -h

显示程序使用信息

amass db -h

2. -help

显示程序使用信息

amass db -help

3. -config string

INI 配置文件的路径。更多详细信息如下

amass db -config examples/config.ini -list

4. -d value

域名以逗号分隔(可多次使用)

amass db -d kali.org -names

5. -demo

审查输出以使其适合演示

amass db -d kali.org -names -demo

6. -df string

提供根域名的文件路径

amass db -df domains.txt -names

7. -dir string

包含图形数据库的目录路径

amass db -d kali.org -names -dir /home/ubuntu/.config/amass

8. -enum int

通过列表中的索引识别枚举

amass db -d kali.org -names -enum 1

9. -ip

显示已发现名称的 IP 地址

amass db -d kali.org -names -ip

10. -ipv4

显示已发现名称的 IPv4 地址

amass db -d kali.org -names -ipv4

11. -ipv6

显示已发现名称的 IPv6 地址

amass db -d kali.org -names -ipv6

12. -json string

JSON 输出文件的路径

amass db -d kali.org -names -json output.json

13. -list

根据提供的域名过滤的枚举编号列表

amass db -list

14. -names

打印刚发现的名称

amass db -d kali.org -names

15. -nocolor

禁用彩色输出

amass db -d kali.org -names -nocolor

16. -o string

包含终端 stdout/stderr 的文本文件的路径

amass db -d kali.org -names -o output.txt

17. -show

打印结果枚举索引 + 提供的域名

amass db -d kali.org -names -show

18. -silent

执行期间禁用所有输出

amass db -d kali.org -names -silent

19. -src

打印已发现名称的数据源

amass db -d kali.org -names -src

20. -summary

仅打印 ASN 表摘要

amass db -d kali.org -summary

总结

Amass 是一款功能强大的子域名枚举和信息收集工具,适用于渗透测试和资产管理等多个安全场景。通过对 Amass 的使用与分析,我们不仅可以深入了解其模块化设计和丰富的数据源,还能有效提升在实际工作中对目标域的掌控能力。总的来说,Amass 是信息收集阶段不可或缺的重要利器。

在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。

欢迎各位大佬,小白来找我交流。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Web MVC响应

返回静态页面 第一步 创建html时,要注意创建的路径,要在static下面 第二步 把需要写的内容写到body内 第三步 直接访问路径就可以 返回数据ResponseBody RestController Controller ResponseBody Controller:返回视图 ResponseBody&…

‌鸿蒙PC正式发布:国产操作系统实现全场景生态突破

鸿蒙PC正式发布:国产操作系统实现全场景生态突破‌ 2025年5月8日,华为在深圳举办发布会,正式推出搭载鸿蒙操作系统的个人电脑(PC),标志着国产操作系统在核心技术与生态布局上实现历史性跨越。此次发布的鸿蒙…

【计算机视觉】OpenCV实战项目:Text-Extraction-Table-Image:基于OpenCV与OCR的表格图像文本提取系统深度解析

Text-Extraction-Table-Image:基于OpenCV与OCR的表格图像文本提取系统深度解析 1. 项目概述2. 技术原理与算法设计2.1 图像预处理流水线2.2 表格结构检测算法2.3 OCR优化策略 3. 实战部署指南3.1 环境配置3.2 核心代码解析3.3 执行流程示例 4. 常见问题与解决方案4.…

Redis BigKey 问题是什么

BigKey 问题是什么 BigKey 的具体表现是 redis 中的 key 对应的 value 很大,占用的 redis 空间比较大,本质上是大 value 问题。 BigKey怎么找 redis-cli --bigkeysscanBig Key 产生的原因 1.redis数据结构使用不恰当 2.未及时清理垃圾数据 3.对业务预…

go-gin

前置 gin是go的一个web框架,我们简单介绍一下gin的使用 导入gin :"github.com/gin-gonic/gin" 我们使用import导入gin的包 简单示例: package mainimport ("github.com/gin-gonic/gin" )func main() {r : gin.Default(…

C# NX二次开发:判断两个体是否干涉和获取系统日志的UFUN函数

大家好,今天要讲关于如何判断两个体是否干涉和获取系统日志的UFUN函数。 (1)UF_MODL_check_interference:这个函数的定义为根据单个目标体检查每个指定的工具体是否有干扰。 Defined in: uf_modl.h Overview Checks each sp…

如何解决 Linux 系统文件描述符耗尽的问题

在Linux系统中,文件描述符(File Descriptor, FD)是操作系统管理打开文件、套接字、管道等资源的抽象标识。当进程或系统耗尽文件描述符时,会导致服务崩溃、连接失败等严重问题。以下是详细的排查和解决方案: --- ###…

LVGL简易计算器实战

文章目录 📁 文件结构建议🔹 eval.h 表达式求值头文件🔹 eval.c 表达式求值实现文件(带详细注释)🔹 ui.h 界面头文件🔹 ui.c 界面实现文件🔹 main.c 主函数入口✅ 总结 项目效果&…

使用countDownLatch导致的线程安全问题,线程不安全的List-ArrayList,线程安全的List-CopyOnWriteArrayList

示例代码 package com.example.demo.service;import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class UnSafeCDTest {Executor…

ALLinSSL:一站式SSL证书管理解决方案

引言 在当今互联网安全日益重要的背景下,SSL证书已成为保护网站安全的必备工具。然而,管理多个SSL证书常常是一项繁琐且容易出错的任务。ALLinSSL应运而生,它提供了一个一站式的SSL证书管理解决方案,大大简化了证书的申请、安装和更新过程。本文将深入介绍ALLinSSL的特性、…

嵌入式通信协议总览篇:万物互联的基石

嵌入式系统的世界,是靠协议“说话”的世界。 在你设计一个智能设备、构建一个工业控制系统、开发一款 IoT 网关时,一个核心问题始终绕不开:**这些设备之间如何“对话”?**答案就是——通信协议。 本篇作为系列第一章,将带你全面理解嵌入式通信协议的全貌,为后续深入学习…

【数据结构】红黑树(C++)

目录 一、红黑树的概念 二、红黑树的性质 三、红黑树结点定义 四、红黑树的操作 1. 插入操作 1.1 插入过程 1.2 调整过程 1.2.1 叔叔节点存在且为红色 1.2.2 叔叔节点存在且为黑色 1.2.3 叔叔节点不存在 2. 查找操作 2.1 查找逻辑 2.2 算法流程图 2.3 使用示例 …

Oracle数据库DBF文件收缩

这两天新部署了一套系统,数据库结构保持不变,牵扯导出表结构还有函数,图省事就直接新建用户,还原数据库了。然后咔咔咔,一顿删除delete,truncate,发现要不就是表删了,还有num_rows&a…

【字节拥抱开源】字节豆包团队开源首发 Seed-Coder 大模型

我们非常高兴地向大家介绍 Seed-Coder,它是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体。Seed-Coder 通过以下亮点促进开放代码模型的发展。 以模型为中心:Seed-Coder主要利用大语言模型&#…

Qt 无边框窗口,支持贴边分屏

常规操作, 无法进行窗口的大小缩放和移动贴边分屏等操作 // 去掉标题栏,去掉工具栏,窗口置顶 setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint);重点介绍 QWindowKit https://github.com/stdware/qwindowkit 跨平台的支持Windows\…

Qt 样式表:全面解析与应用指南

在 Qt 开发中,样式表(Style Sheets)是定义应用程序界面外观的关键工具。它采用文本格式的规则集合,借鉴了 CSS 语法,借助选择器、属性和值,能精准把控各类控件的外观表现,极大提升了界面设计的灵活性与美观性。 文章目录 一、样式可更改的效果​1、颜色相关效果​2、字体…

追踪大型语言模型的思想(上)(来自针对Claude的分析)

概述 像 Claude 这样的语言模型并非由人类直接编程,而是通过大量数据进行训练。在训练过程中,它们会学习解决问题的策略。这些策略被编码在模型为每个单词执行的数十亿次计算中。对于我们这些模型开发者来说,这些策略是难以捉摸的。这意…

Python pandas 向excel追加数据,不覆盖之前的数据

最近突然看了一下pandas向excel追加数据的方法,发现有很多人出了一些馊主意; 比如用concat,append等方法,这种方法的会先将旧数据df_1读取到内存,再把新数据df_2与旧的合并,形成df_new,再覆盖写入,消耗和速…

MYSQL 索引和事 务

目录 一 MYSQL 索引介绍 1.索引概念 2.索引作用 3.索引的分类 3.1普通索引 3.2唯一索引 3.3组合索引(最左前缀) 3.4全文索引 4.3查看索引 4.4删除索引 二 MYSQL事务 一:MYSQL索引介绍 索引是一个排序的列表,在这个列表中存储着索…