网络攻击(二)--情报搜集阶段

4.1. 概述

在情报收集阶段,你需要采用各种可能的方法来收集将要攻击的客户组织的所有信息,包括使用社交网络、Google Hacking技术、目标系统踩点等等。

而作为渗透测试者,你最为重要的一项技能就是对目标系统的探查能力,包括获知它的行为模式、运行机理,以及最终可以如何被攻击。

对目标系统所搜集到的信息将帮助你准确的掌握目标系统所部署的安全控制措施。

  • 搜集哪些内容
* 第一步 
    * 目标系统IP地址范围
    * 详细的注册信息
    * DNS服务器位置
    * 电话号段
    * 网络、或安全管理员及其联系方式
    * 外部网络拓扑结构

* 而后
    * 目标网络中活跃主机
    * 操作系统类型
    * 开放的端口
    * 端口后面运行的网络服务
    * 是否存在已公开的披露的安全漏洞

* 最后(对初步选择的攻击目标服务实施更细致的信息探查)
    * 像用户账号
    * 共享资源
    * 网络服务类型与版本号
    * 服务配置信息

通过收集这些信息, 攻击者可以大致判断目标系统的安全状况, 从而寻求有效的入侵途径与方法。

  • 搜集方法
    • 踩点 footprinting
      • web搜索与挖掘
      • DNS和IP查询
      • 网络拓扑侦查
    • 扫描 scanning
      • 主机扫描
      • 端口扫描
      • 系统类型探查
      • 漏洞扫描
    • 查点 enumeration
      • Flag抓取
      • 网络服务查点

4.2. 踩点

踩点就是对目标组织()进行有计划、有组织的信息收集,以得到目标完整剖析图的过程

4.2.1. Web信息搜索-google

  • 子域名收集 site:xxxx.com

Goole Hacker(谷歌黑客)_360搜索



 

4.2.2. DNS查询-- dnsenum

DNSenum是一款非常强大的域名信息收集工具。

它能够通过谷歌或者字典文件猜测可能存在的域名,并对一个网段进行反向查询。它不仅可以查询网站的主机地址信息、域名服务器和邮件交换记录,还可以在域名服务器上执行axfr请求,然后通过谷歌脚本得到扩展域名信息,提取子域名并查询,最后计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。

本小节将介绍使用DNSenum工具检查DNS枚举。在终端执行如下所示的命令:

root@Kali-Panda:~# dnsenum --enum example.com
Smartmatch is experimental at /usr/bin/dnsenum line 698.
Smartmatch is experimental at /usr/bin/dnsenum line 698.
dnsenum VERSION:1.2.4
Warning: can't load Net::Whois::IP module, whois queries disabled.
Warning: can't load WWW::Mechanize module, Google scraping desabled.

-----   example.com   -----


Host's addresses:
__________________

example.com.                             36912    IN    A        93.184.216.34


Name Servers:
______________

a.iana-servers.net.                      73       IN    A        199.43.135.53
b.iana-servers.net.                      73       IN    A        199.43.133.53


Mail (MX) Servers:
___________________



Trying Zone Transfers and getting Bind Versions:
_________________________________________________


Trying Zone Transfer for example.com on a.iana-servers.net ... 
AXFR record query failed: NOTAUTH

Trying Zone Transfer for example.com on b.iana-servers.net ... 
AXFR record query failed: REFUSED

brute force file not specified, bay.
root@Kali-Panda:~# 

dnsenum 可以收集DNS的信息分为下述几类:

  • 主机IP地址
  • 该域的DNS服务器
  • 该域的MX记录

  • 可通过 dnsenum -h 获取帮助信息

root@Kali-Panda:~# dnsenum  -h
  • 补充nslook
$ nslookup  baidu.com

4.2.3. DNS信息获取-whois

whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)

  • 典型用法
itcast@itcast $ whois baidu.com

4.2.4. 路由信息

获取dns信息之后,尽可能获取目标网络的拓扑结构。 好找准攻击点

  • 基本用法 traceroute host
root@Kali-Panda:~# traceroute www.example.com
traceroute to www.example.com (93.184.216.34), 30 hops max, 60 byte packets
 1  localhost (192.168.0.1)  8.207 ms  8.908 ms  10.830 ms
 2  localhost (192.168.1.1)  10.732 ms  16.626 ms  16.735 ms
 3  * * *
 4  61.51.246.197 (61.51.246.197)  24.228 ms  25.782 ms  29.403 ms
 5  bt-230-081.bta.net.cn (202.106.230.81)  31.423 ms 219.232.11.29 (219.232.11.29)  29.724 ms  29.650 ms
 6  202.96.12.1 (202.96.12.1)  30.249 ms 124.65.194.25 (124.65.194.25)  9.982 ms 124.65.194.21 (124.65.194.21)  6.976 ms
 7  219.158.18.66 (219.158.18.66)  12.332 ms 219.158.5.146 (219.158.5.146)  10.793 ms 219.158.5.150 (219.158.5.150)  12.163 ms
 8  219.158.3.138 (219.158.3.138)  12.077 ms 219.158.16.82 (219.158.16.82)  20.989 ms  20.926 ms
 9  219.158.107.118 (219.158.107.118)  214.112 ms  214.534 ms  214.461 ms
10  219.158.33.194 (219.158.33.194)  251.167 ms  312.330 ms  312.398 ms
11  ffm-bb4-link.telia.net (62.115.142.194)  255.167 ms  251.091 ms ffm-bb3-link.telia.net (62.115.142.204)  310.773 ms
12  prs-bb3-link.telia.net (62.115.123.13)  324.318 ms prs-bb4-link.telia.net (62.115.122.138)  316.212 ms prs-bb3-link.telia.net (62.115.123.13)  315.887 ms
13  ash-bb3-link.telia.net (80.91.251.243)  247.043 ms ash-bb4-link.telia.net (62.115.122.159)  237.803 ms  238.235 ms
14  ash-b1-link.telia.net (80.91.248.157)  243.919 ms  306.199 ms  306.720 ms
15  verizon-ic-315151-ash-b1.c.telia.net (213.248.83.117)  311.853 ms  314.697 ms  249.671 ms
16  152.195.64.133 (152.195.64.133)  249.688 ms 152.195.65.133 (152.195.65.133)  325.343 ms  328.961 ms
17  93.184.216.34 (93.184.216.34)  252.255 ms  261.291 ms  253.151 ms
root@Kali-Panda:~#
  • 补充内容: 实现原理

  • 每个网络包都有其存活期TTL(Time To Live), 单位是“下一跳”

  • 当网络包经过一个路由器时, TTL-1
  • 当TTL减为0时, 则该网络包被丢弃, 并回复源IP一个“ICMP Time exceeded”报文, 且该ICMP包携带丢弃网络包的那个“主机”(路由器)的IP地址

  • traceroute送出一个TTL是1的IP datagram(包括源地址,目的地址和包发出的时间标签)到目的地

  • 当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址)
  • traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,
  • 接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...
  • traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地
  • Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。

4.3. 扫描

如果把踩点比喻为实施盗窃前,侦查外围环境以确定目标大楼,那扫描就是从中找出有人居住的房间,找出可供嵌入的门窗。。。。

4.3.1. 目标主机在线存活--ping

在检查主机是否在线的工具中, ping可能是最著名的工具了。

  • 基本用法: ping [option] destination

    • -c count: 发送 ”echo request“ 数据包总量
    • -I interface address: 设置源地址或网络接口
    • -s packet size: 每个数据包的大小, 默认56, 在加上IPv4中8个字节的ICMP包头,总计64.
  • 示例

root@Kali-Panda:~# ping -c 2 www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=56 time=5.12 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=56 time=5.81 ms

--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 5.123/5.469/5.816/0.354 ms
root@Kali-Panda:~#
root@Kali-Panda:~# ping -c 3 -s 128 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 128(156) bytes of data.
136 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=2.79 ms
136 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=2.09 ms
136 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=3.56 ms

--- 192.168.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 2.091/2.817/3.566/0.602 ms
root@Kali-Panda:~# 

4.3.2. 目标主机在线存活-- nmap

Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper)。该工具其基本功能有三个,

  • 一是探测一组主机是否在线;
  • 其次是扫描主机端口,嗅探所提供的网络服务;
  • 三是可以推断主机所用的操作系统。

    通常,用户利用Nmap来进行网络系统安全的评估,而黑客则用于扫描网络。例如,通过向远程主机发送探测数据包,获取主机的响应,并根据主机的端口开放情况得到网络的安全状态。从中寻找存在漏洞的目标主机,从而实施下一步的攻击。

测试一个网络中活跃的主机。使用方法如下所示。

  • 使用Nmap查看一个主机是否在线。执行命令如下所示:
root@Kali-Panda:~# nmap -sP 192.168.0.110
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-24 09:25 CST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 0.52 seconds
root@Kali-Panda:~# nmap -sP 192.168.0.106
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-24 09:26 CST
Nmap scan report for localhost (192.168.0.106)
Host is up (0.00024s latency).
MAC Address: FC:F8:AE:06:92:2B (Intel Corporate)
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
root@Kali-Panda:~# 
  • 使用nmap查看当前网络中,活跃的主机
root@Kali-Panda:~# nmap -sP 192.168.0.0/24
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-24 09:27 CST
Nmap scan report for localhost (192.168.0.1)
Host is up (0.0076s latency).
MAC Address: 14:75:90:50:57:DB (Tp-link Technologies)
Nmap scan report for localhost (192.168.0.100)
Host is up (0.068s latency).
MAC Address: EC:F3:42:CF:97:F3 (Guangdong Oppo Mobile Telecommunications)
Nmap scan report for localhost (192.168.0.101)
Host is up (0.12s latency).
MAC Address: 78:A8:73:CF:66:B2 (Samsung Electronics)
Nmap scan report for localhost (192.168.0.102)
Host is up (0.12s latency).
MAC Address: 60:A4:D0:A3:47:D2 (Samsung Electronics)
Nmap scan report for localhost (192.168.0.106)
Host is up (0.00018s latency).
MAC Address: FC:F8:AE:06:92:2B (Intel Corporate)
Nmap scan report for localhost (192.168.0.107)
Host is up (0.063s latency).
MAC Address: 2C:D9:74:20:D1:09 (Unknown)
Nmap scan report for localhost (192.168.0.111)
Host is up.
Nmap done: 256 IP addresses (7 hosts up) scanned in 1.87 seconds
root@Kali-Panda:~# 

4.3.3. 系统指纹信息 --nmap

本节通过主动方式,收集目标系统指纹信息,获取操作系统的类型

使用Nmap命令的-O选项,启用操作系统测试功能。(注意,是大写字母O,不是数字0)

执行命令如下所示:

root@Kali-Panda:~# nmap -O 192.168.1.1
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-24 11:36 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.0062s latency).
Not shown: 995 closed ports
PORT   STATE    SERVICE
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp filtered telnet
53/tcp open     domain
80/tcp open     http
MAC Address: D4:F9:A1:70:6B:25 (Huawei Technologies)
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3.5
OS details: Linux 3.5
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 3.09 seconds
root@Kali-Panda:~# 

4.3.4. 系统指纹信息 -- p0f

p0f 采用被动式探测目标主机的操作系统类型

root@Kali-Panda:~# p0f -i eth0  -f /etc/p0f/p0f.fp 
--- p0f 3.09b by Michal Zalewski <lcamtuf@coredump.cx> ---

[+] Closed 1 file descriptor.
[+] Loaded 322 signatures from '/etc/p0f/p0f.fp'.
[+] Intercepting traffic on default interface 'eth0'.
[+] Default packet filtering configured [+VLAN].
[+] Entered main event loop.

.-[ 192.168.1.228/33014 -> 192.168.1.170/22 (syn) ]-
|
| client   = 192.168.1.228/33014
| os       = Linux 3.11 and newer
| dist     = 0
| params   = none
| raw_sig  = 4:64+0:0:1460:mss*20,7:mss,sok,ts,nop,ws:df,id+:0
|
`----
  • 小结

  • nmap 是主动式识别工具

    • 优点: 探测速度快
    • 缺点: 目标主机可能会发现我们探测操作系统的行为
  • p0f 为被动式识别工具
    • 优点: 不易被目标主机发现我们的探测行为
    • 缺点: 比主动式识别方法的识别速度慢

对一个大范围的网络或活跃的主机进行渗透测试,必须要了解这些主机上所打开的端口号。 也就是目标主机上所提供的服务。

4.3.5. 端口扫描 -- nmap

使用nmap工具查看192.168.1.1 主机上正在运行的服务。执行命令如下所示:

root@Kali-Panda:~# nmap  192.168.1.1
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-24 14:36 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.0085s latency).
Not shown: 995 closed ports
PORT   STATE    SERVICE
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp filtered telnet
53/tcp open     domain
80/tcp open     http
MAC Address: D4:F9:A1:70:6B:25 (Huawei Technologies)

Nmap done: 1 IP address (1 host up) scanned in 3.12 seconds
root@Kali-Panda:~# 

从命令结果可以看出, 目标主机192.168.1.1 提供了ftp、ssh、telnet、http等服务。

常用参数

  • 扫描特定端口 -p port
  • -sT : tcp connect扫描防护
  • -sU : udp扫描方式
  • -sS : syn扫描

扫描特定端口22

root@Kali-Panda:~# nmap -p 22 192.168.1.1
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-24 14:40 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.0059s latency).

PORT   STATE    SERVICE
22/tcp filtered ssh
MAC Address: D4:F9:A1:70:6B:25 (Huawei Technologies)

Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds
root@Kali-Panda:~#
  • 指定扫描端口范围 -p m-n

    扫描从1到32之间的端口

root@Kali-Panda:~# nmap -p 1-32 192.168.1.1
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-24 14:40 CST
Nmap scan report for localhost (192.168.1.1)
Host is up (0.027s latency).
Not shown: 29 closed ports
PORT   STATE    SERVICE
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp filtered telnet
MAC Address: D4:F9:A1:70:6B:25 (Huawei Technologies)

Nmap done: 1 IP address (1 host up) scanned in 1.29 seconds

4.3.6. 端口服务指纹识别--nmap

为了确保有一个成功的渗透测试,必须需要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口、服务名和版本等。

使用Nmap工具查看192.168.41.136服务上正在运行的端口。执行命令如下所示:

root@Kali-Panda:~# nmap -sV  -p 22 192.168.1.228
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-24 14:52 CST
Nmap scan report for localhost (192.168.1.228)
Host is up (0.00016s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.4p1 Debian 10+deb9u3 (protocol 2.0)
MAC Address: FC:F8:AE:06:92:2B (Intel Corporate)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

此处使用,一般会用-p 指定端口,效率更高。 此处获取ssh的版本信息。

4.3.7. 漏洞扫描

4.3.7.1. Nessus介绍

Nessus 国外流行的漏洞扫描工具。多用来发现系统漏洞。

  • 官网: Tenable® - 风险暴露管理公司

 

Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。

1998年, Nessus 的创办人 Renaud Deraison 展开了一项名为 "Nessus"的计划,其计划目的是希望能为因特网社群提供一个免费、威力强大、更新频繁并简易使用的远端系统安全扫描程序。经过了数年的发展, 包括 CERT 与 SANS 等著名的网络安全相关机构皆认同此工具软件的功能与可用性。

2002年时, Renaud 与 Ron Gula, Jack Huffard 创办了一个名为 Tenable Network Security 的机构。在第三版的Nessus 发布之时, 该机构收回了 Nessus 的版权与程序源代码 (原本为开放源代码), 并注册成为该机构的网站。 目前此机构位于美国马里兰州的哥伦比亚。

4.3.7.2. Nessus 漏洞扫描

使用Nessus进行漏洞扫描是我们需要了解的重点。

  • 打开浏览器, 输入IP:https://xx.xx.xx.xx:8834 ,

  • 用户名: root, 口令: itcast

  • 显示如下登录界面:

 

  • 选择新建New Scan 扫描

 

在界面中,选择Advanced Scan

  • 填写扫描信息

* `Name`: 给本次扫描起个名字,(按自己心意即可, 我一般用IP,网段, 主机名)
* `Description` : 描述,根据情况编写
* `Folder` : 一种归类手段, 默认即可
* `Targets`: 重要, 192.168.0.4

 填写完成, 下方点击 Save 保存

4.3.7.3. 漏扫报告解读

以国内厂商的漏扫报告,我们一起看一下。

看一下报告首页。

 

我们一起看一下。

4.3.7.4. 对于漏扫报告的整改措施

发现漏洞(vulnerabilities, 有学术用脆弱性来翻译)后, 一般要求厂家进行安全整改。

整改措施大致可分为三类:

  • 安全升级

    • 对存有漏洞的软件包进行升级
  • 禁用某些服务,(某些服务自身缺陷)

    • 如,使用telnet登录,telnet协议明文传输,
    • 远程桌面。。。
  • 主机防火墙加固 *对于服务本身有缺陷, 而又必须使用的场景, 采用主机防火墙限制链接数量,缩小攻击面。

4.4. 查点

踩点是确定目标主机, 扫描是确定主机有多少服务(端口), 那么查点,就是对识别的服务进行更加针对性的探查, 来寻找真正可以攻击的入口。。。以及攻击过程中可能用到的数据。。。

4.4.1. 简单的旗标抓取 -- telnet

网络服务旗标抓取, 利用客户端工具连接远程服务,并观察输出(或通过嗅探)以收集关键信息的技术手段。一般限于明文传输的网络服务。

  • telnet 抓取 ssh旗标
itcast@itcast $ telnet  127.0.0.1 22
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u4

注意输出中的SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u4, 使用ssh协议2.0, openssh版本7.4p1, 系统可能为debian。。。

 

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

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

相关文章

MSSQL 程序集使用方法

1.C# 写一个程序 1.1新建一个项目【类库【.Net FrameWork】 1.2编写代码 删除 namespace ApiSQLClass { } 代码如下&#xff1a;【具体调用API模式根据具体编写】 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.…

使用cmake构建Qt6.6的qt quick项目,添加应用程序图标的方法

最近&#xff0c;在学习qt的过程中&#xff0c;遇到了一个难题&#xff0c;不知道如何给应用程序添加图标&#xff0c;按照网上的方法也没有成功&#xff0c;后来终于自己摸索出了一个方法。 1、准备一张图片作为图标&#xff0c;保存到工程目录下面&#xff0c;如logo.ico。 …

mybatis的快速入门以及spring boot整合mybatis(二)

需要用到的SQL脚本&#xff1a; CREATE TABLE dept (id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT ID, 主键,name varchar(10) NOT NULL UNIQUE COMMENT 部门名称,create_time datetime DEFAULT NULL COMMENT 创建时间,update_time datetime DEFAULT NULL COMMENT 修改…

Element-UI定制化Tree 树形控件

1.复制 说明&#xff1a;复制Tree树形控件。 <script> export default {data() {return {data: [{label: 一级 1,children: [{label: 二级 1-1,children: [{label: 三级 1-1-1}]}]}, {label: 一级 2,children: [{label: 二级 2-1,children: [{label: 三级 2-1-1}]}, {l…

【VRTK】【VR开发】【Unity】12-占位身体

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概要】 目前你会发现,就算存在非Trigger Collider的墙壁屏障等,也能够正常穿过,这会导致不沉浸的体验。你需要一个占位身体来实现让墙壁等碰撞并挡住自己…

mysql的BIT数值类型

MySQL :: MySQL 8.2 Reference Manual :: 11.1.5 Bit-Value Type - BIT MySQL :: MySQL 8.2 Reference Manual :: 9.1.5 Bit-Value Literals BIT类型用来存放bit值&#xff0c;每一位是0或者1&#xff0c;允许1-64位。 例如&#xff0c;下面表定义了new这列的类型为8位的BIT…

ThinkPHP如何讲链接多个数据库

为什么要使用多个数据库 数据分片&#xff1a; 当数据量非常大时&#xff0c;可能需要将数据分布在不同的数据库中&#xff0c;以提高查询性能。这被称为数据分片&#xff0c;其中不同的数据库负责存储不同范围的数据。 业务分离&#xff1a; 有时&#xff0c;一个大型项目可…

嵌入式培训-Linux系统及C编程高级-DAY6-linux shell脚本编程

Shell脚本概述 Shell脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件&#xff0c;将一些 shell 的语法与命令&#xff08;含外部命令&#xff09;写在里面&#xff0c;搭配正则表达式、管道命令与数据流重定向等功能 Shell脚本编写流程 Shell脚本的文件扩展名…

CGAL的2D符合规定的三角剖分和网格

1、符合规定的三角剖分 1.1、定义 如果三角形的任何面的外接圆在其内部不包含顶点&#xff0c;则该三角形是 Delaunay 三角形。 约束 Delaunay 三角形是一种尽可能接近 Delaunay 的约束三角形。 约束 Delaunay 三角形的任何面的外接圆在其内部不包含从该面可见的数据点。 如果…

【每日一题】【面试经典150 | 动态规划】爬楼梯

Tag 【动态规划】【数组】 题目来源 70. 爬楼梯 题目解读 有过刷题「动态规划」刷题经验的读者都知道&#xff0c;爬楼梯问题是一种最典型也是最简单的动态规划问题了。 题目描述为&#xff1a;你每次可以爬 1 或者 2 个台阶&#xff0c;问爬上 n 阶有多少种方式。 解题思路…

d8week17

Week7 lec17 TVD去asscess model &#xff08;本质 距离加权平均&#xff09;text 11.2A New Statistic: The Distance between Two Distributions text-11.11.1 数据拿到手&#xff0c;套路操作 -- 看hist分布2 total variation distance lec18lec19 lec17 TVD去asscess model…

GoLong的学习之路,进阶,微服务之使用,RPC包(包括源码分析)

今天这篇是接上上篇RPC原理之后这篇是讲如何使用go本身自带的标准库RPC。这篇篇幅会比较短。重点在于上一章对的补充。 文章目录 RPC包的概念使用RPC包服务器代码分析如何实现的&#xff1f;总结Server还提供了两个注册服务的方法 客户端代码分析如何实现的&#xff1f;如何异步…

随机分词与tokenizer(BPE->BBPE->Wordpiece->Unigram->sentencepiece->bytepiece)

0 tokenizer综述 根据不同的切分粒度可以把tokenizer分为: 基于词的切分&#xff0c;基于字的切分和基于subword的切分。 基于subword的切分是目前的主流切分方式。subword的切分包括: BPE(/BBPE), WordPiece 和 Unigram三种分词模型。其中WordPiece可以认为是一种特殊的BPE。完…

复旦量化多策略公开课总结

《掘金之心公众号&#xff1a;gnu_isnot_unix》前Citadel现自营交易与量化管理&#xff0c;分享热点&#xff0c;主观&#xff0c;量化交易内容。活在当下&#xff0c;终身学习 - 给在职却对未来始终迷茫的人的公众号。借此想告诉不断努力&#xff0c;对生活充满热情的读者们&a…

stm32使用多串口不输出无反应的问题(usart1、usart2)

在使用stm32c8t6单片机时&#xff0c;由于需要使用两个串口usart1 、usart2。usart1用作程序烧录、调试作用&#xff0c;串口2用于与其它模块进行通信。 使用串口1时&#xff0c;正常工作&#xff0c;使用串口2时&#xff0c;无反应。查阅了相关资料串口2在PA2\PA3 引脚上。RX…

简单实现Spring容器(三) 初始化单例池并完成getBean() createBean()方法

阶段3: (仍需打磨,静态处有小瑕疵) // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象. // 2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map.3.初始化单例池并完成getBean() createBean()方法思路: 初始化单例池,也就是如果Bean是单例的就实例化,并放入到…

TSOA-TCN-SelfAttention基于凌日优化时间卷积网络融合多头自注意力机制的多特征回归预测程序,还未发表!

适用平台&#xff1a;Matlab2023版及以上 凌日优化算法&#xff08;Transit Search Optimization Algorithm&#xff0c;TSOA&#xff09;是2022年8月提出的一种新颖的元启发式算法&#xff0c;当一颗行星经过其恒星前方时&#xff0c;会导致恒星的亮度微弱地下降&#xff0c;…

SpringData

1.为什么要学习SpringData&#xff1f; 是因为对数据存储的框架太多了&#xff0c;全部都要学习成本比较高&#xff0c;SpringData对这些数据存储层做了一个统一&#xff0c;学习成本大大降低。

Photoshop Circular Text

Ctrl N 新增 现学现卖

八路达林顿晶体管-ULN2803和ULN2804-笔记

八路达林顿晶体管的介绍 ULN2803示例 BULN2803LV 是专为低压系统设计的大电流达林顿管阵列&#xff0c;电路由八个独立的达林顿管组成&#xff0c;每个达林顿管带有续流二极管&#xff0c;可用于驱动继电器、步进电机等感性负载。单个达林顿管在输入电压低至 1.8V 状态下支持电…
最新文章