主頁 >  其他 > TCP 重置攻擊的作業原理

TCP 重置攻擊的作業原理

2020-09-11 01:50:38 其他

原文鏈接:https://fuckcloudnative.io/posts/deploy-k3s-cross-public-cloud/

TCP 重置攻擊 是使用一個單一的資料包來執行的,只有幾個位元組大小,攻擊者制作并發送一個偽造的 TCP 重置包來干擾用戶和網站的連接,欺騙通信雙方終止 TCP 連接,我們偉大的 xx 長城便運用了這個技術來進行 TCP 關鍵字阻斷,

理解 TCP 重置攻擊并不需要具備深厚的網路知識功底,只需要一臺筆記本就可以對自己進行模擬攻擊,本文將會帶你了解 TCP 重置攻擊的原理,同時會幫助你理解很多關于 TCP 協議的特性,本文主要內容:

  • 回顧 TCP 協議的基礎知識
  • 了解 TCP 重置攻擊的原理
  • 使用一個簡單的 Python 腳本來模擬攻擊

下面開始分析 TCP 重置攻擊原理,

1. 偉大的 xx 長城是如何利用 TCP 重置攻擊的?

這一段略過,原因你懂得,感興趣的請直接看原文,

2. TCP 重置攻擊的作業原理

在 TCP 重置攻擊中,攻擊者通過向通信的一方或雙方發送偽造的訊息,告訴它們立即斷開連接,從而使通信雙方連接中斷,正常情況下,如果客戶端收發現到達的報文段對于相關連接而言是不正確的,TCP 就會發送一個重置報文段,從而導致 TCP 連接的快速拆卸,

TCP 重置攻擊利用這一機制,通過向通信方發送偽造的重置報文段,欺騙通信雙方提前關閉 TCP 連接,如果偽造的重置報文段完全逼真,接收者就會認為它有效,并關閉 TCP 連接,防止連接被用來進一步交換資訊,服務端可以創建一個新的 TCP 連接來恢復通信,但仍然可能會被攻擊者重置連接,萬幸的是,攻擊者需要一定的時間來組裝和發送偽造的報文,所以一般情況下這種攻擊只對長連接有殺傷力,對于短連接而言,你還沒攻擊呢,人家已經完成了資訊交換,

從某種意義上來說,偽造 TCP 報文段是很容易的,因為 TCP/IP 都沒有任何內置的方法來驗證服務端的身份,有些特殊的 IP 擴展協議(例如 IPSec)確實可以驗證身份,但并沒有被廣泛使用,客戶端只能接收報文段,并在可能的情況下使用更高級別的協議(如 TLS)來驗證服務端的身份,但這個方法對 TCP 重置包并不適用,因為 TCP 重置包是 TCP 協議本身的一部分,無法使用更高級別的協議進行驗證,

盡管偽造 TCP 報文段很容易,但偽造正確的 TCP 重置報文段并完成攻擊卻并不容易,為了理解這項作業的難度,我們需要先了解一下 TCP 協議的作業原理,

3. TCP 協議作業原理

TCP 協議的目標是向客戶端發送一份完整的資料副本,例如,如果我的服務器通過 TCP 連接向你的計算機發送我的網站的 HTML,你的計算機的 TCP 協議堆疊應該能夠以我發送的形式和順序輸出 HTML

然而現實生活中我的 HTML 內容并不是按順序發送的,它被分解成許多小塊(稱為 TCP 分組),每個小塊在網路上被單獨發送,并被重新組合成原來發送的順序,這種重新組合后的輸出被稱為 TCP 位元組流

將分組重建成位元組流并不簡單,因為網路是不可靠的,TCP分組可能會被丟棄,可能不按發送的順序到達客戶端,也可能會被重復發送、報文損壞等等,因此,TCP 協議的職責是在不可靠的網路上提供可靠的通信,TCP 通過要求連接雙方保持密切聯系,持續報告它們接收到了哪些資料來實作可靠通信,這樣服務端就能夠推斷出客戶端尚未接收到的資料,并重新發送丟失的資料,

為了進一步理解這個程序,我們需要了解服務端和客戶端是如何使用序列號(sequence numbers)來標記和跟蹤資料的,

TCP 序列號

TCP 協議的通信雙方, 都必須維護一個序列號(sequence numbers),對于客戶端來說,它會使用服務端的序列號來將接收到的資料按照發送的順序排列,

當通信雙方建立 TCP 連接時,客戶端與服務端都會向對方發送一個隨機的初始序列號,這個序列號標識了其發送資料流的第一個位元組,TCP 報文段包含了 TCP 頭部,它是附加在報文段開頭的元資料,序列號就包含在 TCP 頭部中,由于 TCP 連接是雙向的,雙方都可以發送資料,所以 TCP 連接的雙方既是發送方也是接收方,每一方都必須分配和管理自己的序列號,

確認應答

當接收方收到一個 TCP 報文段時,它會向發送方回傳一個 ACK 應答報文(同時將 TCP 頭部的 ACK 標志位置 1),這個 ACK 號就表示接收方期望從發送方收到的下一個位元組的序列號,發送方利用這個資訊來推斷接收方已經成功接收到了序列號為 ACK 之前的所有位元組,

TCP 頭部格式如下圖所示:

一個確認應答報文的 TCP 頭部必須包含兩個部分:

  • ACK 標志位置位 1
  • 包含確認應答號(ACK number)

TCP 總共有 6 個標志位,下文就會講到其中的 RST 標志位,

TCP 頭部包含了多個選項,其中有一個選擇確認選項(SACK),如果使用該選項,那么當接收方收到了某個范圍內的位元組而不是連續的位元組時,就會發送 SACK 告知對方,例如,只收到了位元組 1000~30004000~5000,但沒有收到 3001~3999,為了簡單起見,下文討論 TCP 重置攻擊時將忽略選擇確認選項,

如果發送方發送了報文后在一段時間內沒有收到 ACK,就認為報文丟失了,并重新發送報文,用相同的序列號標記,這就意味著,如果接收方收到了重復的報文,可以使用序列號來判斷是否見過這個報文,如果見過則直接丟棄,網路環境是錯綜復雜的,往往并不是如我們期望的一樣,先發送的資料包,就先到達目標主機,反而它很騷,可能會由于網路擁堵等亂七八糟的原因,會使得舊的資料包,先到達目標主機,一般分兩種情況:

  1. 發送的資料包丟失了
  2. 發送的資料包被成功接收,但回傳的 ACK 丟失了

這兩種情況對發送方來說其實是一樣的,發送方并不能區分是哪種情況,所以只能重新發送資料包,

只要不頻繁重復發送資料,額外的開銷基本可以忽略,

為偽造的重置包選擇序列號

構建偽造的重置包時需要選擇一個序列號,接收方可以接收序列號不按順序排列的報文段,但這種容忍是有限度的,如果報文段的序列號與它期望的相差甚遠,就會被直接丟棄,

因此,一個成功的 TCP 重置攻擊需要構建一個可信的序列號,但什么才是可信的序列號呢?對于大多數報文段(除了重置包,即 RST 包)來說,序列號是由接收方的接收視窗大小決定的,

TCP 滑動視窗大小

想象一下,將一臺上世紀 90 年代初的古老計算機,連接到現代千兆光纖網路,閃電般快速的網路可以以令人瞠目結舌的速度向這臺古老的計算機傳送資料,速度遠遠超過該計算機的處理能力,但并沒有什么卵用,因為只有接收方接收并處理了報文,才能認為這個報文已經被收到了,

TCP 協議堆疊有一個緩沖區,新到達的資料被放到緩沖區中等待處理,但緩沖區的大小是有限的,如果接收方的處理速度跟不上發送方的發送速度,緩沖區就會被填滿,一旦緩沖區被填滿,多余的資料就會被直接丟棄,也不會回傳 ACK,因此一旦接收方的緩沖區有了空位,發送方必須重新發送資料,也就是說,如果接收方的處理速度跟不上,發送方的發送速度再快也沒用,

緩沖區到底有多大?發送方如何才能知道什么時候可以一次發送更多的資料,什么時候該一次發送很少的資料?這就要靠 TCP 滑動視窗了,接收方的滑動視窗大小是指發送方無需等待確認應答,可以持續發送資料的最大值, 假設接收方的通告視窗大小為 100,000 位元組,那么發送方可以無需等待確認應答,持續發送 100,000 個位元組,再假設當發送方發送第 100,000 個位元組時,接收方已經發送了前 10,000 個位元組的 ACK,這就意味著視窗中還有 90,000 個位元組未被確認,發送方還可以再持續發送 10,000 個位元組,如果發送了 10,000 個位元組的程序中沒有收到任何的 ACK,那么接收方的滑動視窗將被填滿,發送方將停止發送新資料(可以繼續發送之前丟失的資料),直到收到相關的 ACK 才可以繼續發送,

TCP 連接雙方會在建立連接的初始握手階段通告對方自己視窗的大小,后續還可以動態調整,TCP 緩沖區大的服務器可能會宣告一個大視窗,以便最大限度提高吞吐量,TCP 緩沖區小的服務器可能會被迫宣告一個小視窗,這樣做會犧牲一定的吞吐量,但為了防止接收方的 TCP 緩沖區溢位,還是很有必要的,

換個角度來看,TCP 滑動視窗大小是對網路中可能存在的未確認資料量的硬性限制,我們可以用它來計算發送方在某一特定時間內可能發送的最大序列號(max_seq_no):

max_seq_no = max_acked_seq_no + window_size

其中 max_acked_seq_no 是接收方發送的最大 ACK 號,它表示發送方知道接收方已經成功接收的最大序列號,window_size 是視窗大小,它表示允許發送方最多發送的未被確認的位元組,所以發送方可以發送的最大序列號是:max_acked_seq_no + window_size

TCP 規范規定,接收方應該忽略任何序列號在接收視窗之外的資料,例如,如果接收方確認了所有序列號在 15,000 以下的位元組,且接收視窗大小為 30,000,那么接下來接收方只能接收序列號范圍在 15,000 ~ 45,000 之間的資料,如果一個報文段的部分資料在視窗內,另一部分資料在視窗外,那么視窗內的資料將被接收確認,視窗外的資料將被丟棄,注意:這里忽略了選擇確認選項,再強調一遍!

對于大多數 TCP 報文段來說,滑動視窗的規則告訴了發送方自己可以接收的序列號范圍,但對于重置報文來說,序列號的限制更加嚴格,這是為了抵御一種攻擊叫做盲目 TCP 重置攻擊(blind TCP reset attack),下文將會解釋,

TCP 重置報文段的序列號

對于 TCP 重置報文段來說,接收方對序列號的要求更加嚴格,只有當其序列號正好等于下一個預期的序列號時才能接收,繼續搬出上面的例子,接收方發送了一個確認應答,ACK 號為 15,000,如果接下來收到了一個重置報文,那么其序列號必須是 15,000 才能被接收,

如果重置報文的序列號超出了接收視窗范圍,接收方就會直接忽略該報文;如果其序列號在接收視窗范圍內,那么接收方就會回傳一個 challenge ACK,告訴發送方重置報文段的序列號是錯誤的,并告之正確的序列號,發送方可以利用 challenge ACK 中的資訊來重新構建和發送重置報文,

其實在 2010 年之前,TCP 重置報文段和其他報文段的序列號限制規則一樣,但無法抵御盲目 TCP 重置攻擊,后來才采取這些措施施加額外的限制,

盲目 TCP 重置攻擊

如果攻擊者能夠截獲通信雙方正在交換的資訊,攻擊者就能讀取其資料包上的序列號和確認應答號,并利用這些資訊得出偽裝的 TCP 重置報文段的序列號,相反,如果無法截獲通信雙方的資訊,就無法確定重置報文段的序列號,但仍然可以批量發出盡可能多不同序列號的重置報文,以期望猜對其中一個序列號,這就是所謂的盲目 TCP 重置攻擊(blind TCP reset attack),

在 2010 年之前 TCP 的原始版本中,攻擊者只需要猜對接收視窗內的隨便哪一個序列號即可,一般只需發送幾萬個報文段就能成功,采取額外限制的措施后,攻擊者需要發送數以百萬計的報文段才有可能猜對序列號,這幾乎是很難成功的,更多細節請參考 RFC-5963,

4. 模擬攻擊

以下實驗是在 OSX 系統中完成的,其他系統請自行測驗,

現在來總結一下偽造一個 TCP 重置報文要做哪些事情:

  • 嗅探通信雙方的交換資訊,
  • 截獲一個 ACK 標志位置位 1 的報文段,并讀取其 ACK 號,
  • 偽造一個 TCP 重置報文段(RST 標志位置為 1),其序列號等于上面截獲的報文的 ACK 號,這只是理想情況下的方案,假設資訊交換的速度不是很快,大多數情況下為了增加成功率,可以連續發送序列號不同的重置報文,
  • 將偽造的重置報文發送給通信的一方或雙方,時其中斷連接,

為了實驗簡單,我們可以使用本地計算機通過 localhost 與自己通信,然后對自己進行 TCP 重置攻擊,需要以下幾個步驟:

  1. 在兩個終端之間建立一個 TCP 連接,
  2. 撰寫一個能嗅探通信雙方資料的攻擊程式,
  3. 修改攻擊程式,偽造并發送重置報文,

下面正式開始實驗,

建立 TCP 連接

可以使用 netcat 工具來建立 TCP 連接,這個工很多作業系統都預裝了,打開第一個終端視窗,運行以下命令:

$ nc -nvl 8000

這個命令會啟動一個 TCP 服務,監聽埠為 8000,接著再打開第二個終端視窗,運行以下命令:

$ nc 127.0.0.1 8000

該命令會嘗試與上面的服務建立連接,在其中一個視窗輸入一些字符,就會通過 TCP 連接發送給另一個視窗并列印出來,

嗅探流量

撰寫一個攻擊程式,使用 Python 網路庫 scapy 來讀取兩個終端視窗之間交換的資料,并將其列印到終端上,完整的代碼參考我的 GitHub 倉庫,代碼的核心是呼叫 scapy 的嗅探方法:

t = sniff(
        iface='lo0',
        lfilter=is_packet_tcp_client_to_server(localhost_ip, localhost_server_port, localhost_ip),
        prn=log_packet,
        count=50)

這段代碼告訴 scapylo0 網路介面上嗅探資料包,并記錄所有 TCP 連接的詳細資訊,

  • iface : 告訴 scapy 在 lo0(localhost)網路介面上進行監聽,
  • lfilter : 這是個過濾器,告訴 scapy 忽略所有不屬于指定的 TCP 連接(通信雙方皆為 localhost,且埠號為 8000)的資料包,
  • prn : scapy 通過這個函式來操作所有符合 lfilter 規則的資料包,上面的例子只是將資料包列印到終端,下文將會修改函式來偽造重置報文,
  • count : scapy 函式回傳之前需要嗅探的資料包數量,

發送偽造的重置報文

下面開始修改程式,發送偽造的 TCP 重置報文來進行 TCP 重置攻擊,根據上面的解讀,只需要修改 prn 函式就行了,讓其檢查資料包,提取必要引數,并利用這些引數來偽造 TCP 重置報文并發送,

例如,假設該程式截獲了一個從(src_ip, src_port)發往 (dst_ip, dst_port)的報文段,該報文段的 ACK 標志位已置為 1,ACK 號為 100,000,攻擊程式接下來要做的是:

  • 由于偽造的資料包是對截獲的資料包的回應,所以偽造資料包的源 IP/Port 應該是截獲資料包的目的 IP/Port,反之亦然,
  • 將偽造資料包的 RST 標志位置為 1,以表示這是一個重置報文,
  • 將偽造資料包的序列號設定為截獲資料包的 ACK 號,因為這是發送方期望收到的下一個序列號,
  • 呼叫 scapysend 方法,將偽造的資料包發送給截獲資料包的發送方,

對于我的程式而言,只需將這一行取消注釋,并注釋這一行的上面一行,就可以全面攻擊了,按照步驟 1 的方法設定 TCP 連接,打開第三個視窗運行攻擊程式,然后在 TCP 連接的其中一個終端輸入一些字串,你會發現 TCP 連接被中斷了!

進一步實驗

  1. 可以繼續使用攻擊程式進行實驗,將偽造資料包的序列號加減 1 看看會發生什么,是不是確實需要和截獲資料包的 ACK 號完全相同,
  2. 打開 Wireshark,監聽 lo0 網路介面,并使用過濾器 ip.src =https://www.cnblogs.com/ryanyangcs/p/= 127.0.0.1 && ip.dst == 127.0.0.1 && tcp.port == 8000 來過濾無關資料,你可以看到 TCP 連接的所有細節,
  3. 在連接上更快速地發送資料流,使攻擊更難執行,

總的來說,TCP 重置攻擊既深奧又簡單,祝你實驗順利,


Kubernetes 1.18.2 1.17.5 1.16.9 1.15.12離線安裝包發布地址http://store.lameleg.com ,歡迎體驗, 使用了最新的sealos v3.3.6版本, 作了主機名決議配置優化,lvscare 掛載/lib/module解決開機啟動ipvs加載問題, 修復lvscare社區netlink與3.10內核不兼容問題,sealos生成百年證書等特性,更多特性 https://github.com/fanux/sealos ,歡迎掃描下方的二維碼加入釘釘群 ,釘釘群已經集成sealos的機器人實時可以看到sealos的動態,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/3906.html

標籤:其他

上一篇:云計算的下半場 —— Serverless 2020 發展解讀

下一篇:萬物皆可 Serverless 之我的 Serverless 之路

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more