滲透筆記1

第一天

工具:cs cobalt strike 4.9? / msf kali (自帶 Ubuntu)

cs cobalt strike 4.9:server-client

server部署在云服務器上,client分別在各地,與server相連接;連接上后就可以共享上線主機。

對于server主要執行主件是teamserver和TeamServerImage,他們是用Java寫的,所以要jdk的依賴,Windows和Ubuntu都需要下載安裝,用命令java -version查看是否安裝成功

運行server

root@ubuntu:~/cs4.9/Server# ./teamserver 192.168.59.147 oupeng  (IP 密碼)
反彈性木馬:反向,受害者主動連接入侵者,內網往外網走,所以防火墻對此管理沒有嚴格;如果受害者不知道入侵者的ip地址,那么受害者是連接不到入侵者的。(這就是為什么用反彈性木馬和為什么要寫ip)

打開client,監聽木馬:創建一個監聽器(設置不常用的端口),方便你知道受害者何時連接的你

案例一:釣魚郵件
假設我們是一個紅隊入侵者,我們需要去攻擊某個學校 ,但學校的安全做的不錯,沒有明顯的漏洞,現有的系統接入0信任,需要一個老師或者學生賬號
1、用釣魚郵件并且通過免殺木馬讓學生或老師中招
2、第一種(等待):利用遠程控制木馬的鍵盤監聽器去監聽等待,如果他輸入賬號,那么就能得到他的賬號和密碼 ———— 效率太低第二種(主動出擊):讓他主動寫入自己的學號或教師賬號以及密碼
3、要一個釣魚網站 ———— 學校的官網(直接將源碼另存為)
4、關鍵問題:如何他去走進你的釣魚網站 
5、現已將代碼部署到自己的網站,但沒有學校域名的權限(沒有辦法讓域名解析到自己的服務器上)
6、解決方法:仿造一個相似域名,可取性為0    edu.cn申請不到https://www.cdcas-edu.com  成功率較低 
8、現已讓對方中木馬,所以要做出hosts ———— dns劫持 ———— 劫持dns解析,讓其解析到自己的服務器上
9、dns解析流程 ———— 才能知道hosts為什么可以dns劫持
hosts的Windows路徑:C:\Windows\System32\drivers\etc\hosts
10、問題:在自己的電腦或者linux服務器上部署一個web應用需要什么組件 ———— web中間件  
web中間件:nginx (apache toimcat weblogic)
12、部署nginx服務,windows可以用小皮面板;要配置虛擬主機才可以讓域名解析到本地
虛擬主機是否能夠匹配到這個,需要看虛擬主機的配置項
位置:D:\phpstudy_pro\Extensions\Nginx1.15.11\conf\vhosts\0localhost_80.conf
用vscode打開配置(復制粘貼后修改server_name、root),完成后重啟小皮的nginx
當別人訪問登錄后,服務器上就能獲取到他的賬號和密碼,在D:\phpstudy_pro\WWW\服務器名\account.txt中
13、問題
1. dns解析過程 
(1)查詢本地 ———— 查詢緩存 
(2)本地緩存沒有,就到hosts查看是否有域名和ip的對應關系 如果有則返回
(3)都沒有,則查本地路由 ————> 查詢根域服務器 ————> dns ————> 13個根域服務器地址
(4)查找13臺根域服務器
(5)尋找com頂級域尋找百度的dns服務器最終返回baidu.com的A的對應服務器ip迭代查詢Windows和Linux下的dns解析命令:
linux:dig  nslookup
例:xyl@ubuntu:~$ dig +trace www.baidu.comxyl@ubuntu:~$ nslookup www.baidu.comWindows:nslookup ———— nslookup www.baidu.com2. web中間件的部署和搭建(linux)
搭建LNMP和WNMP
LNMP: linux nginx mysql php
WNMP: Windows nginx(小皮面板) mysql php也可以docker搭建(過程沒那么繁瑣)
https://command-not-found.com/ 可以尋找安裝包的命令3 如何配置web中間件的虛擬主機總結4步:1.中c2(免殺)  2.劫持dns  3.讓他登錄釣魚網站 4.拿下他的賬號密碼 
Ubuntu安裝nginx、mysql以及php的部署
nginx:
1、編譯安裝
# 復制22的鏈接地址(復制源碼),用wget下載
wget https://nginx.org/download/nginx-1.22.1.tar.gz
tar -zxvf nginx-1.22.1.tar.gz
mv nginx-1.22.1 nginx 改名方便使用
cd nginx2、安裝依賴包
apt-get install gcc
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
apt-get install openssl 
apt-get install libssl-dev3、編譯nginx
# 執行命令
./configure
# 執行make命令
make
# 執行make install命令
make install4、啟動nginx
cd /usr/local/nginx/sbin
./nginx   啟動nginx
ps -ef |grep nginx  查看進程
http://192.168.59.147/ 訪問網站,查看是否成功,如下圖一php:
1、添加數據源
# 執行三條命令,添加php的源地址,更新,安裝
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update
apt list |grep php   查看是否有安裝包2、安裝php
#? nginx使用php的話要用到php7.3-fpm,所以要安裝php-fpm
sudo apt-get install php7.3 php7.3-mysql php7.3-fpm php7.3-curl php7.3-xml php7.3-gd php7.3-mbstring php-memcached php7.3-zip
# 默認是最高版本
pdate-alternatives --config php    修改版本
php -v   查看當前版本3、配置php-fpm
find / -name www.conf   用find查找文件
vim /etc/php/7.3/fpm/pool.d/www.conf
# 把監聽端口改掉
將;listen = /run/php/php7.3-fpm.sock 改為listen = 127.0.0.1:9000
service php7.3-fpm restart   重啟服務9.啟動php-fpm
service php7.3-fpm restart
lsof -i:9000     查看9000端口是否開放  (netstat -lnt | grep 9000)10、nginx下要有配置文件才能和php-fpm相連接
cd /usr/local/nginx/conf/
vim nginx.conf
將以下內容注釋取消,且修改結果如下:location ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one#location ~ /\.ht {deny  all;}
# 保存退出
# 重啟nginx
root@ubuntu:/usr/local/nginx# cd sbin/
root@ubuntu:/usr/local/nginx/sbin# ./nginx -s reload# 檢測配置是否成功
root@ubuntu:/usr/local/nginx# cd html/
root@ubuntu:/usr/local/nginx/html# vim web.php 
內容如下:
<?php phpinfo(); ?>http://192.168.59.147/web.php   訪問該網站看是否配置成功,結果如圖二mysql:
# 安裝mysql
apt-get install mysql-server
# 連接mysql
mysql -uroot -p123這樣有兩個問題:1、mysql沒有密碼限制;2、mysql8.0和php7.3里的mysqli-connect不兼容
mysql -uroot -proot123//..
# 修改密碼
mysql> alter user 'root'@'localhost' identified mysql_native_password by '123';vscode遠程登陸Ubuntu,修改靶場文件中的mysql連接密碼,與Ubuntu中的一致,
訪問網站http://192.168.59.147/sqlilabs,得圖三

nginx成功結果(圖一):

nginx和php配置成功結果(圖二):

圖三:

第二天

名詞解釋:

名詞解釋

1.POC、EXP、Payload與Shellcode
POC:全稱‘Proof of Concept',中文’概念驗證’,常指一段漏洞證明的代碼。EXP:全稱'Exploit’,中文‘利用',指利用系統漏洞進行攻擊的動作。Payload:中文‘有效載荷’,指成功exploit之后,真正在目標系統執行的代碼或指令。Shellcode:簡單翻譯'shell代碼',是Payload的一種,由于其建立正向/反向shell而得名。

poc就是用來做漏洞測試,不會進一步利用;比如執行某個命令來證明這個漏洞是可以執行的

exp相對于poc就會進一步利用(漏洞利用),比如寫入webshell網站后門等http://192.168.59.147/web.php

(<? php eval($_POST['123']); ?>)因為比較簡單,被稱為“一句話木馬”

(網站后門起到控制整個網站的作用)

payload:比如webshell是一個腳本,那么他的源碼就是payload(比如上面一句話木馬的內容就是payload)

shellcode是payload的一種,更多出現在遠程控制木馬里面(機器碼 python/c),也就是遠程控制木馬里的內容

:將web.php文件寫成system($_GET['c']);執行命令函數——執行get傳參——是一個命令執行漏洞

(php中system是執行外部程序,并且顯示輸出)

現在傳一個id,就是一個poc測試,測試發現里面是有漏洞的,就開始考慮其他三個

如果在網址上執行echo 11111 > webshell.php,結果顯示無法執行,因為nginx中起作用的worker權限是nobody,而html文件的權限是root,所以執行不成功,但一般來說nginx、php-fpm和html文件的所屬者都會統一,修改權限后則能成功(chown -R? /? nginx.conf)

錯誤:1、權限問題;2、可查看日志logs

后門引發問題:

? ? ? ??1.當你水平越來越高的時候,你的后門太多了不好管理

????????2.后門的操作內容比較繁雜,是否可以有工作進行快捷管理

? ? ? ? 方法:三款工具

webshell利用與管理工具:

(1)蟻劍 —— 師承中國菜刀

webshell代理功能有刷新、刪除、修改、上傳、下載等

(2)冰蝎 —— rebeyond 他獨創webshell加密機制——webshell —— 用Java寫的要jdk

冰蝎的傳輸協議是加密的

工作流程:

本地就是冰蝎客戶端,遠程就是你要把webshell傳遞過去的服務器

  1. 本地對Payload進行加密,然后通過POST請求發送給遠程服務端;
  2. 服務端收到Payload密文后,利用解密算法進行解密;
  3. 服務端執行解密后的Payload,并獲取執行結果;
  4. 服務端對Payload執行結果進行加密,然后返回給本地客戶端;
  5. 客戶端收到響應密文后,利用解密算法解密,得到響應內容明文。
在冰蝎的協議傳輸中用AES生成服務器default_aes(路徑:/bx46/server/default_aes)
其下有三個文件
shell.aspx、(shell.jsp、shell.php)重點看這兩個文件  這三個文件都在服務端處理的shell.php:先進行base64加密,再解密   
客戶端將想要執行的命令加密發送給服務器,假設服務器是shell.php,服務器通過file_get_contents獲取到數據進行解密,用eval執行命令,執行完后的命令加密推到客戶端,客戶端執行解密下一步將php文件發到nginx的html下

冰蝎最大的特點是將流量全部加密

(3)哥斯拉——冰蝎類似

2.幾點注意POC是用來證明漏洞存在的,EXP是用來利用漏洞的,兩者通常不是一類,或者說,POC通常是無害的,Exp通常是有害的,有了POC,才有EXP。Payload有很多種,它可以是Shellcode,也可以直接是一段系統命令。同一個Payload可以用于多個漏洞,但每個漏洞都有其自己的
EXP,也就是說不存在通用的EXP。Shellcode也有很多種,包括正向的,反向的,甚至meterpreter。Shellcode與Shellshcok不是一個,Shellshock特指14年發現的Shellshock漏洞。
免殺馬:(蟻劍)
demo1.py
(1)將機器碼拿下來,做base64轉碼
(2)在內存空間中申請內存
(3)將shellcode放到內存中去
(4)創建一個線程,再直接把shellcode執行起來免殺過程:
1. 先用cs4.9(python)生成一個機器碼,然后將機器碼進行base64編碼
# shellcode是從python中來的
# 如果shellcode直接寫進來,也就是硬編碼進來,那么只有一個結局,就是被殺 
# 所以要想辦法讓他不出現特征碼 ———— 方法:用服務器直接下載2. 將base64編碼放在服務器一個txt文件中去
# 在服務器的test.txt文件中,將惡意shellcode代碼進行了base64編碼,試圖躲避殺軟的查殺# 代碼中有太多特征值,過不了免殺 ———— 方法:利用python發序列化模塊來執行
3. 將執行完A類序列化和base64encode的結果,進行一個ase加密 加密模式cbc 加密網站http://tool.chacuo.net/cryptaes
# python序列化后的內容,經過反序列化的操作,里面的代碼會自動執行
# 對A類進行了序列化  pickle是python序列化模塊 dumps 序列化 loads反序列化
# 當反序列化時exec命令執行函數就會執行shellcode,也會把惡意代碼執行起來# 序列化就是把數據“打包”成可以保存或發送的格式,反序列化就是“拆包”還原成原來的數據
# 序列化模塊有pickle、json、marshal、yaml總結:
# 第一:將硬編碼修改為服務器下載
# 第二:將直接shellcode的惡意代碼,改為變量值
# 第三:將shellcode變量值放入A類中,然后又進行序列化操作
# 第四:將序列化后的值 進行base64編碼以上四步對于360、火絨、Windows defeider是無法免殺的
# A類序列化以后的原始狀態 dumps 序列化 loads 反序列化
demo2
在執行demo1后得到了base64編碼后的值
然后我們利用ASE的CBC模式對該值進行對稱加密,加密輸出結果
# 在一定時間內,因為殺毒軟件沒有密鑰就無法解密該結果,那么就不知道這個是什么東西,那么就將它放行了
# AES加密要指定模式、秘鑰、偏移量將執行完A類序列化和base64encode的結果,進行一個ase加密 加密模式cbc 加密網站http://tool.chacuo.net/cryptaes
# 加密的秘鑰ysIx0oKueJV15dkA4P3WvDjnq9giB62=  加密偏移量 jbMNXRf954m0WUzQ aes加密完 會自動出書base64編碼的內容# A類進行序列化 ----- >base64encode編碼·-----正向過程:
A類進行序列化 -----> base64encode編碼 ------> AES加密 ----> base64編碼逆向過程:
base64decode解碼 -----> AES解碼 -----> base64解碼 -----> 反序列化
代碼中:base64.b64decode --- decrypt --- base64.b64decode --- json.loads
# json是因為別名:import pickle as json操作:
1、在本地啟動一個簡單的 HTTP 服務器
python3 -m http.server 9999
# 解釋器 -m:指定模塊 http.server:Python庫中的一個模塊,用于快速啟動一個簡單的HTTP服務器 端口號
2、執行代碼為了加大防范,可以將pick進行序列化、base64編碼,然后利用python切片,將木馬打亂,讓木馬無法執行;將打亂后的木馬放入gif文件(圖片)中,記得加入文件頭gif89a,放在服務器中還原:1. 下載gif圖片,讀取木馬利用代碼  2 還原木馬 3. 解碼
demo3
把demo2更進一步包裝繼續將其做變量,放到自定義base64編碼demo1
1、從服務器下載數據
2、自定義base64解碼,還原成原來的代碼,但只是序列化、反序列化得到的值放在那
3、要把該值進行序列化、反序列化反向遞進

信息收集、信息泄露
弱口令:

弱口令是指那些強度不夠,容易被猜解的,類似于123、abc這樣的口令密碼

如何利用信息泄露挖掘一個edu src漏洞1、首先找學校的官網,在學校眾多網站中找到一個相對防御較弱的分站(一個主站,多個分站)怎么找分站? ———— 比如:EZ工具突破0信任入口,需要大量的教工號和學號 ———— 百度、谷歌、學校網站獎學金等信息找學號site:peihua.cn intext;"學工號"
一般是找默認密碼固定的
找到信息后,用抓取軟件(burpsuite)暴力破解,破解哪個字段就打上$符,在payloads導入信息文件,intruder爆破(548、539等:失敗)中衛漏洞 信息泄露+弱口令破解
攻擊工具:
肉雞
# 所謂“肉雞”是一種很形象的比喻,比喻那些可以被攻擊者控制的電腦、手機、服務器或者其他攝像頭、路由器等智能設備,用于發動網絡攻擊。
# 例如在2016年美國東海岸斷網事件中,黑客組織控制了大量的聯網攝像頭用于發動網絡攻擊,這些攝像頭則可被稱為“肉雞”。僵尸網絡
# 僵尸網絡Botnet是指采用一種或多種傳播手段,將大量主機感染病毒,從而在控制者和被感染主機之間所形成的一個可一對多控制的網絡。
# 僵尸網絡是一個非常形象的比喻,眾多的計算機在不知不覺中如同中國古老傳說中的僵尸群一樣被人驅趕和指揮著,成為被攻擊者執行各類惡意活動(DDOS、垃圾郵件等)利用的一種基礎設施。木馬
# 就是那些表面上偽裝成了正常的程序,但是當這些程序運行時,就會獲取系統的整個控制權限。
# 有很多黑客就是熱衷使用木馬程序來控制別人的電腦,比如灰鴿子、GhOst、PcShare等等。網頁木馬
# 表面上偽裝成普通的網頁或是將惡意代碼直接插入到正常的網頁文件中,當有人訪問時,網頁木馬就會利用對方系統或者瀏覽器的漏洞自動將配置好的木馬服務端植入到訪問者的電腦上來自動執行將受影響的客戶電腦變成肉雞或納入僵尸網絡。Rootkit
# Rootkit是攻擊者用來隱藏自己的行蹤和保留root(根權限,可以理解成WINDOWS下的system或者管理員權限)訪問權限的工具。
# 通常,攻擊者通過遠程攻擊的方式獲得root訪問權限,或者是先使用密碼猜解(破解)的方式獲得對系統的普通訪問權限,進入系統后,再通過對方系統存在的安全漏洞獲得系統的root或system權限。然后,攻擊者就會在對方的系統中安裝Rootkit,以達到自己長久控制對方的目的,Rootkit功能上與木馬和后門很類似,但遠比它們要隱蔽。蠕蟲病毒
# 它是一類相對獨立的惡意代碼,利用了聯網系統的開放性特點,通過可遠程利用的漏洞自主地進行傳播,受到控制終端會變成攻擊的發起方,嘗試感染更多的系統。
# 蠕蟲病毒的主要特性有:自我復制能力、很強的傳播性、潛伏性、特定的觸發性、很大的破壞性。I震網病毒又名Stuxnet病毒,是第一個專門定向攻擊真實世界中基礎(能源)設施的“蠕蟲“病毒,比如核電站,水壩,國家電網。
作為世界上首個網絡“超級破壞性武器”,Stuxnet的計算機病毒已經感染了全球超過45000個網絡,其目標伊朗的鈾濃縮設備遭到的攻擊
最為嚴重。勒索病毒
# 主要以郵件、程序木馬、網頁掛馬的形式進行傳播。該病毒性質惡劣、危害極大,一旦感染將給用戶帶來無法估量的損失。這種病毒利用各種加密算法對文件進行加密,被感染者一般無法解密,必須拿到解密的私鑰才有可能破解。挖礦木馬
# 一種將PC、移動設備甚至服務器變為礦機的木馬,通常由挖礦團伙植入,用于挖掘比特幣從而賺取利益。攻擊載荷
# 攻擊載荷(Payload)是系統被攻陷后執行的多階段惡意代碼。
# 通常攻擊載荷附加于漏洞攻擊模塊之上,隨漏洞攻擊一起分發,并可能通過網絡獲取更多的組件。嗅探器(Sniffer)
#就是能夠捕獲網絡報文的設備或程序。嗅探器的正當用處在于分析網絡的流量,以便找出所關心的網絡中潛在的問題。惡意軟件
# 被設計來達到非授權控制計算機或竊取計算機數據等多種惡意行為的程序。間諜軟件
# 一種能夠在用戶不知情的情況下,在其電腦、手機上安裝后門,具備收集用戶信息、監聽、偷拍等功能的軟件。后門
# 這是一種形象的比喻,入侵者在利用某些方法成功的控制了目標主機后,可以在對方的系統中植入特定的程序,或者是修改某些設置,用于訪問、查看或者控制這臺主機。
# 這些改動表面上是很難被察覺的,就好象是入侵者偷偷的配了一把主人房間的鑰匙,或者在不起眼處修了一條按到,可以方便自身隨意進出。
# 通常大多數木馬程序都可以被入侵者用于創建后門(BackDoor)。弱口令
# 指那些強度不夠,容易被猜解的,類似123,abc這樣的口令(密碼)。漏洞
# 漏洞是在硬件、軟件、協議的具體實現或系統安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權的情況下訪問或破壞系統。
# 奇安信集團董事長齊向東在《漏洞》一書中指出,軟件的缺陷是漏洞的一個主要來源,缺陷是天生的,漏洞是不可避免的。遠程命令執行漏洞
# 由于系統設計實現上存在的漏洞,攻擊者可能通過發送特定的請求或數據導致在受影響的系統上執行攻擊者指定的任意命令。Oday漏洞
# Oday漏洞最早的破解是專門針對軟件的,叫做WAREZ,后來才發展到游戲,音樂,影視等其他內容的。
# Oday中的0表示Zero,早期的0day表示在軟件發行后的24小時內就出現破解版本。
# 在網絡攻防的語境下,0day漏洞指那些已經被攻擊者發現學握并開始利用,但還沒有被包括受影響軟件廠商在內的公眾所知的漏洞,這類漏洞對攻擊者來說有完全的信息優勢,由于沒有漏洞的對應的補丁或臨時解決方案,防守方不知道如何防御,攻擊者可以達成最大可能的威脅。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66442.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66442.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66442.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用Python實現SVM搭建金融反詐模型(含調試運行)

1.概述 信用卡盜刷一般發生在持卡人信息被不法分子竊取后&#xff0c;復制卡片進行消費或信用卡被他人冒領后激活并消費等情況下。一旦發生信用卡盜刷&#xff0c;持卡人和銀行都會遭受一定的經濟損失。本節要運用支持向量機分類算法搭建一個金融反欺詐模型。 2.數據集 使用…

HunyuanVideo 文生視頻模型實踐

HunyuanVideo 文生視頻模型實踐 flyfish 運行 HunyuanVideo 模型使用文本生成視頻的推薦配置&#xff08;batch size 1&#xff09;&#xff1a; 模型分辨率(height/width/frame)峰值顯存HunyuanVideo720px1280px129f60GHunyuanVideo544px960px129f45G 本項目適用于使用 N…

第6章 ThreadGroup詳細講解(Java高并發編程詳解:多線程與系統設計)

1.ThreadGroup 與 Thread 在Java程序中&#xff0c; 默認情況下&#xff0c; 新的線程都會被加入到main線程所在的group中&#xff0c; main線程的group名字同線程名。如同線程存在父子關系一樣&#xff0c; Thread Group同樣也存在父子關系。圖6-1就很好地說明了父子thread、父…

nginx常用配置 (含負載均衡、反向代理、限流、Gzip壓縮、圖片防盜鏈 等示例)

nginx的配置文件通常在 /etc/nginx/nginx.conf , /etc/nginx/conf.d/*.conf 中&#xff0c; 一般直接 改 conf.d目錄下的 default.conf文件&#xff0c; 然后 先檢測配置文件是否有錯誤 nginx -t 再重新加載配置文件 或 重啟nginx&#xff0c;命令如下 nginx -s reload 或…

Python編程與在線醫療平臺數據挖掘與數據應用交互性研究

一、引言 1.1 研究背景與意義 在互聯網技術飛速發展的當下,在線醫療平臺如雨后春筍般涌現,為人們的就醫方式帶來了重大變革。這些平臺打破了傳統醫療服務在時間和空間上的限制,使患者能夠更加便捷地獲取醫療資源。據相關報告顯示,中國基于互聯網的醫療保健行業已進入新的…

Linux網絡_套接字_UDP網絡_TCP網絡

一.UDP網絡 1.socket()創建套接字 #include<sys/socket.h> int socket(int domain, int type, int protocol);domain (地址族): AF_INET網絡 AF_UNIX本地 AF_INET&#xff1a;IPv4 地址族&#xff0c;適用于 IPv4 協議。用于網絡通信AF_INET6&#xff1a;IPv6 地址族&a…

1 行命令引發的 Go 應用崩潰

一、前言 不久前&#xff0c;阿里云 ARMS 團隊、編譯器團隊、MSE 團隊攜手合作&#xff0c;共同發布并開源了 Go 語言的編譯時自動插樁技術。該技術以其零侵入的特性&#xff0c;為 Go 應用提供了與 Java 監控能力相媲美的解決方案。開發者只需將 go build 替換為新編譯命令 o…

R語言的并發編程

R語言的并發編程 引言 在現代計算中&#xff0c;如何有效地利用計算資源進行數據處理和分析已成為一個重要的研究方向。尤其在大數據時代&#xff0c;數據量的急劇增加讓單線程處理方式顯得力不從心。為了解決這一問題&#xff0c;各種編程語言都開展了并發編程的研究和應用。…

Flink(十):DataStream API (七) 狀態

1. 狀態的定義 在 Apache Flink 中&#xff0c;狀態&#xff08;State&#xff09; 是指在數據流處理過程中需要持久化和追蹤的中間數據&#xff0c;它允許 Flink 在處理事件時保持上下文信息&#xff0c;從而支持復雜的流式計算任務&#xff0c;如聚合、窗口計算、聯接等。狀…

C#項目生成時提示缺少引用

問題描述 剛從git或svn拉取下來的C#項目&#xff0c;在VS生成時提示缺少引用 解決方案 1、從“管理NuGet程序包”中下載并安裝缺少的引用&#xff0c;如果引用較多逐個下載安裝會比較麻煩&#xff0c;建議采用下面第2種方案處理 2、通過命令對所有缺少引用進行安裝 &#…

EAMM: 通過基于音頻的情感感知運動模型實現的一次性情感對話人臉合成

EAMM: 通過基于音頻的情感感知運動模型實現的一次性情感對話人臉合成 1所有的材料都可以在EAMM: One-Shot Emotional Talking Face via Audio-Based Emotion-Aware Motion Model網站上找到。 摘要 盡管音頻驅動的對話人臉生成技術已取得顯著進展&#xff0c;但現有方法要么忽…

BeanFactory 是什么?它與 ApplicationContext 有什么區別?

談到Spring&#xff0c;那勢必要講講容器 BeanFactory 和 ApplicationContext。 BeanFactory是什么&#xff1f; BeanFactory&#xff0c;其實就是 Spring 容器&#xff0c;用于管理和操作 Spring 容器中的 Bean。可能此時又有初學的小伙伴會問&#xff1a;Bean 是什么&#x…

【深度學習】Huber Loss詳解

文章目錄 1. Huber Loss 原理詳解2. Pytorch 代碼詳解3.與 MSELoss、MAELoss 區別及各自優缺點3.1 MSELoss 均方誤差損失3.2 MAELoss 平均絕對誤差損失3.3 Huber Loss 4. 總結4.1 優化平滑4.2 梯度較好4.3 為什么說 MSE 是平滑的 1. Huber Loss 原理詳解 Huber Loss 是一種結合…

python實現pdf轉word和excel

一、引言   在辦公中&#xff0c;我們經常遇收到pdf文件格式&#xff0c;因為pdf格式文件不易修改&#xff0c;當我們需要編輯這些pdf文件時&#xff0c;經常需要開通會員或收費功能才能使用編輯功能。今天&#xff0c;我要和大家分享的&#xff0c;是如何使用python編程實現…

【PyCharm】連接Jupyter Notebook

【PyCharm】相關鏈接 【PyCharm】連接 Git【PyCharm】連接Jupyter Notebook【PyCharm】快捷鍵使用【PyCharm】遠程連接Linux服務器【PyCharm】設置為中文界面 【PyCharm】連接Jupyter Notebook PyCharm連接Jupyter Notebook的過程可以根據不同的需求分為 本地連接 和 遠程連…

Java鎖 公平鎖和非公平鎖 ReentrantLock() 深入源碼解析

賣票問題 我們現在有五個售票員 五個線程分別賣票 賣票 ReentrantLock(); 運行后全是 a 對象獲取 非公平鎖缺點之一 容易出現鎖饑餓 默認是使用的非公平鎖 也可以傳入一個 true 參數 使其變成公平鎖 生活中排隊講求先來后到 視為公平 程序中的公平性也是符合請求鎖的絕對…

「劉一哥GIS」系列專欄《GRASS GIS零基礎入門實驗教程(配套案例數據)》專欄上線了

「劉一哥GIS」系列專欄《GRASS GIS零基礎入門實驗教程》全新上線了&#xff0c;歡迎廣大GISer朋友關注&#xff0c;一起探索GIS奧秘&#xff0c;分享GIS價值&#xff01; 本專欄以實戰案例的形式&#xff0c;深入淺出地介紹了GRASS GIS的基本使用方法&#xff0c;用一個個實例講…

企業級NoSQL數據庫Redis

1.瀏覽器緩存過期機制 1.1 最后修改時間 last-modified 瀏覽器緩存機制是優化網頁加載速度和減少服務器負載的重要手段。以下是關于瀏覽器緩存過期機制、Last-Modified 和 ETag 的詳細講解&#xff1a; 一、Last-Modified 頭部 定義&#xff1a;Last-Modified 表示服務器上資源…

使用Flask和Pydantic實現參數驗證

使用Flask和Pydantic實現參數驗證 1 簡介 Pydantic是一個用于數據驗證和解析的 Python 庫&#xff0c;版本2的性能有較大提升&#xff0c;很多框架使用Pydantic做數據校驗。 # 官方參考文檔 https://docs.pydantic.dev/latest/# Github地址 https://github.com/pydantic/pyd…

ScratchLLMStepByStep:訓練自己的Tokenizer

1. 引言 分詞器是每個大語言模型必不可少的組件&#xff0c;但每個大語言模型的分詞器幾乎都不相同。如果要訓練自己的分詞器&#xff0c;可以使用huggingface的tokenizers框架&#xff0c;tokenizers包含以下主要組件&#xff1a; Tokenizer: 分詞器的核心組件&#xff0c;定…