![基于Winpcap 編程實(shí)現(xiàn)抓包實(shí)驗(yàn)[學(xué)習(xí)類別]_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/1/09ed8215-c712-4f07-abc9-48abc2368e01/09ed8215-c712-4f07-abc9-48abc2368e011.gif)
![基于Winpcap 編程實(shí)現(xiàn)抓包實(shí)驗(yàn)[學(xué)習(xí)類別]_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/1/09ed8215-c712-4f07-abc9-48abc2368e01/09ed8215-c712-4f07-abc9-48abc2368e012.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、上海電力學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)安全(1)課程實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱: winpcap編程實(shí)驗(yàn) 基于Winpcap 編程實(shí)現(xiàn)抓包實(shí)驗(yàn)一. 本設(shè)計(jì)要達(dá)到的目標(biāo) 基于winpcap編程實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)數(shù)據(jù)的捕獲,并分析數(shù)據(jù)類型,對(duì)于IP,ICMP,ARP,UDP等,能夠自動(dòng)識(shí)別其協(xié)議類型并分析幀的構(gòu)成。二.實(shí)現(xiàn)步驟(1)需要通過資料來了解winpcap抓包的工作原理,熟悉其運(yùn)行過程 Winpcap的內(nèi)部結(jié)構(gòu)Wincap有三部分組成:一個(gè)數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動(dòng)程序,一個(gè)低級(jí)的動(dòng)態(tài)連接庫和一個(gè)高級(jí)的靜態(tài)連接庫。底層動(dòng)態(tài)鏈接庫運(yùn)行在用戶層,它將應(yīng)用程序和數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動(dòng)程序隔離開來,使得應(yīng)用程序可以不加修改地在不同的WINDO
2、WS系統(tǒng)上運(yùn)行。高級(jí)的靜態(tài)鏈接庫和應(yīng)用程序編譯在一起,它使用低級(jí)動(dòng)態(tài)鏈接庫提供的服務(wù),向應(yīng)用程序提供完善的監(jiān)聽接口。抓包是WinPcap的基本功能,也是NPF最重要的操作。在抓包的時(shí)候,驅(qū)動(dòng)(例如NIC Driver)使用一個(gè)網(wǎng)絡(luò)接口監(jiān)視著數(shù)據(jù)包,并將這些數(shù)據(jù)包完整無缺地投遞給用戶級(jí)應(yīng)用程序。(2)進(jìn)一步了解winpcap編程所需要的編譯環(huán)境,下載WpdPack,了解編譯環(huán)境所需要的庫文件.在編譯時(shí)需要把wpdpack中的include與lib添加進(jìn)vc的庫文件里。(3)明確整個(gè)編程的步驟與具體函數(shù)。剛開始要定義,在主函數(shù)中獲取設(shè)備接口信息,獲得網(wǎng)絡(luò)地址與掩碼地址,打開網(wǎng)絡(luò)接口,還要設(shè)置過濾規(guī)
3、則。使用loop函數(shù)來回調(diào)循環(huán)捕獲數(shù)據(jù)包,以便一層一層解析。(4)還要定義幾個(gè)以太網(wǎng),ARP,IP,UDP,TCP,ICMP協(xié)議的格式。需要注意在存儲(chǔ)空間中,在存儲(chǔ)空間中才能更好的逐層分析,不然很容易出錯(cuò)(5)定義分析協(xié)議的函數(shù),定義方式與回調(diào)函數(shù)相同. 常用的函數(shù)有:用于獲取本機(jī)設(shè)備列表的pcap_findalldevs_ex函數(shù)用于打開設(shè)備的pcap_open函數(shù),可以指定為混雜模式打開用于編譯數(shù)據(jù)包過濾器的pcap_compile 函數(shù)用于設(shè)置數(shù)據(jù)包過濾器的pcap_setfilter 函數(shù)用于從設(shè)備讀取數(shù)據(jù)包的pcap_netx_ex 函數(shù)用于關(guān)閉設(shè)備的pcap_close 函數(shù)(參數(shù)
4、為pcap_open 返回值)用于釋放設(shè)備列表的pcap_freealldevs 函數(shù)(對(duì)應(yīng)pcap_findalldevs_ex)三.系統(tǒng)流程圖主函數(shù)以太網(wǎng)協(xié)議分析函數(shù)分析ARP協(xié)議函數(shù)分析Ip協(xié)議函數(shù)分析ICMP協(xié)議函數(shù)判斷下層函數(shù)分析TCP協(xié)議函數(shù)分析UDP協(xié)議函數(shù)16進(jìn)制數(shù)據(jù)四.關(guān)鍵代碼及其分析主函數(shù)void main() pcap_t *pcap_handle; /* Winpcap句柄 */ char error_contentPCAP_ERRBUF_SIZE; /* 存儲(chǔ)錯(cuò)誤信息 */ char *net_interface; /* 網(wǎng)絡(luò)接口 */ bpf_program bpf
5、_filter; /* BPF過濾規(guī)則 */ char bpf_filter_string = ; /* 過濾規(guī)則字符串 */ bpf_u_int32 net_mask; /* 掩碼 */ bpf_u_int32 net_ip; /* 網(wǎng)路地址 */ net_interface = pcap_lookupdev(error_content); /* 獲得可用的網(wǎng)絡(luò)接口 */ pcap_lookupnet(net_interface, &net_ip, &net_mask, error_content);/* 獲得網(wǎng)絡(luò)地址和掩碼地址 */ pcap_handle = pcap_open_live
6、(net_interface, BUFSIZ, 1, 1, error_content); /* 打開網(wǎng)路接口 */ pcap_compile(pcap_handle, &bpf_filter, bpf_filter_string, 0, net_ip); /* 編譯BPF過濾規(guī)則 */ pcap_setfilter(pcap_handle, &bpf_filter); /* 設(shè)置過濾規(guī)則 */對(duì)IP協(xié)議的定義class ip_header public: #if defined(WORDS_BIGENDIAN) u_int8_t ip_version: 4, /* 版本 */ ip_head
7、er_length: 4; /* 首部長(zhǎng)度 */ #else u_int8_t ip_header_length: 4, ip_version: 4; #endif u_int8_t ip_tos; /* 服務(wù)質(zhì)量 */ u_int16_t ip_length; /* 長(zhǎng)度 */ u_int16_t ip_id; /* 標(biāo)識(shí) */ u_int16_t ip_off; /* 偏移 */ u_int8_t ip_ttl; /* 生存時(shí)間 */ u_int8_t ip_protocol; /* 協(xié)議類型 */ u_int16_t ip_checksum; /* 校驗(yàn)和 */ in_addr ip_s
8、ouce_address; /* 源IP地址 */ in_addr ip_destination_address; /* 目的IP地址 */pcap_loop(pcap_handle, n, ethernet_protocol_packet_callback, NULL); /* 注冊(cè)回調(diào)函數(shù),循環(huán)捕獲網(wǎng)絡(luò)數(shù)據(jù)包,利用回調(diào)函數(shù)來處理每個(gè)數(shù)據(jù)包 */ 分析UDP協(xié)議的函數(shù)代碼 void udp_protocol_packet_callback(u_char *argument, const pcap_pkthdr *packet_header, const u_char *packet_cont
9、ent) class udp_header *udp_protocol; /* UDP協(xié)議變量 */ u_short source_port; /* 源端口 */ u_short destination_port; /* 目的端口號(hào) */ u_short length; /長(zhǎng)度 udp_protocol = (class udp_header*)(packet_content + 14+20);/* 獲得UDP協(xié)議內(nèi)容 */ source_port = ntohs(udp_protocol-udp_source_port); /* 獲得源端口 */ destination_port = nto
10、hs(udp_protocol-udp_destination_port); /* 獲得目的端口 */ length = ntohs(udp_protocol-udp_length); /* 獲得長(zhǎng)度 */ cout- UDP協(xié)議 -endl; cout源端口號(hào):decsource_portendl; cout目的端口號(hào):decdestination_portendl; switch (destination_port) case 138: cout上層協(xié)議為NETBIOS數(shù)據(jù)報(bào)服務(wù)endl; break; case 137: cout上層協(xié)議為NETBIOS名字服務(wù)endl; break;
11、case 139: cout上層協(xié)議為NETBIOS會(huì)話服務(wù)endl; break; case 53: cout上層協(xié)議為域名服務(wù)endl; break; default: break; cout長(zhǎng)度:lengthendl; cout校驗(yàn)和:setw(4)setfill(0)hexudp_checksum)endl; 五.參考文獻(xiàn)(1) Winpcap中文文檔(2) 網(wǎng)絡(luò)資料/view/d64047d676eeaeaad1f330c7.html?from=search /winpcap-sniffer.
12、html完整源程序#include pcap.h #include #include #includeusing namespace std; /*以下是以太網(wǎng)協(xié)議格式的定義*/ class ether_header public: u_int8_t ether_dhost6; /* 目的以太網(wǎng)地址 */ u_int8_t ether_shost6; /* 源以太網(wǎng)地址 */ u_int16_t ether_type; /* 以太網(wǎng)類型 */ ; /* 下面是ARP協(xié)議格式的定義*/ class arp_header public: u_int16_t arp_hardware_type; /
13、* 硬件類型 */ u_int16_t arp_protocol_type; /* 協(xié)議類型 */ u_int8_t arp_hardware_length; /* 硬件地址長(zhǎng)度 */ u_int8_t arp_protocol_length; /* 協(xié)議地址長(zhǎng)度 */ u_int16_t arp_operation_code; /* 操作碼 */ u_int8_t arp_source_ethernet_address6; /* 源以太網(wǎng)地址 */ u_int8_t arp_source_ip_address4; /* 源IP地址 */ u_int8_t arp_destination_et
14、hernet_address6; /* 目的以太網(wǎng)地址 */ u_int8_t arp_destination_ip_address4; /* 目的IP地址 */ ; /*下面是IP協(xié)議格式的定義 */ class ip_header public: #if defined(WORDS_BIGENDIAN) u_int8_t ip_version: 4, /* 版本 */ ip_header_length: 4; /* 首部長(zhǎng)度 */ #else u_int8_t ip_header_length: 4, ip_version: 4; #endif u_int8_t ip_tos; /* 服務(wù)
15、質(zhì)量 */ u_int16_t ip_length; /* 長(zhǎng)度 */ u_int16_t ip_id; /* 標(biāo)識(shí) */ u_int16_t ip_off; /* 偏移 */ u_int8_t ip_ttl; /* 生存時(shí)間 */ u_int8_t ip_protocol; /* 協(xié)議類型 */ u_int16_t ip_checksum; /* 校驗(yàn)和 */ in_addr ip_souce_address; /* 源IP地址 */ in_addr ip_destination_address; /* 目的IP地址 */ ; /*下面是UDP協(xié)議格式定義*/ class udp_heade
16、r public: u_int16_t udp_source_port; /* 源端口號(hào) */ u_int16_t udp_destination_port; /* 目的端口號(hào) */ u_int16_t udp_length; /* 長(zhǎng)度 */ u_int16_t udp_checksum; /* 校驗(yàn)和 */ ; /* 下面是TCP協(xié)議格式的定義*/ class tcp_header public: u_int16_t tcp_source_port; /* 源端口號(hào) */ u_int16_t tcp_destination_port; /* 目的端口號(hào) */ u_int32_t tcp_s
17、equence_lliiuuwweennttaaoo; /* 序列號(hào) */ u_int32_t tcp_acknowledgement; /* 確認(rèn)序列號(hào) */ #ifdef WORDS_BIGENDIAN u_int8_t tcp_offset: 4, /* 偏移 */ tcp_reserved: 4; /* 未用 */ #else u_int8_t tcp_reserved: 4, /* 未用 */ tcp_offset: 4; /* 偏移 */ #endif u_int8_t tcp_flags; /* 標(biāo)記 */ u_int16_t tcp_windows; /* 窗口大小 */ u_
18、int16_t tcp_checksum; /* 校驗(yàn)和 */ u_int16_t tcp_urgent_pointer; /* 緊急指針 */ ; /* 下面是ICMP協(xié)議格式的定義*/ class icmp_header public: u_int8_t icmp_type; /* ICMP類型 */ u_int8_t icmp_code; /* ICMP代碼 */ u_int16_t icmp_checksum; /* 校驗(yàn)和 */ u_int16_t icmp_id; /* 標(biāo)識(shí)符 */ u_int16_t icmp_sequence; /* 序列碼 */ ; /* 下面是分析TCP協(xié)
19、議的函數(shù),其定義方式與回調(diào)函數(shù)相同 */ void tcp_protocol_packet_callback(u_char *argument, const pcap_pkthdr *packet_header, const u_char *packet_content) class tcp_header *tcp_protocol;/* TCP協(xié)議變量 */ u_char flags; /* 標(biāo)記 */ int header_length; /* 長(zhǎng)度 */ u_short source_port; /* 源端口 */ u_short destination_port; /* 目的端口 */
20、 u_short windows; /* 窗口大小 */ u_short urgent_pointer;/* 緊急指針 */ u_int sequence; /* 序列號(hào) */ u_int acknowledgement; /* 確認(rèn)號(hào) */ u_int16_t checksum; /* 校驗(yàn)和 */ tcp_protocol = ( tcp_header*)(packet_content + 14+20); /* 獲得TCP協(xié)議內(nèi)容 */ source_port = ntohs(tcp_protocol-tcp_source_port); /* 獲得源端口 */ destination_po
21、rt = ntohs(tcp_protocol-tcp_destination_port); /* 獲得目的端口 */ header_length = tcp_protocol-tcp_offset *4; /* 長(zhǎng)度 */ sequence = ntohl(tcp_protocol-tcp_sequence_lliiuuwweennttaaoo); /* 序列碼 */ acknowledgement = ntohl(tcp_protocol-tcp_acknowledgement); /* 確認(rèn)序列碼 */ windows = ntohs(tcp_protocol-tcp_windows);
22、 /* 窗口大小 */ urgent_pointer = ntohs(tcp_protocol-tcp_urgent_pointer); /* 緊急指針 */ flags = tcp_protocol-tcp_flags; /* 標(biāo)識(shí) */ checksum = ntohs(tcp_protocol-tcp_checksum); /* 校驗(yàn)和 */ cout TCP協(xié)議 endl; cout源端口號(hào):dec source_port endl; cout目的端口號(hào):dec destination_portendl; switch (destination_port) case 80: cout上
23、層協(xié)議為HTTP協(xié)議:endl; break; case 21: cout上層協(xié)議為FTP協(xié)議endl; break; case 23: cout上層協(xié)議為TELNET協(xié)議endl; break; case 25: cout上層協(xié)議為SMTP協(xié)議endl; break; case 110: cout上層協(xié)議為POP3協(xié)議endl; break; default: break; cout序列碼sequenceendl; cout確認(rèn)號(hào):acknowledgementendl; cout首部長(zhǎng)度:decheader_lengthendl; cout保留:tcp_reserved)endl; cou
24、t標(biāo)記:; if (flags &0x08) coutPSH endl; if (flags &0x10) coutACK endl; if (flags &0x02) coutSYN endl; if (flags &0x20) coutURG endl; if (flags &0x01) coutFIN endl; if (flags &0x04) coutRST endl; coutendl; cout窗口大小:windowsendl; cout校驗(yàn)和: setw(4) setfill(0) hex checksumendl; cout緊急指針:urgent_pointerudp_sou
25、rce_port); /* 獲得源端口 */ destination_port = ntohs(udp_protocol-udp_destination_port); /* 獲得目的端口 */ length = ntohs(udp_protocol-udp_length); /* 獲得長(zhǎng)度 */ cout UDP協(xié)議 endl; cout源端口號(hào):decsource_portendl; cout目的端口號(hào):decdestination_portendl; switch (destination_port) case 138: cout上層協(xié)議為NETBIOS數(shù)據(jù)報(bào)服務(wù)endl; break;
26、case 137: cout上層協(xié)議為NETBIOS名字服務(wù)endl; break; case 139: cout上層協(xié)議為NETBIOS會(huì)話服務(wù)endl; break; case 53: cout上層協(xié)議為域名服務(wù)endl; break; default: break; cout長(zhǎng)度:lengthendl; cout校驗(yàn)和:setw(4)setfill(0)hexudp_checksum)endl; /* 下面是實(shí)現(xiàn)分析ICMP協(xié)議的函數(shù),函數(shù)類型與回調(diào)函數(shù)相同 */ void icmp_protocol_packet_callback(u_char *argument, const pca
27、p_pkthdr *packet_header, const u_char *packet_content) class icmp_header *icmp_protocol; /* ICMP協(xié)議變量 */ icmp_protocol = (icmp_header*)(packet_content + 14+20); /* 獲得ICMP協(xié)議內(nèi)容 */ cout ICMP協(xié)議 endl; coutICMP類型:icmp_typeicmp_type) case 8: coutICMP回顯請(qǐng)求協(xié)議endl; coutICMP代碼:icmp_codeendl; cout標(biāo)識(shí)符:icmp_idendl;
28、 cout序列碼:icmp_sequenceendl; break; case 0: coutICMP回顯應(yīng)答協(xié)議endl; coutICMP代碼: icmp_codeendl; cout標(biāo)識(shí)符: setw(4) setfill(0) hexicmp_id) endl; cout序列碼: icmp_sequenceendl; break; default: break; coutICMP校驗(yàn)和:setw(4) setfill(0) hex icmp_checksum) endl; /* 獲得ICMP校驗(yàn)和 */ return ; /*下面是實(shí)現(xiàn)ARP協(xié)議分析的函數(shù),函數(shù)類型與回調(diào)函數(shù)相同 */
29、 void arp_protocol_packet_callback(u_char *argument, const pcap_pkthdr *packet_header, const u_char *packet_content) arp_header *arp_protocol; u_short protocol_type; u_short hardware_type; u_short operation_code; u_char *mac_string; in_addr source_ip_address; in_addr destination_ip_address; u_char h
30、ardware_length; u_char protocol_length; cout ARP協(xié)議 arp_hardware_type); protocol_type = ntohs(arp_protocol-arp_protocol_type); operation_code = ntohs(arp_protocol-arp_operation_code); hardware_length = arp_protocol-arp_hardware_length; protocol_length = arp_protocol-arp_protocol_length; cout硬件類型: arp
31、_hardware_type)endl; cout協(xié)議類型 : setw(4)setfill(0)arp_protocol_type)endl; cout硬件地址長(zhǎng)度: arp_hardware_length)endl; cout協(xié)議地址長(zhǎng)度: arp_protocol_length)endl; coutARP 操作: arp_operation_code)endl; switch (operation_code) case 1: coutARP請(qǐng)求協(xié)議endl; break; case 2: coutARP應(yīng)答協(xié)議endl; break; case 3: coutRARP請(qǐng)求協(xié)議endl;
32、break; case 4: coutRARP應(yīng)答協(xié)議endl; break; default: break; cout源以太網(wǎng)地址: arp_source_ethernet_address; cout setw(2) setfill(0) hex int(*mac_string) . setw(2) setfill(0) hex int(*(mac_string + 1) . setw(2) setfill(0) hex int(*(mac_string + 2) . setw(2) setfill(0) hex int(*(mac_string + 3) . setw(2) setfill
33、(0) hex int(*(mac_string + 4) . setw(2) setfill(0) hex int(*(mac_string + 5) arp_source_ip_address, sizeof( in_addr); cout源IP地址:inet_ntoa(source_ip_address)endl; cout目的以太網(wǎng)地址:arp_destination_ethernet_address; cout setw(2) setfill(0) hex int(*mac_string) . setw(2) setfill(0) hex int(*(mac_string + 1)
34、. setw(2) setfill(0) hex int(*(mac_string + 2) . setw(2) setfill(0) hex int(*(mac_string + 3) . setw(2) setfill(0) hex int(*(mac_string + 4) . setw(2) setfill(0) hex int(*(mac_string + 5) arp_destination_ip_address, sizeof( in_addr); cout目的IP地址:inet_ntoa(destination_ip_address)ip_checksum); /* 獲得校驗(yàn)和
35、 */ header_length = ip_protocol-ip_header_length *4; /* 獲得長(zhǎng)度 */ tos = ip_protocol-ip_tos; /* 獲得服務(wù)質(zhì)量 */ offset = ntohs(ip_protocol-ip_off); /* 獲得偏移 */ cout IP協(xié)議 endl; cout版本號(hào):ip_version)endl; cout首部長(zhǎng)度: header_lengthendl; cout服務(wù)質(zhì)量: ip_tos) endl; cout總長(zhǎng)度: ip_length)endl; cout標(biāo)識(shí): setw(4)setfill(0)hexip_
36、id) endl; cout偏移: (offset &0x1fff) *8endl; cout生存時(shí)間: ip_ttl)endl; cout協(xié)議類型: ip_protocol)ip_protocol) case 6: cout上層協(xié)議為TCP協(xié)議endl; break; case 17: cout上層協(xié)議為UDP協(xié)議endl; break; case 1: cout上層協(xié)議為ICMP協(xié)議ICMPendl; break; default: break; cout校驗(yàn)和:checksumendl; cout源IP地址:ip_souce_address)endl; /* 獲得源IP地址 */ cout目的IP地址:ip_destination_address)ip_protocol) /* 根據(jù)IP協(xié)議判斷上層協(xié)議 */ case 6: tcp_protocol_packet_callback(argument, packet_heade
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 18584-2:2025 EN Information technology - Test methods for on-card biometric comparison applications - Part 2: Work-sharing mechanism
- 2025至2030中國益生菌補(bǔ)充品市場(chǎng)供應(yīng)渠道與未來銷售渠道研究報(bào)告
- 2025至2030中國電子相冊(cè)軟件行業(yè)市場(chǎng)發(fā)展趨勢(shì)及有效策略與實(shí)施路徑評(píng)估報(bào)告
- 2025至2030中國電動(dòng)牙鉆機(jī)行業(yè)深度研究及發(fā)展前景投資評(píng)估分析
- 2025至2030中國珩磨油行業(yè)深度研究及發(fā)展前景投資評(píng)估分析
- 2025至2030中國特殊需要的嬰兒車行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 教育心理學(xué)學(xué)生情感教育的核心
- 遼寧省沈文新高考研究聯(lián)盟2024-2025學(xué)年高一下學(xué)期7月期末質(zhì)量監(jiān)測(cè)地理試卷(含答案)
- 華邦健康知識(shí)培訓(xùn)
- 商業(yè)培訓(xùn)中如何利用教育大數(shù)據(jù)提升教學(xué)效果
- 2024年09月年中國農(nóng)業(yè)發(fā)展銀行江蘇省分行秋季校園招聘(86人)筆試歷年參考題庫附帶答案詳解
- 2025年江蘇省揚(yáng)州市中考作文4篇范文:“尊重”“誠實(shí)”“創(chuàng)造性”“美好生活”
- 2025年輔警招聘考試試題庫含完整答案
- 2025年吉林省中考語文試卷及答案
- 2024-2025學(xué)年度天津鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握小墩Z文》真題附答案詳解(突破訓(xùn)練)
- 快遞行業(yè)市場(chǎng)發(fā)展分析及投資前景研究報(bào)告2025-2028版
- 《基本樂理》師范與學(xué)前教育專業(yè)基本樂理相關(guān)知識(shí)全套教學(xué)課件
- 2025年安徽省中考物理試題(原卷版)
- 2025-2026年中國臺(tái)球產(chǎn)業(yè)消費(fèi)趨勢(shì)報(bào)告
- 2025年高考英語全國新高考II卷深度解讀及答案詳解
- 2025年第十屆“學(xué)憲法、講憲法”網(wǎng)絡(luò)知識(shí)競(jìng)賽題庫(含答案)
評(píng)論
0/150
提交評(píng)論