四、應急響應

一、linux入侵排查

思路:

1、查看帳號

  • 查看/etc/passwd文件中使用 /bin/bash 作為默認 shell 的用戶。

  • 查詢特權用戶特權用戶(uid 為0)

  • 查詢可以遠程登錄的帳號信息

  • 除root帳號外,其他帳號是否存在sudo權限。

  • 禁用或刪除多余及可疑的帳號

用find命令查看擁有可疑權限的文件

2、查看執行過的系統命令

  • 進入用戶目錄下,導出歷史命令。cat .bash_history >> history.txt

3、檢查異常端口、異常進程、開機啟動項、定時任務防止后門

4、檢查系統日志

1.1 賬號安全

方式:
1、用戶信息文件 /etc/passwd
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用戶名:密碼:用戶ID:組ID:用戶說明:家目錄:登陸之后的 shell
注意:無密碼只允許本機登陸,遠程不允許登陸

2、影子文件 /etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之后的寬限天數:賬號失效時間:保留

查看特權賬號

查詢登錄信息

成功:

失敗:

1.2 歷史命令

基本使用:

通過 .bash_history 文件查看帳號執行過的系統命令

1、root 用戶的歷史命令histroy

2、打開 /home 各帳號目錄下的 .bash_history,查看普通帳號執行的歷史命令。
為歷史的命令增加登錄的 IP 地址、執行命令時間等信息:
1)保存1萬條命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在/etc/profile的文件尾部添加如下行數配置信息:
######jiagu history xianshi#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
######### jiagu history xianshi ##########

3)source /etc/profile 讓配置生效

生成效果:

3、歷史操作命令的清除:history -c 但此命令并不會清除保存在文件中的記錄,因此需要手動刪除 .bash_profile 文件中的記錄。

1.3 檢查異常端口

使用 netstat 網絡連接命令,分析可疑端口、IP、PID

netstat -antlp | more

查看下 pid 所對應的進程文件路徑, 運行 ls -l /proc/$PID/exe 或 file /proc/$PID/exe($PID 為對應的 pid 號)

1.4 檢查異常進程

使用 ps 命令,分析進程

ps aux | grep pid 

1.5 檢查開機啟動項

查看運行級別命令 runlevel

系統默認允許級別

vi  /etc/inittab
id=3:initdefault  #系統開機后直接進入哪個運行級別

開機啟動配置文件

/etc/rc.local
/etc/rc.d/rc[0~6].d
1.6 檢查定時任務

基本使用

1、利用 crontab 創建計劃任務

  • 基本命令

  • crontab -l ? 列出某個用戶cron服務的詳細內容
    ?
    Tips:默認編寫的crontab文件會保存在 (/var/spool/cron/用戶名 例如: /var/spool/cron/root
    ?
    crontab -r ? 刪除每個用戶cront任務(謹慎:刪除所有的計劃任務)
    ?
    crontab -e ? 使用編輯器編輯當前的crontab文件 
    ?
    如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分鐘寫入文件

2、利用 anacron 命令實現異步定時任務調度

  • 使用案例

    每天運行 /home/backup.sh 腳本:
    vi /etc/anacrontab 
    @daily    10    example.daily   /bin/bash /home/backup.sh
    當機器在 backup.sh 期望被運行時是關機的,anacron會在機器開機十分鐘之后運行它,而不用再等待 7天。

入侵排查

重點關注以下目錄中是否存在惡意腳本

/var/spool/cron/* 
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/* 
/etc/cron.hourly/* 
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

小技巧:

more /etc/cron.daily/*  查看目錄下所有文件
1.7 檢查服務

服務自啟動

第一種修改方法:

chkconfig [--level 運行級別] [獨立服務名] [on|off]
chkconfig –level  2345 httpd on  開啟自啟動
chkconfig httpd on (默認level是2345)

第二種修改方法:

修改 /etc/re.d/rc.local 文件  
加入 /etc/init.d/httpd start

第三種修改方法:

使用 ntsysv 命令管理自啟動,可以管理獨立服務和 xinetd 服務。

入侵排查

1、查詢已安裝的服務:

RPM 包安裝的服務

chkconfig  --list  查看服務自啟動狀態,可以看到所有的RPM包安裝的服務
ps aux | grep crond 查看當前服務系統在3與5級別下的啟動項 
中文環境
chkconfig --list | grep "3:啟用\|5:啟用"
英文環境
chkconfig --list | grep "3:on\|5:on"

源碼包安裝的服務

查看服務安裝位置 ,一般是在/user/local/
service httpd start
搜索/etc/rc.d/init.d/  查看是否存在
1.8 檢查異常文件

1、查看敏感目錄,如/tmp目錄下的文件,同時注意隱藏文件夾,以“..”為名的文件夾具有隱藏屬性

2、得到發現WEBSHELL、遠控木馬的創建時間,如何找出同一時間范圍內創建的文件?

可以使用find命令來查找,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前訪問過的文件

3、針對可疑文件可以使用 stat 進行創建修改時間。

1.9 檢查系統日志

日志默認存放位置:/var/log/

查看日志配置情況:more /etc/rsyslog.conf

日志文件說明
/var/log/cron記錄了系統定時任務相關的日志
/var/log/cups記錄打印信息的日志
/var/log/dmesg記錄了系統在開機時內核自檢的信息,也可以使用dmesg命令直接查看內核自檢信息
/var/log/mailog記錄郵件信息
/var/log/message記錄系統重要信息的日志。這個日志文件中會記錄Linux系統的絕大多數重要信息,如果系統出現問題時,首先要檢查的就應該是這個日志文件
/var/log/btmp記錄錯誤登錄日志,這個文件是二進制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog記錄系統中所有用戶最后一次登錄時間的日志,這個文件是二進制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp永久記錄所有用戶的登錄、注銷信息,同時記錄系統的啟動、重啟、關機事件。同樣這個文件也是一個二進制文件,不能直接vi,而需要使用last命令來查看
/var/log/utmp記錄當前已經登錄的用戶信息,這個文件會隨著用戶的登錄和注銷不斷變化,只記錄當前登錄用戶的信息。同樣這個文件不能直接vi,而要使用w,who,users等命令來查詢
/var/log/secure記錄驗證和授權方面的信息,只要涉及賬號和密碼的程序都會記錄,比如SSH登錄,su切換用戶,sudo授權,甚至添加用戶和修改用戶密碼都會記錄在這個日志文件中

日志分析技巧

1、定位有多少IP在爆破主機的root帳號:    
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more定位有哪些IP在爆破:
grep "Failed password" /var/log/authlog | 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]?)"|uniq -c2、登錄成功的IP有哪些: 	
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more登錄成功的日期、用戶名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 3、增加一個用戶kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure 4、刪除用戶kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'# grep "userdel" /var/log/secure5、su切換用戶:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)sudo授權執行:
sudo -l
Jul 10 00:43:09 localhost sudo:    good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now

二、利用腳本進行應急響應防止暴力破解

應急響應

記錄日志

#!/bin/bashlogfile=/var/log/nginx
last_minutes=1 開始時間1分鐘之前(這里可以修改,如果要幾分鐘之內攻擊次數多少次,這里可以自定義)start_time=`date -d"$last_minutes minutes ago" +"%d/%m/%Y:%H:%M:%S"`
echo $start_time結束時間現在stop_time=`date +"%d/%m/%Y:%H:%M:%S"`//當前時間
echo $stop_time
cur_date="`date +%d/%m/%Y`"
echo $cur_date過濾出單位之間內的日志并統計最高ip數,請替換為你的日志路徑tac $logfile/access.log | awk -v st="$start_time" -v et="$stop_time" '{t=substr($4,2);if(t>=st && t<=et){print $1}}' |sort | uniq -c | sort -nr > $logfile/log_ip_top10
#ip_top=`cat $logfile/log_ip_top10 | head -1 | awk '{print $1}'`出現橫杠使用sed去掉第一行#sed -i '1d' $logfile/log_ip_top10    單位時間[1分鐘]內單ip訪問次數超過200次的ip記錄入black.txtip=`cat $logfile/log_ip_top10 | awk '{if($1 > 100)print $2}'`
for line in $ip
do
echo $line >> $logfile/getip.txt
echo $line
iptables -I INPUT -p tcp  -m multiport --dport 80,443 -s $line -j DROP
done

暴力破解

第一步:創建密碼字典

開始爆破:

利用hydra -l root -P pass.txt ssh://192.168.157.135

爆破成功!

應急響應

通過awk '/Failed password/ {print $11}' /var/log/auth.log | sort | uniq -c | sort -nr查詢定位有多少IP在登錄主機的root帳號

發現有異常IP登錄多次,懷疑是對root進行了密碼爆破

通過sudo awk '/Accepted / {print $(NF-3)}' /var/log/auth.log | sort | uniq -c | sort -nr篩查登陸成功的ip

發現其可疑ip已經成功登錄多次

查詢登陸時間

查看該ip是否登錄到系統中last -f wtmp

為了防止再次進行爆破進行下一步操作

遏制暴力破解

#!/bin/bash   dompurity
IP=$(awk '/Failed password/ {IP[$(NF-3)]++} END { for (k in IP) { if (IP[k]>=10) print k }}' /var/log/auth.log)//篩選ip,當ip在文件中超過10次則打印出來  NF表示當前行有多少個字段(列)
for i in $IP
dotmpIP=(`iptables -L -n | tr -s " " | awk '/^DROP/ && /22$/ {print $4}'`)//echo ${tmpIP[@]} | grep -qw $i//查看該ip有沒有被封禁if [ $? -ne 0 ]theniptables -I INPUT -p tcp --dport 22 -s $i -j DROP fi
done
iptables-save > /etc/sysconfig/iptables
unset tmpIP

給deny_ssh.sh

chmod +x deny_ssh.sh

將文件放入任務計劃

查詢發現已被封禁,之后登錄的IP

再次嘗試爆破

爆破失敗,已將次IP封禁。

如何處理誤封呢?

1、查看 INPUT 鏈中所有 DROP 規則,并顯示行號

sudo iptables -L INPUT -n --line-numbers | grep 'DROP.*dpt:22'

2、刪除指定編號的規則sudo iptables -D INPUT 1將誤封IP拉出。

三、Windows入侵排查

勒索軟件(定期備份)

思路:

1、排查賬號安全,防止可疑賬號

2、排查異常進程和端口,防止木馬

查看三次握手pid對應的程序,以及可疑端口(非常用端口)和惡意進程

3、排查啟動項、組策略、任務計劃、服務防止留后門

4、使用工具

1.1 檢查系統賬號安全

總結思路

查看是否有可疑賬號、新增賬號、隱藏賬號、克隆賬號等---->懷疑使用MimiKatz抓取明文密碼----> 使用Log Parser官方工具篩選登錄日志比如登陸時間、Event ID=4624的登錄成功的日志Event type 10的遠程登錄、再篩選字段5:登錄賬號、字段8:登錄類型、18:登錄ip等

1、查看服務器是否有弱口令,遠程端口是否對公網開放

檢測方法:

詢問管理員

2、查看是否存在可疑賬號、新增賬號

檢測方法:cmd窗口輸入lusrmgr.msc查看是否有可疑賬號、新增賬號

3、查看是否存在隱藏賬號、克隆賬號

檢測方法:

  • 注冊表查看管理員對應鏈值

  • 使用D盾web查殺工具,集成了對克隆賬號檢測的功能。

4、使用工具篩選遠程登錄日志

懷疑使用MimiKatz抓取明文密碼

使用工具篩選遠程登錄日志

打開組策略

檢測方法:

  • Win+R 打開運行,輸入"eventvwr.msc",回車運行,打開“事件查看器”。

查看安全日志

篩選Event ID查看登陸者的id,ip,登錄類型(type 10:遠程登錄、type 2:本地登錄)等信息(如短時間內4624、4625出現較多次數則表示遇到暴力破解)

Event ID:查看登錄情況

登錄類型:

  • 導出 Windows 日志 -- 安全,利用微軟官方工具 Log Parser 進行分析。

利用官方工具操作:

篩取登錄時間范圍的信息并提取用戶與ip

常用字段的行數

EXTRACT_TOKEN(Strings, 5, '|') AS UserName,EXTRACT_TOKEN(Strings, 6, '|') AS DomainName,8 AS LogonType,18 AS IpAddress,19 AS IpPort,10 AS LogonProcessName,11 AS AuthPackageName

登錄成功的所有事件
LogParser.exe -i:EVT –o:DATAGRID  "SELECT *  FROM c:\Security.evtx where EventID=4624"指定登錄時間范圍的事件:
LogParser.exe -i:EVT –o:DATAGRID  "SELECT *  FROM c:\Security.evtx where TimeGenerated>'2018-06-19 23:32:11' and TimeGenerated<'2018-06-20 23:34:00' and EventID=4624"提取登錄成功的用戶名和IP:
LogParser.exe -i:EVT  –o:DATAGRID  "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM c:\Security.evtx where EventID=4624"

windows登錄流程

明文轉成哈希值存入sim中后進行登錄時將明文轉成哈希值與存儲中的哈希進行比較

重要日志?

linux日志、中間件日志access.log

1.2 檢查異常端口、進程

1、檢查端口連接情況,是否有遠程連接、可疑連接。

檢查方法:

  • 使用netstat -ano 命令查看目前的網絡連接,定位可疑的 ESTABLISHED

  • 根據 netstat 命令定位出的 PID 編號,再通過 tasklist 命令進行進程定位 tasklist | findstr "PID"

netstat -ano | findstr ESTABLISHED查看當前連接

  • 查找異常IP、端口(如C2服務器)

  • 記錄PID,使用 tasklist | findstr <PID> 查進程

查看監聽端口netstat -anb | findstr LISTENING

  • 注意非標準端口上的監聽(如8080、5555)

DNS解析記錄

  • 使用ipconfig /displaydns查看本地DNS緩存

  • 發現可疑域名(如長隨機字符串域名)

windows遠程端口 rdp協議 3389

linux遠程端口 ssh協議 22

1.3 檢查啟動項、組策略、計劃任務、服務(防止留后門)

1、檢查服務器啟動項是否有異常啟動項

檢查方法:

  • 登錄服務器,單擊【開始】>【所有程序】>【啟動】,默認情況下此目錄在是一個空目錄,確認是否有非業務程序在該目錄下。

  • 單擊開始菜單 >【運行】,輸入 msconfig,查看是否存在命名異常的啟動項目,是則取消勾選命名異常的啟動項目,并到命令中顯示的路徑刪除文件。

  • 單擊【開始】>【運行】,輸入 regedit,打開注冊表,查看開機啟動項是否正常,特別注意如下三個注冊表項:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce

檢查右側是否有啟動異常的項目,如有請刪除,并建議安裝殺毒軟件進行病毒查殺,清除殘留病毒或木馬。

  • 利用安全軟件查看啟動項、開機時間管理等。

  • 組策略,運行 gpedit.msc

2、檢查計劃任務

檢查方法:

  • a、單擊【開始】>【設置】>【控制面板】>【任務計劃】,查看計劃任務屬性,便可以發現木馬文件的路徑。

  • b、單擊【開始】>【運行】;輸入 cmd,然后輸入 at,檢查計算機與網絡上的其它計算機之間的會話或計劃任務,如有,則確認是否為正常連接。

3、服務自啟動

檢查方法:

  • 單擊【開始】>【運行】,輸入 services.msc,注意服務狀態和啟動類型,檢查是否有異常服務。

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

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

相關文章

類和對象(中):類的默認成員函數、構造函數、析構函數

&#x1f525;個人主頁&#xff1a;胡蘿卜3.0 &#x1f3ac;作者簡介&#xff1a;C研發方向學習者 &#x1f4d6;個人專欄&#xff1a; 《C語言》《數據結構》 《C干貨分享》 ??人生格言&#xff1a;不試試怎么知道自己行不行 目錄 一、類的默認成員函數 二、構造函數 三…

如何優雅地刷力扣 LeetCode - Easy

Source 力扣LeetCode題庫 App > LeetCode > 題庫 > 題解 Notes 仔細審題&#xff0c;明確輸入輸出&#xff0c;通過測試用例。先特殊&#xff0c;后尋常。逆向思維。 在條件語句中用!代替&#xff0c;提前終止循環&#xff0c;減少嵌套層級&#xff08;else&#…

AI繪畫:生成唐初程咬金全身像提示詞

根據唐代歷史記載和藝術形象特征&#xff0c;以下是優化后的中文Midjourney 提示詞&#xff0c;突出程咬金的猛將氣質與唐初甲胄細節&#xff1a; 核心提示詞&#xff08;戰場形象&#xff09; 中年猛將程咬金&#xff0c;全身甲胄像&#xff0c;唐初光要甲制式&#xff1a;身…

【實時Linux實戰系列】實時數據流處理框架分析

背景與重要性在當今數字化時代&#xff0c;數據的實時處理變得至關重要。無論是金融交易、工業自動化還是物聯網&#xff08;IoT&#xff09;設備&#xff0c;都需要能夠快速處理和響應數據流&#xff0c;以確保系統的高效運行和決策的及時性。實時Linux操作系統因其低延遲和高…

一周學會Matplotlib3 Python 數據可視化-Hello World編寫

鋒哥原創的Matplotlib3 Python數據可視化視頻教程&#xff1a; 2026版 Matplotlib3 Python 數據可視化 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili Matplotlib3簡介 Matplotlib 是 Python 最流行的數據可視化庫之一&#xff0c;廣泛應用于科學計算、數據分析、科研繪…

中國MCP市場:騰訊、阿里、百度的本土化實踐

中國MCP市場&#xff1a;騰訊、阿里、百度的本土化實踐 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般絢爛的技術棧中&#xff0c;我是那個永不停歇的色彩收集者。 &#x1f98b; 每一個優化都是我培育的花朵&#xff0c;每一個特性都是我放飛的…

房產證識別在房產行業的技術實現及應用原理

技術實現1. 圖像采集與預處理圖像獲取&#xff1a;通過高分辨率掃描儀或手機攝像頭獲取房產證圖像預處理技術&#xff1a;去噪處理&#xff08;消除掃描噪聲&#xff09;圖像增強&#xff08;提高對比度&#xff09;傾斜校正&#xff08;自動旋轉至正確角度&#xff09;二值化處…

決策樹技術詳解:從理論到Python實戰

?決策樹像人類的思考過程&#xff0c;用一系列“是/否”問題層層逼近答案?一、決策樹的核心本質決策樹是一種模仿人類決策過程的樹形結構分類/回歸模型。它通過節點&#xff08;問題&#xff09;?? 和 ?邊&#xff08;答案&#xff09;?? 構建路徑&#xff0c;最終在葉節…

Herd-proof thinking

Let’s dive into “herd-proof thinking” — the mindset and tactics that help you stay sharp, independent, and immune to manipulative systems.&#x1f9e0; Part 1: The Foundation of Herd-Proof Thinking 1. Recognize Incentives“If you don’t know who the pr…

day068-DevOps基本知識與搭建遠程倉庫

文章目錄0. 老男孩思想-傳統文化1. 運維人員對網站集群的關注項2. CI、CD3. DevOps4. 環境5. Git5.1 **為什么叫 “Git”&#xff1f;**5.2 Git的核心設計理念5.3 Git工作空間5.4 分支 branch5.5 命令5.5.1 配置git用戶信息5.5.2 初始化git倉庫5.5.3 將文件放入暫存區5.5.4 提交…

分布式文件系統07-小文件系統的請求異步化高并發性能優化

小文件系統的請求異步化高并發性能優化222_分布式圖片存儲系統中的高性能指的到底是什么&#xff1f;重構系統架構&#xff0c;來實現一個高性能。然后就要做非常完善的一個測試&#xff0c;最后對這個系統做一個總結&#xff0c;說說后續我們還要做一些什么東西。另外&#xf…

【C#補全計劃:類和對象(十)】密封

一、密封類1. 關鍵字&#xff1a;sealed2. 作用&#xff1a;使類無法再被繼承&#xff1b;在面向對象設計中&#xff0c;密封類的主要作用是不允許最底層子類被繼承&#xff0c;可以保證程序的規范性、安全性3. 使用&#xff1a;using System;namespace Sealed {// 使用sealed關…

【視覺識別】Ubuntu 22.04 上安裝和配置 TigerVNC 魯班貓V5

系列文章目錄 文章目錄系列文章目錄前言一、問題現象二、安裝和配置步驟1.引入庫2.安裝完整組件3.修改 ~/.vnc/xstartup4. 設置權限5. 設置開機自啟&#xff08;Systemd 服務&#xff09;總結前言 開發平臺&#xff1a;魯班貓V5 RK3588 系統版本&#xff1a;Ubuntu 22.04 一、…

模擬-38.外觀數列-力扣(LeetCode)

一、題目解析1、替換的方法&#xff1a;“33”用“23”替換&#xff0c;即找到相同的數&#xff0c;前一位為相同數的數量&#xff0c;后一位為相同的數2、給定n&#xff0c;需要返回外觀數列的第n個元素二、算法原理由于需要統計相同元素的數目&#xff0c;所以可以使用雙指針…

垃圾桶滿溢識別準確率↑32%:陌訊多模態融合算法實戰解析

原創聲明本文為原創技術解析文章&#xff0c;涉及的技術參數與架構設計均參考自《陌訊技術白皮書》&#xff0c;轉載請注明來源。一、行業痛點&#xff1a;智慧環衛中的識別難題隨著智慧城市建設推進&#xff0c;垃圾桶滿溢識別作為智慧環衛的核心環節&#xff0c;面臨多重技術…

掃地機器人的幾種語音控制芯片方案介紹

?掃地機器人語音控制芯片方案介紹在智能家居領域&#xff0c;掃地機器人的智能化程度不斷提升&#xff0c;語音控制功能成為提升用戶體驗的關鍵因素。以下為您介紹幾款常用于掃地機器人語音控制的芯片方案。WT2606B 芯片方案性能優勢&#xff1a;基于先進的 RISC - V 32 位開源…

快速開發實踐

基于后端項目的前端開發實踐記錄 &#x1f4cb; 項目概述 項目名稱: 比特奧定制報表系統 技術棧: Vue 3 Element Plus Vite (前端) Spring Boot (后端) 開發模式: 前后端分離 項目結構: 單體倉庫包含前后端代碼 &#x1f3d7;? 項目架構分析 目錄結構設計 bitao-defined_re…

NFC 三大模式對比

以前以為nfc只是點對點通訊&#xff0c;沒想到現在nfc的功能很強大NFC 三大模式對比&#xff08;回顧&#xff09;模式作用手機是...Reader 模式讀取卡、標簽內容主動設備&#xff08;讀卡器&#xff09;Card Emulation 模式模擬公交卡/門禁卡/銀行卡被動設備&#xff08;卡&am…

JSON、JSONObject、JSONArray詳細介紹及其應用方式

第一部分&#xff1a;什么是JSON?&#x1f31f;比喻&#xff1a;JSON 是「快遞公司統一的 “通用快遞單”」&#x1f4a1;場景代入你想給朋友寄生日禮物&#xff08;比如一臺 “游戲機”&#xff09;&#xff0c;這臺游戲機有自己的屬性&#xff1a;名稱&#xff1a;"游戲…

Linux系統編程--權限管理

權限管理第二講 權限管理1. Shell命令以及運行原理1.1 知識引入1.2 概念介紹1.3 具體示例2. Linux權限問題2.1 權限概念2.2 用戶分類2.3 切換用戶2.4 用戶提權2.5 文件權限管理2.5.1 文件訪問者的分類&#xff08;角色&#xff09;2.5.2 文件類型和訪問權限&#xff08;事物屬性…