SlideShare a Scribd company logo
1 of 12
Download to read offline
37
47
53
ipdunp(コ ピー).C Page l
:1/1**iも お,1:;ヽ 事1り
Tl彗言ア1'サ,1夢言1歩
琴言
*キ
│::I需:│:す
**********:*********
副 :
晰 21Ю
"年
明 縮
制作・著作 榊 螺 α議お 血 商 品あ
51*
161#include くstring.h〉
1871111:│::: `:││:11ゝ
h〉
‖1使]×
『:言[言::言:::を:]]:::讐:1纂纂11
│:li IIE:li':::3[曇 換菫:警li晨言警春と量」≧[号i
│:│:*料*二塁:il奎塁塁五這曇│き 看侵議で書羞型叢言:奮
ご墨ぎ子を1夕
171ル:::**************************│
│:│ll鷲 │‖:なヨ│:bll〉
361#includeくsignal.h〉
381#define MAXSiZE 8192
391#define cMAX 256
401#define oPTNU‖ 9
411#define ON 1
鑑 ││::科 1::[[_lF 9enO″ /* Mac OS Xの デ フオル トフイEン タフエース名 */
:││││11権 :i!:`ili:[Itstm.h〉
馨閣1斜 ‖:{職 識読夕11)
笙1撫 嬬:轍鸞,ギ :「
D
::││IIil!1:_1::::'71`:11ゝ
h〉
::│l11:│││: li:i′llil;ゝ
h〉
::││││:li:: 11:│││:l;if_ether.h〉
鍮 析扮 雛
砒 肌 呻 咄 硼 :
露1壼lel11砲
11た
7:13k:思F各 昌t:`お 1籍efitt liLfE屯諏
'(b)そ
filte7.fig[IP_ADDR]?¥
こ61 :=1'
:││11:[:│::lit ::│ ′:│::馨 辱程13兄 留製:′
発ls廿 鵬t filt針 I
瑠耶葺鮮歯γ狂サ子I孝
'ラ
歩影‐‐・
JI緒
elitt liLfE曲
'こ
3)i:│「
::iilgiIIJ苦
[〕∫:iti冨 ユ
││:iillミ
_:1:I・ ゅ.?¥
謝 #面 ne FILTEげ 0ぶ 胤 淋 1
5「
uⅥ ……‐・・¨ ヽ一′ヽ
1ぽ欝諄i島::│:1:dli rl再 llli♂ :露d→ ?¥
::1擬efineFlLTELTCPω l't:::Flg"ぬ ち
∼
識
…
│ II鳴 封政臨」期 群諾rD畔
))¥
薔61 :11'
冷抹ぅな、、
││IIdefineFILTER_UDP⊂
p) (111「
震
1畷1玉:。::』lll:iモ :::.::rt)?¥
))¥
771ト
78
ipdunp(コ ピー).c Page 2
#ifndef __linux
int open_bpf(char *ifname, int *bufsize);
#endif ‐
│!││ ││││::│ll:lli:1:│::il:;:l:r軍
:::,:r *i:h):
V:│::│ll:」 翠tξ :li::tt:躙 r*把8:
void print_top_mini(struct tOphdr *top):
V:│:駈1島::l`:l[‖ :│』::り出aluお むif,iit ieO;
char ■lnac_ntoa(u_char *d);
:l:: :│::モ :::111ltfil:,│;
char *ip_ftoa(int flag):
vold help(char *cmd);
Ft minCnt ar齢
,char ttrⅣ)
int si
int c:
char ifname[CMAX]=
int opt[OPTNU‖ ];
extern lnt optind;
#ifndef__llnux
:│[u:lfbl:五 ldr *bp;
int bufsizei
#endif
struct filter fiiteri /*フ ィルタする情報
79
80
8︲
82
83
84
85
86
87
88
89
90
9︲
92
93
餌
95
96
97
98
99
00
01
02
“
“
05
06
07
08
09
︲O
H
︲2
︲3
︲4
︲5
︲6
︲7
8
0
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
1
1
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
/*BPFヘ ッダ構造体
/*BPFで の受信データの長さ
/*BPF内部のバッファサイズ
/
り
/
/
′
′
/
/
/
 
/
′
′
/
/
′
 
/
/
*
*
*
*
*
 
*
*
*
 
*
数
夕
字
 
グ
変
プ
文
 
ラ
ル
リ
た
 
フ
バ
ク
し
名
の
一
ス
得
ス
ン
ロ
イ
取
一
ヨ
グ
デ
で
エ
シ
の
卜
0
フ
プ
0
ツ
pt
タ
オ
pt
ケ
tO
ン
示
to
ソ
ge
イ
表
ge
/*
/*
/*
/*
/*
*/
 
 
 
 
 
 
 
 
一
値期初のンヨヽン
 
 
 
 
 
 
 
 
 
 
R
R
プ
 
 
 
 
 
 
 
 
 
鰤
OF
オ
 
 
 
 
 
 
 
 
*/
〓
〓
卜
 
 
 
 
 
 
 
 
 
値
門
ッ
R
;
⋮
⋮
⋮
⋮
R
R
;
期
DD
l
を
〓OF瑚
〓ON瑚瑚
〓ON
〓OF可釧巾暉鰤
る
l
 
 
 
 
 
 
 
 
夕
d
夏
載剛囲Ш団Ш剛剛凹剛つter‘f︲ter・fi
/*
opt
opt
opt
Opt
囃
opt
opt
麒
麒
/*
=
fil
油
詰 計 (3gitOpt・
電Q argv,Ъ d rdhftっ )卜 EOD I
case 'a' : /* all */ `
.
opt[ALL] = ON: 1 ‐‐ ‐‐
break; ・・ :‐ : ‐
,│:Jl‐ ■
︱
メ
 
一
︱
︰
︱
︰
■
1
1
■
,
→
¨
一
■
l
´
´
 
 
 
一一
 
1
 
 
 
 
 
 
 
 
・
 
イ
・
●
 
 
 
一
一
■
 
一
・
■
 
 
 
一一
一
. 
一
 
 
.
一
.
 
 
1
・
´
・
 
 
 
¨一
一
 
 
 
 
 
.
 
´ 
ぃ
●
 
 
. 
■
一
 
 
 
 
一
●
︰
 
 
一■
ヽ
■
 
 
,
一 
 
 
 
 
●
一 
 
一
一  
一”
 
 
一L
 
一,
 
〓
一
 
︼
 
 
,
■
 
●
い一
 
 
 
 
 
 
 
一
﹁
 
¨
■
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ヽ す
︱
 
 
 
 
 
 
 
 
 
 
 
一一
 
 
,
 
 
 
 
 
一
,
 
一
一 
 
 
 
 
 
 
 
・
″
一 
]
¨ 
 
 
 
 
 
 
 
 
 
一
一
一 
 
一 
 
一
一
 
一
一 
 
t
■
 
一¨ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
一¨ 
 
一〓
¨ 
 
 
 
 
 
﹁
︱
 
¨﹂
一 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
∴
,
 
 
 
 
一 
一  
 
 
 
一
一 
 
 
 
 
 
 
 
 
 
 
・ 
 
・
・ 
 
 
 
 
・
4
,  
ユ
ヽ
 
 
 
 
 
 
 
一 
 
 
 
 
一 ■
, ■
 
●
い一
 
 
 
 
 
 
 
一
﹁ 
¨■
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ヽ す
︱ 
 
 
 
 
 
 
 
 
 
 
一一 
 
,
 
 
 
 
 
一
,
 
一
一 
 
 
 
 
 
 
 
・
″一 
]
¨ 
 
 
 
 
 
 
 
 
 
一
一
一 
 
一 
 
一
一
 
一
一 
 
t■
 
一¨ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
一¨ 
 
一〓
¨ 
 
 
 
 
 
﹁︱
 
¨﹂
一 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
∴
,
 
 
 
 
一 
一  
 
 
 
一一 
 
 
 
 
 
 
 
 
 
 
・ 
 
・ ・ 
 
 
 
 
・4
,  
ユ
ヽ 
 
 
 
 
 
 
一
,
t
,
 
す
 
一T
 
 
,
I
一
︰
︱
 
 
 
 
 
 
 
一
一、
 
一■
 
一 
 
 
 
■
一
 
一
・ 
 
 
一・
 
■
¨ 
一
一 
¨
一
 
・一 
 
 
・
 
 
ヽ
・
″
 
 
 
一し
 
 
 
い一.一 
 
 
一
‘ 
一 
 
一 
ヽ一 
 
 
 
 
一 
一′
 
 
 
 
 
 
︲
 
■
 
一一
 
 
 
ヽ一
 
一¨
 
一一
 
.
一
ネ
.
 
 
 
 
 
 
 
 
一 
 
 
 
・
. 
 
 
.
.
 
 
 
.・ 
 
 
 
 
 
一
・ 
 
 
 
 
 
 
 
一■
 
一
. 
 
一 
 
 
 
 
 
■
一
 
 
 
 
 
 
 
 
A
r
 
 
一ヽ一
〓
一 
 
 
 
 
 
 
 
 
^r
■
●
・
一
一
 
一
¨一
■
一
 
.、
一一一一
一
一︶一
 
一
.
.
一一
一一.
﹁
一
 
・
 
一
一
 
一
一
﹁一
一
 
一一
 
、
一一
一一一
一
 
´
.
 
 
一
 
.
一
一
 
一
一
 
 
“
﹂
一
ヽ一
一
一・
・
 
. 
 
 
 
 
 
 
 
 
 
 
■
´
 
´
一 
 
 
 
 
 
﹁■
一
■
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
一 
 
 
 
 
 
 
・ 
 
●
一 
ヽ
 
﹁
一
一
 
 
 
 
 
 
一
■
 
一 
 
 
 
 
一 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ネ■
¨
 
 
 
 
 
 
一 
 
¨ 
 
 
 
 
 
 
,
■
一 
 
 
 
‘
〓
 
一一,
■
“
枠
一・¨
●
ゴ
い
一
︲
 
﹁
. 
 
■
ギ
﹂一 
 
 
一一
■
,
.一■
一
●
F
●
 
 
一■
一
■
ヽ■
1
1
 
 
 
 
 
 
 
 
一■
 
 
 
 
 
 
一
一
 
 
一
一
 
一 
,
パ
一
﹂一一
 
 
 
一・一一
一一..
,
.一一
一
■
一
一
一
一
 
 
一・一・・
 
.
・一・一
・一
,
 
 
一
.
.一
一
一・・
・一
一
一
....
一
・
 
 
・
・
・
・・
 
 
一・・一
一・
 
 
一
一
一一
一
一
一
一
 
 
一一
一.
一・ 
一 
.
 
 
 
 
 
 
 
一一
¨
 
 
一一
一
一
¨
 
 
 
,一
 
 
〓
....
一一一
・.一一
一一一一
一
 
一﹁
一
´一一一
一.一一
一■
 
 
 
 
 
 
 
 
一
一
 
 
 
一
一 
 
一
 
,  
 
・
 
一 ■
′
 
 
 
,  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
, 〓
 
 
 
 
一
 
^■
 
 
 
 
 
 
 
 
 
 
 
 
 
一●
 
 
 
 
 
・
・ 
ヽ 
 
一 ●
 
 
 
 
 
 
 
 
一●
︶
 
 
■
 
 
 
,
■
 
 
 
 
 
,
●
 
, “
・
 
^
・・¨
・・・
・
︶
摯
・諄
摯
 
 
一
種
 
′.
一・・
・・・・¨・・
・
・¨
r
・・・
,
・・
・一・一一
.〓
一
一
・・・・
・一・
・
・.一
・
・・・・
・・・・・・・
・・・・・
r
・
・・
・
・
・・
一一t一 
一一一
一一一
一一・一
 
一一一
 
・ 
・一
 
・.一
 
一一
〓 
.r
一 
一一一
一
一一 一一 
 
﹁一. 
.一 ・・  ・  ..
  
  
 
・・          一      一一
   ・一 
 
ヽ一        一一 
一一
■
 
 
′
レ
 
・︲>;
 
 
,︰ne
コp価p
 
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
ipdullp(コ ピー).c Page 4
struct ether_header *eth;
struct ether_arp *arp;
struct ip *lp;
struct icmp *iomp:
struct tophdr *top:
:1:IC:u単1:‖1lsiり:il
void *p;
vold *pO:
int len:
int disp;
struct timeval tvi
struct tm tm;
/ホ [thernetヘ ッダ構造体 */
/*ARPパ ケット構造体 ‐ */
/*IPヘ ッダ構造体 */
/*ICMPパ ケット構造体 */
/*TCPヘ ッダ構造体 */
/*UDPヘ ッダ構造体 ‐│ ホ/
/*データ受信バッファ */
′:会孝τ?務露畠蒼裏芋泰甲ず
`ン
タ‐:′
/*受 信したデータの長さ */
/*画 面に出力したかどうかのフラグ */
/*パ ケットをダンプした時刻 */
/*localtimeで の時刻表示 */
#ifndef__!inux
/* BPFか らの入力 */
r/1b騒
雰′(79Jを ‐ 取り出しイ
⇒)│ぁ iン 形 o4澪 │‐
「 晩 │ifp`∫
):髪
1,:ad″
)'ad(s'・
buffl‐ bufsi晨
‐‐
}覇鮒揖鷺:鰭卜材│も│‐
■bp = (struct bpf_hdr ホ) ((char *) bp + bp― 〉bh_hdrlen + bp―〉bh=caplen); ‐‐
l bp = (Struct bpf_hdr *)BPF_WORDALICN((int) bp); .
■ ' │
/*パケットダンプの時刻をセット*/
memopy(&tv. &(bp―〉bh_tstamp), sizeof tv):
夕♀C:││:撃
離:癸りT舌ダ峯世糸λうソを培電I*/ 「
p = ,0 = (char *) bp + bp― 〉bh_hdrlen;
len = bp― 〉bh_caplen:
#ifdef DEBUG
/*BPFヘ ッダ構造の値を表示 */
printf(″ bpf_le■ =%d,″ , bpf_len):
::││:││:│:│!ilililii″ , :::::│:。
::│:l;i;
#endif
/*次のwh‖ eループのための処理 */ .
bpf_len ―= BPF_WORDALICN(bp― 〉bh_hdrlbn + bp― 〉bh_cap10n): :
#else
/*Linux S00K_PACKETか らの入力 */
if((len=read“ ,buff,脚SIZD)〈 0{ ― │
perror(″ read″);
九l奪;IfサじIL刻 をセットツ ー ■gettimeofday(&tv, (struct timezone *) 0); ‐│ │ :
夕1° :1吉:撃:3[災 り151:第峯世糸7ずTを1よ り11/ .p = pO = buff:
#endif
‐ │ ‐│‐ 1 11 ‐ 1 11 1‐
/*
*パケット解析ルーチン
*/
disp=OFF: /*画 面に出力するかどうかフラグ */ : ‐
/*Ethernetヘ ッダ構造体の設定 */
:ttts縄::ICts:ll:It:i::霊〕d:あ : ■・ ■
if(ntohs(eth― 〉ether_type)==ETHERTYPE_ARP)I
arp = (struct ether_arp *) p:
if (opt[ARP] == ON && FILTER_ARP(arp))
l :::tSi::∫
││:hifel,_::ther―
type) == ETHERTYPE_IP)
, += ((int) (lp―〉ip=hl) 〈く2):
if (lFILTER_IP(ip))
continuei
if (opt[:P]== ON && opt[TCP] != ON && opt[UDP]
プらトコノと
'^
准象 ヘ
I= 0‖ && opt[I囲
あ 4
ipdump(コ ピー),c Page 5
399
40111
402
415
437
i pdulnp(コ ピー).C Page o
3911 */
3021chhr■ llac」toa(u_char*d)
翻轟eim脚_HACS■_59
:甜 1胆:lム :了 ♂器ボ ざモit‖ XたMcsTR]: /*文 字列に変換 したMACア ドレスを保存 */
3961 ______″ ″^^″^^‐ “^A― ・″An… 、い0¨・い0_″
:::I Snprintf(:lli,り :1キI,C:I】i,″‖::II%::li10:I:l':X il102x l%02x
4001 return stri
器:1/1 void print_ethernet(struct etheLheader*eth)i
1駆 │:お
雙能
Ethernetヘ ッダ0表示
螢遇1 131き :lrutt ether_heater*eth: Ethernet´ ヽッタFl韓 運三1本 ^ヽ
くつJく インタ
1♀ :│:戻
り壊し
劇:│ぼd printetherntttstruct ether■ e“er tttD
11111 int type = ntohs(eth― 〉ether_type): /* Ethernet`'・ イプ */
翻
rp舟
鮮占墨翼湿3 Ethemtt Fram`鶏 つ;
綱:ld:Lnゴ 像樋mtt Framざ 称つ;
1:♀ l printf(1+― ――――――――――――――――――――――――すこラ
II 「「 ―
「「1- 「
″
1::│::IIIIに1-53:ITF:[lEI111う
I五
五
'こ
こ:T::l:l;、 _Li_」 L_il.″
:::│ ::li:li:l_:lilililll:11」
:L_里里1=112:│::::≧ 11191=J1211と と1_____″
1:;│::11:│こ│― 冨17:こ
画 藤
;:II11 :::::::l:、 ^二 __.、 、・・
″
4281 :│キ
1:li::_lilili_111211il:li12=11211211二
≧11121=:1211と と:_二
三二_″
1561 r'…
…`″十一―
「=「
‐‐ ‐一 ‐■―・FYn″ ):
機l rp絆 鮮占I翼乙こう│… pF予 ムモ子ピ│こ こiLthi %5ul¥n″ ,typ● :
4331 eise
4341 ::iilltf`11_1lL呈
1121_1こ 221____2益121準 │¥,i' type);
4361〕
鴛創奪v“ d「 htF“ 帥鵬t ether_arp粕 げ
霧別 :機
能
AR「 パケ ツ トの表示
競:│ :弓
1言 :な
lruct ethё r_arp*arp: ARPパ ケ ッ ト囀専造クトヘのポインタ
麟91ぶd ri雌印
“
廿戯ether」ゅ轟ふ
競:II static char*arp_op_ntte□ ={
競創:戻
り壕し
4501
″Ondefine″
1`II
″そ瀬う
:良
じこubpl)″,
凝露F籠21詰争矢τL写ぜTeり
])
1::l if.pく O H ttPpP_MAXく o"
::l1 2[:11:s::1212221i_全 11111と 1________+― ―――――――――――――――――――――――一+¥n″):
46:│ :l11:│(二
1 lIF3 77:こ 1 瓦II玩二TT:T「i7:11:IT15反
罵511玩151T軍罵7:
l::│ li:│:i:::2,を ::再:::L:15':'IF=IRPII17::I:ll::li:│::lilキ
liillll:
お二l r‐
`
ntohs(arp■ 〉pa_hdl・ ar_hrd).
1::l printf(∫ 1121ill12:i31軍 11111lIE二2生三軍三上EEEllttEIIEll_1111_1_lIII¥iレ ,:′ :
Ether)″
ipdump(コ ピー).C Page 7
:│││:││:│:!:::ill:l:::!!lllillliliI:::::II::lililllllillili:Thdr.ar_。
p),
:│││::│:1_::::::_!!lil!1::lil,=里 121上 121≧112=E12≧1二
=_._=__―
;
″
+― ――――――――――――――――――――――――+¥n″):
printf(″ I Source IP Address: %15si¥n″ ,
inet_ntoa(*(struct in_addr *) 3arp― 〉arp_spa));
printf(″ +― ―――――――――――――――――――――――――――
・ ″
+― ――――――――――一―――――――――――――+¥n″):
printf(II Destinatl♀
:│!19,All:露::a(arp_〉arp_tha));
printf(#│二
三二I三二三二III三二三二II三二二三二II二軍7言
ラ
テT 「
printf(″ I Destination IP Addressi %15sl¥n″
inet_ntoa(*(struct in_addr *) &arp― 〉arp_tpa));
l printf(″
+――――――――――――――――
print_ip(struct ip *ip);
* IPヘ ッダの表示
*引 き数
* struct ip*ip: IPヘ ッダ構造体へのポインタ
*戻 り値
* なし
*/
1°
│││││││:FI:1:::litil!11と
:lTl_1薦
T:::::I:::ス :モ F::11:IT薫
::::::i:│:11);
ip―〉ip_v, ip―〉ip_hi, ip_tt
:「 11:;(Ii TII再 lTTT:FT+ 13二 i FF:%3sl FO: %5ul¥n″ ,
ntohs(ip―〉ip_id), ip_ftoa(ntchs(lp― 〉ip=off)),
::11:│(l1211::21≧
11:lif:7111=2E菫
ili::::::::::::::::::I::::lil:│:・
‐
::111:{li:::li::lil:::i:::liliiil_1と
_&(ip―
〉ipll':│;,;'__二
___+¥ni);
::11::│'1 5111TIIII:ス
TF ス
II「ここy lt15sl¥n″
,
inet_ntoa(*(struct in_addl_1と
_11lEI≧ l呈
=J211≧
1_1_____+¥n″ );
l printf(″
+― ―――――――――――――――――――――――
/*
* char *ip_ftoa(int flag);
*機能
* IPヘ ッダのフラグメン トビッ トを文字列に変換
* static変 数を使用 しているため、非リエン トラン ト関数
*引 き数
* int flag; フラグメン トフィール ドの値 ‐
*戻 り値
* char* 変換された文字列
*/
char *ip_ftca(int flag)
{ __ _ _
I£1織lCIIF鵬 凸臥x(11】 :も f:'シ sI:Lf f1057グ
メント,フ ラグを琴す文字
static char str[lLFLG MAX+1]: /*戻 り値を格納するバッファ ・static char str[
ld
能
vo
機
*
*
*
4ソ 9`
イ
,
寿勢多イオtl
ろiiⅢ
:‐
4教
乏ふtt、 ヽら
static char strHP_FLG_MAX+1]: /*戻 り値を格納するバッファ
unsigned int mask = Ox8000;
ク 形登多変int i:
/
′
 
/
/
/
*
 
 
*
*
*unsi
for(1=0:
if (((flag
str[i]=
e:se
str[i]=
l
str[i]= '¥0'
i〈 IP_FLG_mAX;i+十 )I
く〈i) & mask) != 0)
f[i]:
'0':
i pdullp(コ ピー).c Page 8
return str: ‐・ ‐■・
, │ │ ‐││ ‐│ . │ 1 1■ 1
1
/*
* char ホip_ttoa(int flag);
*機能 ‐ ‐・
・ 11■ ■ │
* IPヘ ッダのTOSフ ィール ドを文字列に変換
* static変 数を使用 しているため、非 リエン トラン ト関数
*引 き数
* int flag; 10Sフ ィール ドの値 ‐ 「 ■ ■・
*戻 り値
* char* 変換された文字列
*/ ‐
lhar*ip―
ttoa(int flag) . ― ‐ 1
static int ´f[]= 〔'1', '1', '1', 'D', 'T', 'R', 'C', 'X'I:
/*TOSフ ィール ドを表す文字
聯胎胸脚e悛
常犠亀‐れ1'
Чfl鮒ぜ千iil!沸
薔:ぶ
+iL I)
eise
l Str[i]='α
:
str[i]= '¥0';
return str:
l
/*
1 lltt print_icmp(struct i,Tp*1'mp)1 ‐_‐ ‐│
* iCMPヘ ッダ・データの表示
*引 き数
*戻 り稽
ruct iCmp*icmp; ICMPヘ ッダ構造体 ‐■ ■ : 11.● :
* なし .
*/
1°
id printi呻
“
truct i呻
ザm ‐‐・ ―
7
8
9
0
1
2
3
4
5
6
7
8
59
60
6︲
62
63
64
65
66
67
68
69
70
7︲
72
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
98
99
∞
01
02
03
餌
05
06
07
08
09
︲0
■
2
3
4
5
6
7
8
9
0
1
2
3
4
4
4
4
5
5
5
5
5
5
5
5
5
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
,
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
ハ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ー
ー
ー
ー
ー
ー
ー
ー
ー
2
2
2
2
2
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
/
 
/
/
/
*
 
 
*
*
*
St'::1。 °
1::│;ち羊
pe_name[] = {
″
Undefine ,″
Undefine ,″
Destination unreachable″ ,
″
Source Ouench″ ,
″
Redirect (change route)″ ,
″
undefine ,″
Undefine ,
#[:::fi::ツ
iSt″
'
“
Undefine ,″
Time Exceeded″ ,
″
Parameter Problem″ ,
:│││:ii:││:│:│!:il::″ ,
″
Address Mask Request″ ,
;1111::R″MaSk Reply″ , ‐‐
l;
#define lcHP_TYPE_‖ AX (sizoof
int type = icmp― 〉icmp_type;
/* Type o ■/ ‐. 1 . :
/* Type l */
/* Type 2 */
/* Type 3 */ . ‐
′: :サ:: : :′
/* Type 6 */
′│ │::: : i′
/* Type 10 */
/* Type ll */
/* Type 12 */
/* Type 13 */
/* Type 14 */
′ユI予 :: │: 1′
/* Type 17 */
/* Type 18 */
′:I`l:おち7手を表す長拳列:/
り撃1鵬 4り鷺,f typ■
name[o])
脚 翼著銀 景臨 I膜│″ Fぶ二a鵬 腱″.; ・
‐
::11:;{#│ T,5:T 153i 3553T 1511 5吾 :IIIIttT ―
――-13こ
i軍 古γl″
);
printfル 響I≧ 1型E・ttIB♀二19聖I≧ l聖軍22111_112'E`l聖 :≧ l聖
=:L:絆 ;:
ipdump(コ ピー).c Page 9
*)
if
*
ホ
*
*
1
 
/
6 2 5
6 2 6
6 2 7
6 2 8
6 2 9
6 3 0
6 3 ︲
6 3 2
6 3 8
6 3 4
6 3 5
6 3 6
6 3 7
6 3 8
6 3 9
卸
6 4 ︲
6 4 2
6 4 8
6 4 4
6 4 5
6 4 6
6 4 7
6 4 8
6 4 9
6 5 0
6 5 ︲
6 5 2
6 5 3
6 5 4
6 5 5
6 5 6
6 5 7
6 5 8
6 5 9
6 6 0
6 6 ︲
6 6 2
6 6 3
6 6 4
6 6 5
6 6 6
6 6 7
6 6 8
6 6 9
6 7 0
6 7 ︲
6 7 2
6 7 3
6 7 4
6 7 5
6 7 6
6 7 7
6 7 8
6 7 9
6 8 0
6 8 ︲
6 8 2
6 8 3
6 8 4
6 8 5
6 8 6
6 8 7
6 8 8
6 8 9
6 9 0
6 9 ︲
6 9 2
6 9 3
6 9 4
6 9 5
6 9 6
6 9 7
6 9 8
6 9 9
畑
7 0 ︲
7 0 2
1響RIキ 富腎:首::i百。:tl:nlΨ
=彎
:躍鷺:::n::l鷹 eFi■ %5u・ l¥洵
`
::ilifll:│:::1権 :縫
E::=1‐
} :│,iti(lin:│」
R:::│。ng)
tohs(icmp― 〉icmp二 id)t ntohs(iCmp― 〉icmp_seq)):
――T■
=+¥nr);
e:le if (icmp― 〉icmp二
ifp∫
IRI早マ
)lC':三
:?db F'° %ttl Neit MIり :
l15ul¥n″ ,
・ ‐
ntOhs(icmp― 〉icmp_pmvoid)i_ュ
121i`19聖EI≧12型2三12至上里1翌ととi:幸1')iprintf(″ +― ――――――――――――■
=―
‐――――――‐
%101ul¥n“ :
ntohl(icmp― 〉iOlnp_vo:0);
l printf
liet_ntoa(*(struct in_addr
cllp― 〉icmp_type=5)〔
Router IP Addressi
“
c呻→I:[出:む
“
D;
:lliti〔
″li貫::1を │:Tll
l :I::tif:tT:品 F二
'T:話
FII,Fこ
ニ
ニ
TTテ 1 ――――――――――――‐―+¥n″);
%101ul¥n″ ,printf(11 U,useci・ (lnsigned:ong)ntohi(iom堕 ≧聖里型21Jととi_____一―+¥n″):printf(″ +― ―――――――――――――――――――――――
:│IIl亀ili:ilililiFiMl[,li:'言11‐FII‐
111′
群1継i齢‖(structtcphdri": _..‐ ■break;
Ca:FillPI::,マ
::lict udphdr *) p);
break:
l
│
/:濃
罷TI11し ::』L讐l::I[ti:1菫 重││:│:で 返送される部`))
ilittructtcphdr*tcpl TCPヘ
ッダ構造体
* な し
ぼd"htt卿m tstrtt tophdr社●
"〔
printf(IPrOt0001:
:「 11:;(F:1212221i_IgI111と 1――――――――――――――――――――――+― ―――――――――――――――――――――――=+¥n″ )
brintf(″ I Source Porti %5ul Destination Porti %5ul¥n″・ ‐
ntOhs(tcp→ th_sport)i ntonS(tOp― ntLdpOrt))「
printf(″ t―
――一―――――――――――――――――――――+―――――――――――‐――――
::11:││`i二 :::i[III 雨 こ罵::7TL二
__.___+__L__「 __T= TT 175TET軍
F'「lln″
)
(lnsigned long)
printf(″ +― ――――――――一―――
ntohi(top― 〉th_Seq));
――――――――――
―
―――+¥n″)
ユニ■1_+■_■ ■
=____Ll_________―
―――…+¥n″)
*
〓
I
l
,
 
/
4
1
void print_tcp(struct tcphdr *top):
機能
TcPヘ ッダの表示
:
引き
欝ruct tophir *tcp: TcPヘ ッダ構造体
*戻 り値
* な し
1:lli鷺
1冨:::::i言clttitt°
pl
brintf(″ t―
―――― ―――――――――――+¥n″)
brintf(11。
,:そ[::_;:il:pOrt), ‖::Isti::1,:li::。;:∫ ;: %5ul¥nr
i pdulnp(コ ピー).c Page 10
*戻 り椙
t flag; TCPの コントロニルフラグ
* char* 変換された文字列
*/
ta真 ¶ 鷲 llf冒 :中 ≒ ● 写・
#define TCP_FLC_‖AX (sizeof f / sizeof f[0])
static char str[TCP二 FLC_‖AX + 1]:
unsigned int mask = 1 くく(TCP_FLG_‖AX - 1);
int i:
for(i=0:iく TCP_FLC_MAX:i‐ ){
if(((flagくくi)&mask)l=0
str[i]=f[i]:
eise
str[│]= '0' ;
ltr[│]=,YO':
return str:
l
/*
* vold print_udp(struct udphdr *udp);
:「 ll:;(二 1 3:II:吾:: 1こ 罵:こ
「1 +―
――――-1-「
1 1「「「藉T3TこT軍 再'11半
n‐ )
:「 111:(:1里 i:il:IT:│::│こ │12111::::≧
lL=2:1と とil_こ
=二
_=,15TIT軍
1'「
+Ynr)
:;IRI:(111:::│:lTll:::テ │:││::│::i:llil:│と::IET―
―――瓦
::T軍:ラ
+¥n´,
::11[i(:iE:│:li::│:-12E=二
│,111嘉≧1奎±111壁 Ll_112Li`11壁 1奎::│!I)i
printf(912Li`112:≧ 11=2望 里と1_112'Ell軍 PI≧11=翌二塁ことi二 ____._=_■ ■■_― +¥nr)
l
/*
1機能
*tCp―ftoa(int flag):
‐.
*引 き裏
Pヘ ツダのコン トロールフラグを文字列に変換
/
4
ノ
/
′
/
*
*
*
アフ
ク
ツ
ス
バ
マ
る
す
す
出
納
り
格
取
数
を
を
変
値
グ
プ
リ
ラ
一
戻
フ
ル
*
*
*
/
/
′
/
03
“
“
06
07
08
∞
︲0
︲1
12
︲3
︲4
︲5
6
7
8
9
0
1
2
3
4
5
6
7
28
29
30
3︲
32
33
34
35
36
37
38
39
“
4︲
42
43
4
45
46
47
48
49
50
5︲
52
53
54
55
56
57
58
59
60
6︲
62
63
64
65
66
7
8
9
0
1
2
3
4
5
6
7
8
9
0
・
1
1
1
1
4
1
2
,
彙
∠
,
5
‘
2
9
1
∠
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
I
Y
6
7
4
′
7
1
1
7
7
4
′
7
う
1
7
n
v
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
'F'I;か TCPフ ラグを表す1文 字 :プ
*機能
* UDPヘ ッダを表示
*引 き数
*戻 り値
uct udphdr*udp: UDPヘ ッダ構造体へのポインタ
* なし
*/
ヽだD
前景色を青に */暉!墨:ボEll弾:
brintf(″ Protocoli UDPヽ
::111:(II 3:こ
「:: F:IIi
:│111:(:12::│::l:≧
望L=呈22111L_112LE:│::i:│IF12211と と二=「
,こ こT薫 スラ│¥nr):
:;111:│::││:│::│;;IL型
11):L」
::│』:::::│llil‖││:::「豪―:ラ
… …………+¥n″);
printf(″ Protocoli UDP¥n″ ):
prinif`It-1-― ――1 7 ― ―一rr―
――十一―――――――=二
■■‐‐ ―=― ‐―――・―・+¥n
%5ul Destination Port: %5ul¥n″
l
/*
* void dump_packet(unsigned char *buff, int len):
*機能 │
* Ethernetフ レーム先頭から16進 数ダンプ(ア スキー文字表示)
*引 き数
1 ‖lli阜:1l Char*buffi 多じび事急蒸77毅
先頭アドレス
*戻 り値
* なし
*/ ‐
rid dm―
packet(ulnsiened char ttuff=int io?.:│
ジ竜ЙI、 Lt17:
ipdump(コ ピー).c Page ll ヽ:1 ●■■
1 111111lil ill:
│■ 1111
i 4:,
11:│ ::
ipdw (コ ピー).c Page 12 1「 018q 。_(_bC)彎 剛bq:
:::l iち
`1円
││メ│::1181躙│も イ十L)く のI
:::│]'pl:円:l∫::::iご 18:「18‖ 1為 イナLバ 切t ぃ餞交t― よキ`:ι :l ini ll:│
8611 1oturn ‐1:
8621 1 l爾 二ヽす濯‖ゞ群;曹 V叫謂1鍛
863
l (0' =+ i :■ Ol 〉1 10 = i) lol l卜8【
ヽぼてくヽ離轟61・ `
│こ 8'
即時モー ド1/ }(‐ ti●31〉 i380Fキ │〉 i li tt)101 i38'
=1: ´^、
r i(it]11● d.`101` )linilq l18::::│ ク=臀 Fモ
ー ド1/
'`tな
い
ill,i17 1麗:
鍵,l it`1胃│が│::1‖ 測腱│‖‖::腋穫,″ ,│)く
゛I
:(‐
`)11‖ 1ヽ q l l鍵
│:::│ ::器I寓 :
0091} iOi
“
pl :_ __ ヽま疑豊毯藤灘①群Q書量 *、 li薔:
3711 return bpfd:
:;:ILndif
餞 甲 郡 慮:韓 氏酔「
魯曜二『 1覇
警
:遇 1機llil._ _
, 14 )111111 1腱 :
│( ■)1ま f!:ヽ ■ leel
鮒 │lil:距│:華
│││ :lii::│:│::卜lill:l:,:::│1鶴 輻 輝
t貯
:ll]鮨
鷺 iI:│ 1露│
_ 30iO IS08
8751v● id helptohar相 哺
87611
301「 i5FinT(:モ abrr,″ default:%s― p arp ip iolnp top udpVn″ ,omd):
88211endif
8831}
ltOt
,omd): :(` .)1よ
nil:i° │:::
{ │卜08
1303
1(` 11¥ )11■ 1lq 1008
_鵬 囃理雨L桐護:盤
:(3ヽ 131,」 4オ │「:1 9臓 s「 111■ 、slo,lQ(1 1loqo l,: ■18:8
爵欝 =│卜 1念
さtく ヤーtヽ 118 , こ18
叢 弯Iト ホ 1313
滲え― ■ヽやく 卜 :う 嬌sf:キ :ヽ 、金lo ■ 11:8
矢 卜で 、て、・ア、e構 内1電 傘lol121■ づ●鸞: ■ 1813
麟 ヤ露 =10:3
やヽ 警で人 トキこ 卜、ヽ ま,│ ,1038
‐■│:,8
“
ェlol雄 1,1,oH3■1:■ 18鋤 1麟d´,oooま
弯ll::
li l轟
瞭墨轟食号
[I∫lill :、
:1彎:::│ギ
││││li ll:│
13S8
1・
、1ヽ 一■o、1ヽ 卜■てヽ ヽハ やR18ギ . e'3
1 (・・1 1卜 〉i ,0 ; 1) lol 1008
お
'(お
1橘1161ゃ
`‡
│‖ :qら
1彗 dll樹
I・│: │:::
i130ヽ d 388
1 ‐卜88
1388
} (こ =く │) 11 1008
1(` ■Yl'311■ lo l),Is「 ,1lobli111鶴
::t l:::
l ieC8
,鑓
`*宝難0矢 卜や 、て、,′
、①輔内113■ │:事3
13118XA総・ 9112)静 蜃ヰ IS事 8
:(osi31彗 d* ‐│:」
(:綺
t話::::l111`I:押l:鷲:│キ:ボキ11:::l・
1: │:ま
:
1倫ud)lolloo 13卜 8
:「 ―Ftl」101 13)8
: │ヽ 卜8
i3卜 8
`
・ 宝戴① き人一
=(贅 く 卜 *` leヽ8
鳩耐 r」鶴二鋳#隋lI鱗
熙IF欄:(lud)ヽ olloq 1838
:「 ―nlulol '卜 e3
1 1ee8
:(l●d,oms■ _1li.111
`
`IV′
),r "nllゎtサ 111ギ ,1lobla)11■ 1lql l:認
1,キ
k― チ3り ooool鍮nll■ 1 1888

More Related Content

What's hot

Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenMITSUNARI Shigeo
 
デバドラを書いてみよう!
デバドラを書いてみよう!デバドラを書いてみよう!
デバドラを書いてみよう!Masami Ichikawa
 
Xen4.0 and vt-d Network Performance Benchmark
Xen4.0 and vt-d Network Performance BenchmarkXen4.0 and vt-d Network Performance Benchmark
Xen4.0 and vt-d Network Performance BenchmarkMitsutoshi Kiuchi
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたMITSUNARI Shigeo
 
Inquisitor -Common Lispに文字コード判定を-
Inquisitor -Common Lispに文字コード判定を-Inquisitor -Common Lispに文字コード判定を-
Inquisitor -Common Lispに文字コード判定を-t-sin
 
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介MITSUNARI Shigeo
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用MITSUNARI Shigeo
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺MITSUNARI Shigeo
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生MITSUNARI Shigeo
 
Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPUgos-k
 
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価Toshiaki Hishinuma
 
Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16tomoaki0705
 

What's hot (16)

Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
ゆるバグ
ゆるバグゆるバグ
ゆるバグ
 
デバドラを書いてみよう!
デバドラを書いてみよう!デバドラを書いてみよう!
デバドラを書いてみよう!
 
Xen4.0 and vt-d Network Performance Benchmark
Xen4.0 and vt-d Network Performance BenchmarkXen4.0 and vt-d Network Performance Benchmark
Xen4.0 and vt-d Network Performance Benchmark
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
Inquisitor -Common Lispに文字コード判定を-
Inquisitor -Common Lispに文字コード判定を-Inquisitor -Common Lispに文字コード判定を-
Inquisitor -Common Lispに文字コード判定を-
 
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPU
 
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
 
Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16
 
Boost Tour 1.48.0 diff
Boost Tour 1.48.0 diffBoost Tour 1.48.0 diff
Boost Tour 1.48.0 diff
 

Viewers also liked

Irea chemical enterprise products
Irea chemical enterprise productsIrea chemical enterprise products
Irea chemical enterprise productslunchNtouch
 
Atdd In Practice (Agile Tour 2010 Qingdao)
Atdd In Practice (Agile Tour 2010 Qingdao)Atdd In Practice (Agile Tour 2010 Qingdao)
Atdd In Practice (Agile Tour 2010 Qingdao)Yi Xu
 
Web designing using html
Web designing using htmlWeb designing using html
Web designing using htmljulicris021488
 
Azure Webiner: より安定したWebサイト構築のためのAzure PaaS サービス群
Azure Webiner: より安定したWebサイト構築のためのAzure PaaS サービス群Azure Webiner: より安定したWebサイト構築のためのAzure PaaS サービス群
Azure Webiner: より安定したWebサイト構築のためのAzure PaaS サービス群Daiyu Hatakeyama
 
電子學實習Ii實習手冊 l8(教師用本)
電子學實習Ii實習手冊 l8(教師用本)電子學實習Ii實習手冊 l8(教師用本)
電子學實習Ii實習手冊 l8(教師用本)lungtengtech
 
Secondary Structure Prediction of proteins
Secondary Structure Prediction of proteins Secondary Structure Prediction of proteins
Secondary Structure Prediction of proteins Vijay Hemmadi
 
Dr. W. Edward Deming
Dr. W. Edward DemingDr. W. Edward Deming
Dr. W. Edward DemingAnish Raj
 
Protein Structure Determination
Protein Structure DeterminationProtein Structure Determination
Protein Structure DeterminationAmjad Ibrahim
 

Viewers also liked (12)

Irea chemical enterprise products
Irea chemical enterprise productsIrea chemical enterprise products
Irea chemical enterprise products
 
Atdd In Practice (Agile Tour 2010 Qingdao)
Atdd In Practice (Agile Tour 2010 Qingdao)Atdd In Practice (Agile Tour 2010 Qingdao)
Atdd In Practice (Agile Tour 2010 Qingdao)
 
SAP BO Resume
SAP BO ResumeSAP BO Resume
SAP BO Resume
 
Web designing using html
Web designing using htmlWeb designing using html
Web designing using html
 
HR Comes Of Age
HR Comes Of AgeHR Comes Of Age
HR Comes Of Age
 
Azure Webiner: より安定したWebサイト構築のためのAzure PaaS サービス群
Azure Webiner: より安定したWebサイト構築のためのAzure PaaS サービス群Azure Webiner: より安定したWebサイト構築のためのAzure PaaS サービス群
Azure Webiner: より安定したWebサイト構築のためのAzure PaaS サービス群
 
電子學實習Ii實習手冊 l8(教師用本)
電子學實習Ii實習手冊 l8(教師用本)電子學實習Ii實習手冊 l8(教師用本)
電子學實習Ii實習手冊 l8(教師用本)
 
Secondary Structure Prediction of proteins
Secondary Structure Prediction of proteins Secondary Structure Prediction of proteins
Secondary Structure Prediction of proteins
 
Protein Structure Prediction
Protein Structure PredictionProtein Structure Prediction
Protein Structure Prediction
 
Dr. W. Edward Deming
Dr. W. Edward DemingDr. W. Edward Deming
Dr. W. Edward Deming
 
Protein Structure Determination
Protein Structure DeterminationProtein Structure Determination
Protein Structure Determination
 
QQ Overview
QQ  OverviewQQ  Overview
QQ Overview
 

Recently uploaded

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 

Recently uploaded (7)

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

Ipdump

  • 1. 37 47 53 ipdunp(コ ピー).C Page l :1/1**iも お,1:;ヽ 事1り Tl彗言ア1'サ,1夢言1歩 琴言 *キ │::I需:│:す **********:********* 副 : 晰 21Ю "年 明 縮 制作・著作 榊 螺 α議お 血 商 品あ 51* 161#include くstring.h〉 1871111:│::: `:││:11ゝ h〉 ‖1使]× 『:言[言::言:::を:]]:::讐:1纂纂11 │:li IIE:li':::3[曇 換菫:警li晨言警春と量」≧[号i │:│:*料*二塁:il奎塁塁五這曇│き 看侵議で書羞型叢言:奮 ご墨ぎ子を1夕 171ル:::**************************│ │:│ll鷲 │‖:なヨ│:bll〉 361#includeくsignal.h〉 381#define MAXSiZE 8192 391#define cMAX 256 401#define oPTNU‖ 9 411#define ON 1 鑑 ││::科 1::[[_lF 9enO″ /* Mac OS Xの デ フオル トフイEン タフエース名 */ :││││11権 :i!:`ili:[Itstm.h〉 馨閣1斜 ‖:{職 識読夕11) 笙1撫 嬬:轍鸞,ギ :「 D ::││IIil!1:_1::::'71`:11ゝ h〉 ::│l11:│││: li:i′llil;ゝ h〉 ::││││:li:: 11:│││:l;if_ether.h〉 鍮 析扮 雛 砒 肌 呻 咄 硼 : 露1壼lel11砲 11た 7:13k:思F各 昌t:`お 1籍efitt liLfE屯諏 '(b)そ filte7.fig[IP_ADDR]?¥ こ61 :=1' :││11:[:│::lit ::│ ′:│::馨 辱程13兄 留製:′ 発ls廿 鵬t filt針 I 瑠耶葺鮮歯γ狂サ子I孝 'ラ 歩影‐‐・ JI緒 elitt liLfE曲 'こ 3)i:│「 ::iilgiIIJ苦 [〕∫:iti冨 ユ ││:iillミ _:1:I・ ゅ.?¥ 謝 #面 ne FILTEげ 0ぶ 胤 淋 1 5「 uⅥ ……‐・・¨ ヽ一′ヽ 1ぽ欝諄i島::│:1:dli rl再 llli♂ :露d→ ?¥ ::1擬efineFlLTELTCPω l't:::Flg"ぬ ち ∼ 識 … │ II鳴 封政臨」期 群諾rD畔 ))¥ 薔61 :11' 冷抹ぅな、、 ││IIdefineFILTER_UDP⊂ p) (111「 震 1畷1玉:。::』lll:iモ :::.::rt)?¥ ))¥ 771ト 78
  • 2. ipdunp(コ ピー).c Page 2 #ifndef __linux int open_bpf(char *ifname, int *bufsize); #endif ‐ │!││ ││││::│ll:lli:1:│::il:;:l:r軍 :::,:r *i:h): V:│::│ll:」 翠tξ :li::tt:躙 r*把8: void print_top_mini(struct tOphdr *top): V:│:駈1島::l`:l[‖ :│』::り出aluお むif,iit ieO; char ■lnac_ntoa(u_char *d); :l:: :│::モ :::111ltfil:,│; char *ip_ftoa(int flag): vold help(char *cmd); Ft minCnt ar齢 ,char ttrⅣ) int si int c: char ifname[CMAX]= int opt[OPTNU‖ ]; extern lnt optind; #ifndef__llnux :│[u:lfbl:五 ldr *bp; int bufsizei #endif struct filter fiiteri /*フ ィルタする情報 79 80 8︲ 82 83 84 85 86 87 88 89 90 9︲ 92 93 餌 95 96 97 98 99 00 01 02 “ “ 05 06 07 08 09 ︲O H ︲2 ︲3 ︲4 ︲5 ︲6 ︲7 8 0 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 /*BPFヘ ッダ構造体 /*BPFで の受信データの長さ /*BPF内部のバッファサイズ / り / / ′ ′ / / /   / ′ ′ / / ′   / / * * * * *   * * *   * 数 夕 字   グ 変 プ 文   ラ ル リ た   フ バ ク し 名 の 一 ス 得 ス ン ロ イ 取 一 ヨ グ デ で エ シ の 卜 0 フ プ 0 ツ pt タ オ pt ケ tO ン 示 to ソ ge イ 表 ge /* /* /* /* /* */                 一 値期初のンヨヽン                     R R プ                   鰤 OF オ                 */ 〓 〓 卜                   値 門 ッ R ; ⋮ ⋮ ⋮ ⋮ R R ; 期 DD l を 〓OF瑚 〓ON瑚瑚 〓ON 〓OF可釧巾暉鰤 る l                 夕 d 夏 載剛囲Ш団Ш剛剛凹剛つter‘f︲ter・fi /* opt opt opt Opt 囃 opt opt 麒 麒 /* = fil 油 詰 計 (3gitOpt・ 電Q argv,Ъ d rdhftっ )卜 EOD I case 'a' : /* all */ ` . opt[ALL] = ON: 1 ‐‐ ‐‐ break; ・・ :‐ : ‐
  • 3. ,│:Jl‐ ■ ︱ メ   一 ︱ ︰ ︱ ︰ ■ 1 1 ■ , → ¨ 一 ■ l ´ ´       一一   1                 ・   イ ・ ●       一 一 ■   一 ・ ■       一一 一 .  一     . 一 .     1 ・ ´ ・       ¨一 一           .   ´  ぃ ●     .  ■ 一         一 ● ︰     一■ ヽ ■     , 一          ● 一    一 一   一”     一L   一,   〓 一   ︼     , ■   ● い一               一 ﹁   ¨ ■                                       ヽ す ︱                       一一     ,           一 ,   一 一                ・ ″ 一  ] ¨                    一 一 一    一    一 一   一 一    t ■   一¨                                          一¨    一〓 ¨            ﹁ ︱   ¨﹂ 一                                              ∴ ,         一  一         一 一                      ・    ・ ・          ・ 4 ,   ユ ヽ               一          一 ■ , ■   ● い一               一 ﹁  ¨■                                       ヽ す ︱                      一一    ,           一 ,   一 一                ・ ″一  ] ¨                    一 一 一    一    一 一   一 一    t■   一¨                                          一¨    一〓 ¨            ﹁︱   ¨﹂ 一                                              ∴ ,         一  一         一一                      ・    ・ ・          ・4 ,   ユ ヽ              一 , t ,   す   一T     , I 一 ︰ ︱               一 一、   一■   一        ■ 一   一 ・      一・   ■ ¨  一 一  ¨ 一   ・一      ・     ヽ ・ ″       一し       い一.一      一 ‘  一    一  ヽ一          一  一′             ︲   ■   一一       ヽ一   一¨   一一   . 一 ネ .                 一        ・ .      . .       .・            一 ・                一■   一 .    一            ■ 一                 A r     一ヽ一 〓 一                  ^r ■ ● ・ 一 一   一 ¨一 ■ 一   .、 一一一一 一 一︶一   一 . . 一一 一一. ﹁ 一   ・   一 一   一 一 ﹁一 一   一一   、 一一 一一一 一   ´ .     一   . 一 一   一 一     “ ﹂ 一 ヽ一 一 一・ ・   .                      ■ ´   ´ 一            ﹁■ 一 ■                                   一              ・    ● 一  ヽ   ﹁ 一 一             一 ■   一          一                              ネ■ ¨             一    ¨              , ■ 一        ‘ 〓   一一, ■ “ 枠 一・¨ ● ゴ い 一 ︲   ﹁ .    ■ ギ ﹂一      一一 ■ , .一■ 一 ● F ●     一■ 一 ■ ヽ■ 1 1                 一■             一 一     一 一   一  , パ 一 ﹂一一       一・一一 一一.. , .一一 一 ■ 一 一 一 一     一・一・・   . ・一・一 ・一 ,     一 . .一 一 一・・ ・一 一 一 .... 一 ・     ・ ・ ・ ・・     一・・一 一・     一 一 一一 一 一 一 一     一一 一. 一・  一  .               一一 ¨     一一 一 一 ¨       ,一     〓 .... 一一一 ・.一一 一一一一 一   一﹁ 一 ´一一一 一.一一 一■                 一 一       一 一    一   ,     ・   一 ■ ′       ,                                                                                                                                           , 〓         一   ^■                           一●           ・ ・  ヽ    一 ●                 一● ︶     ■       , ■           , ●   , “ ・   ^ ・・¨ ・・・ ・ ︶ 摯 ・諄 摯     一 種   ′. 一・・ ・・・・¨・・ ・ ・¨ r ・・・ , ・・ ・一・一一 .〓 一 一 ・・・・ ・一・ ・ ・.一 ・ ・・・・ ・・・・・・・ ・・・・・ r ・ ・・ ・ ・ ・・ 一一t一  一一一 一一一 一一・一   一一一   ・  ・一   ・.一   一一 〓  .r 一  一一一 一 一一 一一    ﹁一.  .一 ・・  ・  ..         ・・          一      一一    ・一    ヽ一        一一  一一 ■     ′ レ   ・︲>;     ,︰ne コp価p   l l l l l l l l l l l l l l l l l l l l l l l l l
  • 4. ipdullp(コ ピー).c Page 4 struct ether_header *eth; struct ether_arp *arp; struct ip *lp; struct icmp *iomp: struct tophdr *top: :1:IC:u単1:‖1lsiり:il void *p; vold *pO: int len: int disp; struct timeval tvi struct tm tm; /ホ [thernetヘ ッダ構造体 */ /*ARPパ ケット構造体 ‐ */ /*IPヘ ッダ構造体 */ /*ICMPパ ケット構造体 */ /*TCPヘ ッダ構造体 */ /*UDPヘ ッダ構造体 ‐│ ホ/ /*データ受信バッファ */ ′:会孝τ?務露畠蒼裏芋泰甲ず `ン タ‐:′ /*受 信したデータの長さ */ /*画 面に出力したかどうかのフラグ */ /*パ ケットをダンプした時刻 */ /*localtimeで の時刻表示 */ #ifndef__!inux /* BPFか らの入力 */ r/1b騒 雰′(79Jを ‐ 取り出しイ ⇒)│ぁ iン 形 o4澪 │‐ 「 晩 │ifp`∫ ):髪 1,:ad″ )'ad(s'・ buffl‐ bufsi晨 ‐‐ }覇鮒揖鷺:鰭卜材│も│‐ ■bp = (struct bpf_hdr ホ) ((char *) bp + bp― 〉bh_hdrlen + bp―〉bh=caplen); ‐‐ l bp = (Struct bpf_hdr *)BPF_WORDALICN((int) bp); . ■ ' │ /*パケットダンプの時刻をセット*/ memopy(&tv. &(bp―〉bh_tstamp), sizeof tv): 夕♀C:││:撃 離:癸りT舌ダ峯世糸λうソを培電I*/ 「 p = ,0 = (char *) bp + bp― 〉bh_hdrlen; len = bp― 〉bh_caplen: #ifdef DEBUG /*BPFヘ ッダ構造の値を表示 */ printf(″ bpf_le■ =%d,″ , bpf_len): ::││:││:│:│!ilililii″ , :::::│:。 ::│:l;i; #endif /*次のwh‖ eループのための処理 */ . bpf_len ―= BPF_WORDALICN(bp― 〉bh_hdrlbn + bp― 〉bh_cap10n): : #else /*Linux S00K_PACKETか らの入力 */ if((len=read“ ,buff,脚SIZD)〈 0{ ― │ perror(″ read″); 九l奪;IfサじIL刻 をセットツ ー ■gettimeofday(&tv, (struct timezone *) 0); ‐│ │ : 夕1° :1吉:撃:3[災 り151:第峯世糸7ずTを1よ り11/ .p = pO = buff: #endif ‐ │ ‐│‐ 1 11 ‐ 1 11 1‐ /* *パケット解析ルーチン */ disp=OFF: /*画 面に出力するかどうかフラグ */ : ‐ /*Ethernetヘ ッダ構造体の設定 */ :ttts縄::ICts:ll:It:i::霊〕d:あ : ■・ ■ if(ntohs(eth― 〉ether_type)==ETHERTYPE_ARP)I arp = (struct ether_arp *) p: if (opt[ARP] == ON && FILTER_ARP(arp)) l :::tSi::∫ ││:hifel,_::ther― type) == ETHERTYPE_IP) , += ((int) (lp―〉ip=hl) 〈く2): if (lFILTER_IP(ip)) continuei if (opt[:P]== ON && opt[TCP] != ON && opt[UDP] プらトコノと '^ 准象 ヘ I= 0‖ && opt[I囲 あ 4
  • 6. 399 40111 402 415 437 i pdulnp(コ ピー).C Page o 3911 */ 3021chhr■ llac」toa(u_char*d) 翻轟eim脚_HACS■_59 :甜 1胆:lム :了 ♂器ボ ざモit‖ XたMcsTR]: /*文 字列に変換 したMACア ドレスを保存 */ 3961 ______″ ″^^″^^‐ “^A― ・″An… 、い0¨・い0_″ :::I Snprintf(:lli,り :1キI,C:I】i,″‖::II%::li10:I:l':X il102x l%02x 4001 return stri 器:1/1 void print_ethernet(struct etheLheader*eth)i 1駆 │:お 雙能 Ethernetヘ ッダ0表示 螢遇1 131き :lrutt ether_heater*eth: Ethernet´ ヽッタFl韓 運三1本 ^ヽ くつJく インタ 1♀ :│:戻 り壊し 劇:│ぼd printetherntttstruct ether■ e“er tttD 11111 int type = ntohs(eth― 〉ether_type): /* Ethernet`'・ イプ */ 翻 rp舟 鮮占墨翼湿3 Ethemtt Fram`鶏 つ; 綱:ld:Lnゴ 像樋mtt Framざ 称つ; 1:♀ l printf(1+― ――――――――――――――――――――――――すこラ II 「「 ― 「「1- 「 ″ 1::│::IIIIに1-53:ITF:[lEI111う I五 五 'こ こ:T::l:l;、 _Li_」 L_il.″ :::│ ::li:li:l_:lilililll:11」 :L_里里1=112:│::::≧ 11191=J1211と と1_____″ 1:;│::11:│こ│― 冨17:こ 画 藤 ;:II11 :::::::l:、 ^二 __.、 、・・ ″ 4281 :│キ 1:li::_lilili_111211il:li12=11211211二 ≧11121=:1211と と:_二 三二_″ 1561 r'… …`″十一― 「=「 ‐‐ ‐一 ‐■―・FYn″ ): 機l rp絆 鮮占I翼乙こう│… pF予 ムモ子ピ│こ こiLthi %5ul¥n″ ,typ● : 4331 eise 4341 ::iilltf`11_1lL呈 1121_1こ 221____2益121準 │¥,i' type); 4361〕 鴛創奪v“ d「 htF“ 帥鵬t ether_arp粕 げ 霧別 :機 能 AR「 パケ ツ トの表示 競:│ :弓 1言 :な lruct ethё r_arp*arp: ARPパ ケ ッ ト囀専造クトヘのポインタ 麟91ぶd ri雌印 “ 廿戯ether」ゅ轟ふ 競:II static char*arp_op_ntte□ ={ 競創:戻 り壕し 4501 ″Ondefine″ 1`II ″そ瀬う :良 じこubpl)″, 凝露F籠21詰争矢τL写ぜTeり ]) 1::l if.pく O H ttPpP_MAXく o" ::l1 2[:11:s::1212221i_全 11111と 1________+― ―――――――――――――――――――――――一+¥n″): 46:│ :l11:│(二 1 lIF3 77:こ 1 瓦II玩二TT:T「i7:11:IT15反 罵511玩151T軍罵7: l::│ li:│:i:::2,を ::再:::L:15':'IF=IRPII17::I:ll::li:│::lilキ liillll: お二l r‐ ` ntohs(arp■ 〉pa_hdl・ ar_hrd). 1::l printf(∫ 1121ill12:i31軍 11111lIE二2生三軍三上EEEllttEIIEll_1111_1_lIII¥iレ ,:′ : Ether)″
  • 7. ipdump(コ ピー).C Page 7 :│││:││:│:!:::ill:l:::!!lllillliliI:::::II::lililllllillili:Thdr.ar_。 p), :│││::│:1_::::::_!!lil!1::lil,=里 121上 121≧112=E12≧1二 =_._=__― ; ″ +― ――――――――――――――――――――――――+¥n″): printf(″ I Source IP Address: %15si¥n″ , inet_ntoa(*(struct in_addr *) 3arp― 〉arp_spa)); printf(″ +― ――――――――――――――――――――――――――― ・ ″ +― ――――――――――一―――――――――――――+¥n″): printf(II Destinatl♀ :│!19,All:露::a(arp_〉arp_tha)); printf(#│二 三二I三二三二III三二三二II三二二三二II二軍7言 ラ テT 「 printf(″ I Destination IP Addressi %15sl¥n″ inet_ntoa(*(struct in_addr *) &arp― 〉arp_tpa)); l printf(″ +―――――――――――――――― print_ip(struct ip *ip); * IPヘ ッダの表示 *引 き数 * struct ip*ip: IPヘ ッダ構造体へのポインタ *戻 り値 * なし */ 1° │││││││:FI:1:::litil!11と :lTl_1薦 T:::::I:::ス :モ F::11:IT薫 ::::::i:│:11); ip―〉ip_v, ip―〉ip_hi, ip_tt :「 11:;(Ii TII再 lTTT:FT+ 13二 i FF:%3sl FO: %5ul¥n″ , ntohs(ip―〉ip_id), ip_ftoa(ntchs(lp― 〉ip=off)), ::11:│(l1211::21≧ 11:lif:7111=2E菫 ili::::::::::::::::::I::::lil:│:・ ‐ ::111:{li:::li::lil:::i:::liliiil_1と _&(ip― 〉ipll':│;,;'__二 ___+¥ni); ::11::│'1 5111TIIII:ス TF ス II「ここy lt15sl¥n″ , inet_ntoa(*(struct in_addl_1と _11lEI≧ l呈 =J211≧ 1_1_____+¥n″ ); l printf(″ +― ――――――――――――――――――――――― /* * char *ip_ftoa(int flag); *機能 * IPヘ ッダのフラグメン トビッ トを文字列に変換 * static変 数を使用 しているため、非リエン トラン ト関数 *引 き数 * int flag; フラグメン トフィール ドの値 ‐ *戻 り値 * char* 変換された文字列 */ char *ip_ftca(int flag) { __ _ _ I£1織lCIIF鵬 凸臥x(11】 :も f:'シ sI:Lf f1057グ メント,フ ラグを琴す文字 static char str[lLFLG MAX+1]: /*戻 り値を格納するバッファ ・static char str[ ld 能 vo 機 * * * 4ソ 9` イ , 寿勢多イオtl ろiiⅢ :‐ 4教 乏ふtt、 ヽら static char strHP_FLG_MAX+1]: /*戻 り値を格納するバッファ unsigned int mask = Ox8000; ク 形登多変int i: / ′   / / / *     * * *unsi for(1=0: if (((flag str[i]= e:se str[i]= l str[i]= '¥0' i〈 IP_FLG_mAX;i+十 )I く〈i) & mask) != 0) f[i]: '0':
  • 8. i pdullp(コ ピー).c Page 8 return str: ‐・ ‐■・ , │ │ ‐││ ‐│ . │ 1 1■ 1 1 /* * char ホip_ttoa(int flag); *機能 ‐ ‐・ ・ 11■ ■ │ * IPヘ ッダのTOSフ ィール ドを文字列に変換 * static変 数を使用 しているため、非 リエン トラン ト関数 *引 き数 * int flag; 10Sフ ィール ドの値 ‐ 「 ■ ■・ *戻 り値 * char* 変換された文字列 */ ‐ lhar*ip― ttoa(int flag) . ― ‐ 1 static int ´f[]= 〔'1', '1', '1', 'D', 'T', 'R', 'C', 'X'I: /*TOSフ ィール ドを表す文字 聯胎胸脚e悛 常犠亀‐れ1' Чfl鮒ぜ千iil!沸 薔:ぶ +iL I) eise l Str[i]='α : str[i]= '¥0'; return str: l /* 1 lltt print_icmp(struct i,Tp*1'mp)1 ‐_‐ ‐│ * iCMPヘ ッダ・データの表示 *引 き数 *戻 り稽 ruct iCmp*icmp; ICMPヘ ッダ構造体 ‐■ ■ : 11.● : * なし . */ 1° id printi呻 “ truct i呻 ザm ‐‐・ ― 7 8 9 0 1 2 3 4 5 6 7 8 59 60 6︲ 62 63 64 65 66 67 68 69 70 7︲ 72 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 98 99 ∞ 01 02 03 餌 05 06 07 08 09 ︲0 ■ 2 3 4 5 6 7 8 9 0 1 2 3 4 4 4 4 5 5 5 5 5 5 5 5 5 5                                   , 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 ハ                                   ー ー ー ー ー ー ー ー ー 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 /   / / / *     * * * St'::1。 ° 1::│;ち羊 pe_name[] = { ″ Undefine ,″ Undefine ,″ Destination unreachable″ , ″ Source Ouench″ , ″ Redirect (change route)″ , ″ undefine ,″ Undefine , #[:::fi::ツ iSt″ ' “ Undefine ,″ Time Exceeded″ , ″ Parameter Problem″ , :│││:ii:││:│:│!:il::″ , ″ Address Mask Request″ , ;1111::R″MaSk Reply″ , ‐‐ l; #define lcHP_TYPE_‖ AX (sizoof int type = icmp― 〉icmp_type; /* Type o ■/ ‐. 1 . : /* Type l */ /* Type 2 */ /* Type 3 */ . ‐ ′: :サ:: : :′ /* Type 6 */ ′│ │::: : i′ /* Type 10 */ /* Type ll */ /* Type 12 */ /* Type 13 */ /* Type 14 */ ′ユI予 :: │: 1′ /* Type 17 */ /* Type 18 */ ′:I`l:おち7手を表す長拳列:/ り撃1鵬 4り鷺,f typ■ name[o]) 脚 翼著銀 景臨 I膜│″ Fぶ二a鵬 腱″.; ・ ‐ ::11:;{#│ T,5:T 153i 3553T 1511 5吾 :IIIIttT ― ――-13こ i軍 古γl″ ); printfル 響I≧ 1型E・ttIB♀二19聖I≧ l聖軍22111_112'E`l聖 :≧ l聖 =:L:絆 ;:
  • 9. ipdump(コ ピー).c Page 9 *) if * ホ * * 1   / 6 2 5 6 2 6 6 2 7 6 2 8 6 2 9 6 3 0 6 3 ︲ 6 3 2 6 3 8 6 3 4 6 3 5 6 3 6 6 3 7 6 3 8 6 3 9 卸 6 4 ︲ 6 4 2 6 4 8 6 4 4 6 4 5 6 4 6 6 4 7 6 4 8 6 4 9 6 5 0 6 5 ︲ 6 5 2 6 5 3 6 5 4 6 5 5 6 5 6 6 5 7 6 5 8 6 5 9 6 6 0 6 6 ︲ 6 6 2 6 6 3 6 6 4 6 6 5 6 6 6 6 6 7 6 6 8 6 6 9 6 7 0 6 7 ︲ 6 7 2 6 7 3 6 7 4 6 7 5 6 7 6 6 7 7 6 7 8 6 7 9 6 8 0 6 8 ︲ 6 8 2 6 8 3 6 8 4 6 8 5 6 8 6 6 8 7 6 8 8 6 8 9 6 9 0 6 9 ︲ 6 9 2 6 9 3 6 9 4 6 9 5 6 9 6 6 9 7 6 9 8 6 9 9 畑 7 0 ︲ 7 0 2 1響RIキ 富腎:首::i百。:tl:nlΨ =彎 :躍鷺:::n::l鷹 eFi■ %5u・ l¥洵 ` ::ilifll:│:::1権 :縫 E::=1‐ } :│,iti(lin:│」 R:::│。ng) tohs(icmp― 〉icmp二 id)t ntohs(iCmp― 〉icmp_seq)): ――T■ =+¥nr); e:le if (icmp― 〉icmp二 ifp∫ IRI早マ )lC':三 :?db F'° %ttl Neit MIり : l15ul¥n″ , ・ ‐ ntOhs(icmp― 〉icmp_pmvoid)i_ュ 121i`19聖EI≧12型2三12至上里1翌ととi:幸1')iprintf(″ +― ――――――――――――■ =― ‐――――――‐ %101ul¥n“ : ntohl(icmp― 〉iOlnp_vo:0); l printf liet_ntoa(*(struct in_addr cllp― 〉icmp_type=5)〔 Router IP Addressi “ c呻→I:[出:む “ D; :lliti〔 ″li貫::1を │:Tll l :I::tif:tT:品 F二 'T:話 FII,Fこ ニ ニ TTテ 1 ――――――――――――‐―+¥n″); %101ul¥n″ ,printf(11 U,useci・ (lnsigned:ong)ntohi(iom堕 ≧聖里型21Jととi_____一―+¥n″):printf(″ +― ――――――――――――――――――――――― :│IIl亀ili:ilililiFiMl[,li:'言11‐FII‐ 111′ 群1継i齢‖(structtcphdri": _..‐ ■break; Ca:FillPI::,マ ::lict udphdr *) p); break: l │ /:濃 罷TI11し ::』L讐l::I[ti:1菫 重││:│:で 返送される部`)) ilittructtcphdr*tcpl TCPヘ ッダ構造体 * な し ぼd"htt卿m tstrtt tophdr社● "〔 printf(IPrOt0001: :「 11:;(F:1212221i_IgI111と 1――――――――――――――――――――――+― ―――――――――――――――――――――――=+¥n″ ) brintf(″ I Source Porti %5ul Destination Porti %5ul¥n″・ ‐ ntOhs(tcp→ th_sport)i ntonS(tOp― ntLdpOrt))「 printf(″ t― ――一―――――――――――――――――――――+―――――――――――‐―――― ::11:││`i二 :::i[III 雨 こ罵::7TL二 __.___+__L__「 __T= TT 175TET軍 F'「lln″ ) (lnsigned long) printf(″ +― ――――――――一――― ntohi(top― 〉th_Seq)); ―――――――――― ― ―――+¥n″) ユニ■1_+■_■ ■ =____Ll_________― ―――…+¥n″) * 〓 I l ,   / 4 1 void print_tcp(struct tcphdr *top): 機能 TcPヘ ッダの表示 : 引き 欝ruct tophir *tcp: TcPヘ ッダ構造体 *戻 り値 * な し 1:lli鷺 1冨:::::i言clttitt° pl brintf(″ t― ―――― ―――――――――――+¥n″) brintf(11。 ,:そ[::_;:il:pOrt), ‖::Isti::1,:li::。;:∫ ;: %5ul¥nr
  • 10. i pdulnp(コ ピー).c Page 10 *戻 り椙 t flag; TCPの コントロニルフラグ * char* 変換された文字列 */ ta真 ¶ 鷲 llf冒 :中 ≒ ● 写・ #define TCP_FLC_‖AX (sizeof f / sizeof f[0]) static char str[TCP二 FLC_‖AX + 1]: unsigned int mask = 1 くく(TCP_FLG_‖AX - 1); int i: for(i=0:iく TCP_FLC_MAX:i‐ ){ if(((flagくくi)&mask)l=0 str[i]=f[i]: eise str[│]= '0' ; ltr[│]=,YO': return str: l /* * vold print_udp(struct udphdr *udp); :「 ll:;(二 1 3:II:吾:: 1こ 罵:こ 「1 +― ――――-1-「 1 1「「「藉T3TこT軍 再'11半 n‐ ) :「 111:(:1里 i:il:IT:│::│こ │12111::::≧ lL=2:1と とil_こ =二 _=,15TIT軍 1'「 +Ynr) :;IRI:(111:::│:lTll:::テ │:││::│::i:llil:│と::IET― ―――瓦 ::T軍:ラ +¥n´, ::11[i(:iE:│:li::│:-12E=二 │,111嘉≧1奎±111壁 Ll_112Li`11壁 1奎::│!I)i printf(912Li`112:≧ 11=2望 里と1_112'Ell軍 PI≧11=翌二塁ことi二 ____._=_■ ■■_― +¥nr) l /* 1機能 *tCp―ftoa(int flag): ‐. *引 き裏 Pヘ ツダのコン トロールフラグを文字列に変換 / 4 ノ / ′ / * * * アフ ク ツ ス バ マ る す す 出 納 り 格 取 数 を を 変 値 グ プ リ ラ 一 戻 フ ル * * * / / ′ / 03 “ “ 06 07 08 ∞ ︲0 ︲1 12 ︲3 ︲4 ︲5 6 7 8 9 0 1 2 3 4 5 6 7 28 29 30 3︲ 32 33 34 35 36 37 38 39 “ 4︲ 42 43 4 45 46 47 48 49 50 5︲ 52 53 54 55 56 57 58 59 60 6︲ 62 63 64 65 66 7 8 9 0 1 2 3 4 5 6 7 8 9 0 ・ 1 1 1 1 4 1 2 , 彙 ∠ , 5 ‘ 2 9 1 ∠ 9                                                                                                           6 I Y 6 7 4 ′ 7 1 1 7 7 4 ′ 7 う 1 7 n v 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 'F'I;か TCPフ ラグを表す1文 字 :プ *機能 * UDPヘ ッダを表示 *引 き数 *戻 り値 uct udphdr*udp: UDPヘ ッダ構造体へのポインタ * なし */ ヽだD 前景色を青に */暉!墨:ボEll弾: brintf(″ Protocoli UDPヽ ::111:(II 3:こ 「:: F:IIi :│111:(:12::│::l:≧ 望L=呈22111L_112LE:│::i:│IF12211と と二=「 ,こ こT薫 スラ│¥nr): :;111:│::││:│::│;;IL型 11):L」 ::│』:::::│llil‖││:::「豪―:ラ … …………+¥n″); printf(″ Protocoli UDP¥n″ ): prinif`It-1-― ――1 7 ― ―一rr― ――十一―――――――=二 ■■‐‐ ―=― ‐―――・―・+¥n %5ul Destination Port: %5ul¥n″ l /* * void dump_packet(unsigned char *buff, int len): *機能 │ * Ethernetフ レーム先頭から16進 数ダンプ(ア スキー文字表示) *引 き数 1 ‖lli阜:1l Char*buffi 多じび事急蒸77毅 先頭アドレス *戻 り値 * なし */ ‐ rid dm― packet(ulnsiened char ttuff=int io?.:│ ジ竜ЙI、 Lt17:
  • 11. ipdump(コ ピー).c Page ll ヽ:1 ●■■ 1 111111lil ill: │■ 1111 i 4:, 11:│ ::
  • 12. ipdw (コ ピー).c Page 12 1「 018q 。_(_bC)彎 剛bq: :::l iち `1円 ││メ│::1181躙│も イ十L)く のI :::│]'pl:円:l∫::::iご 18:「18‖ 1為 イナLバ 切t ぃ餞交t― よキ`:ι :l ini ll:│ 8611 1oturn ‐1: 8621 1 l爾 二ヽす濯‖ゞ群;曹 V叫謂1鍛 863 l (0' =+ i :■ Ol 〉1 10 = i) lol l卜8【 ヽぼてくヽ離轟61・ ` │こ 8' 即時モー ド1/ }(‐ ti●31〉 i380Fキ │〉 i li tt)101 i38' =1: ´^、 r i(it]11● d.`101` )linilq l18::::│ ク=臀 Fモ ー ド1/ '`tな い ill,i17 1麗: 鍵,l it`1胃│が│::1‖ 測腱│‖‖::腋穫,″ ,│)く ゛I :(‐ `)11‖ 1ヽ q l l鍵 │:::│ ::器I寓 : 0091} iOi “ pl :_ __ ヽま疑豊毯藤灘①群Q書量 *、 li薔: 3711 return bpfd: :;:ILndif 餞 甲 郡 慮:韓 氏酔「 魯曜二『 1覇 警 :遇 1機llil._ _ , 14 )111111 1腱 : │( ■)1ま f!:ヽ ■ leel 鮒 │lil:距│:華 │││ :lii::│:│::卜lill:l:,:::│1鶴 輻 輝 t貯 :ll]鮨 鷺 iI:│ 1露│ _ 30iO IS08 8751v● id helptohar相 哺 87611 301「 i5FinT(:モ abrr,″ default:%s― p arp ip iolnp top udpVn″ ,omd): 88211endif 8831} ltOt ,omd): :(` .)1よ nil:i° │::: { │卜08 1303 1(` 11¥ )11■ 1lq 1008 _鵬 囃理雨L桐護:盤 :(3ヽ 131,」 4オ │「:1 9臓 s「 111■ 、slo,lQ(1 1loqo l,: ■18:8 爵欝 =│卜 1念 さtく ヤーtヽ 118 , こ18 叢 弯Iト ホ 1313 滲え― ■ヽやく 卜 :う 嬌sf:キ :ヽ 、金lo ■ 11:8 矢 卜で 、て、・ア、e構 内1電 傘lol121■ づ●鸞: ■ 1813 麟 ヤ露 =10:3 やヽ 警で人 トキこ 卜、ヽ ま,│ ,1038 ‐■│:,8 “ ェlol雄 1,1,oH3■1:■ 18鋤 1麟d´,oooま 弯ll:: li l轟 瞭墨轟食号 [I∫lill :、 :1彎:::│ギ ││││li ll:│ 13S8 1・ 、1ヽ 一■o、1ヽ 卜■てヽ ヽハ やR18ギ . e'3 1 (・・1 1卜 〉i ,0 ; 1) lol 1008 お '(お 1橘1161ゃ `‡ │‖ :qら 1彗 dll樹 I・│: │::: i130ヽ d 388 1 ‐卜88 1388 } (こ =く │) 11 1008 1(` ■Yl'311■ lo l),Is「 ,1lobli111鶴 ::t l::: l ieC8 ,鑓 `*宝難0矢 卜や 、て、,′ 、①輔内113■ │:事3 13118XA総・ 9112)静 蜃ヰ IS事 8 :(osi31彗 d* ‐│:」 (:綺 t話::::l111`I:押l:鷲:│キ:ボキ11:::l・ 1: │:ま : 1倫ud)lolloo 13卜 8 :「 ―Ftl」101 13)8 : │ヽ 卜8 i3卜 8 ` ・ 宝戴① き人一 =(贅 く 卜 *` leヽ8 鳩耐 r」鶴二鋳#隋lI鱗 熙IF欄:(lud)ヽ olloq 1838 :「 ―nlulol '卜 e3 1 1ee8 :(l●d,oms■ _1li.111 ` `IV′ ),r "nllゎtサ 111ギ ,1lobla)11■ 1lql l:認 1,キ k― チ3り ooool鍮nll■ 1 1888