You are on page 1of 16

BUFFER OVERFLOW

* 32bit & 64bit


vi nn tng khc nhau !" #$i %&%'() khc nhau*
* gii thiu s v kin trc my tnh.
!+ t,n #-ng ./i 0h1n %% !+ th2c thi cc tc v- %'ng %u3n ta 0hi hi+u c4u t(5c %) t6nh cch h'7t
!"ng c8a b" vi 9: .; nh<ng .=nh %$ b" vi 9: .; c> th+ th2c hi=n cch t(u)n .=nh ti b" vi 9: .;*
?h5ng ta @A 9&% 9Bt cc th$nh 0h1n c> .iCn Duan !En c4u t(5c %) t6nh %$ #2a t(Cn !> ch5ng ta hi+u
v$ khai thc !FGc ./i 0h1n %% c- th+ ch5ng ta @A 9&% 9Bt b" vi 9: .; H?IUJ cc thanh ghi H(&gi@t&(J
b" .=nh Hin@t(ucti'nJ cch !nh !Ka chL b" nh tu)n t6nh*
M h= cN @3O h= cN @3 thPng #-ng*
M Bng %Q RS? TTO
U) t6nh chL hi+u cc bit V & W nCn c1n c> W Du) !Knh chung v cch chu)+n !Xi gi<a %) t6nh v$
nguYn nh,0 chuZn bng %Q RS? TT .$ %"t t('ng nh<ng Du) !Knh !> bng %Q RS?TT nh 97 cc gi t(K
th,0 0h[n nh\ hNn W2] Ht^ VV !En _F t('ng h= th,0 .-c 0h[nJ th$nh nh<ng k; t2 ch< thPng thF`ng*
bng .i=t kC %"t @3 gi t(K 0hX thPng t('ng bng %Q RS?TT ch< R h'a c> %Q 4W a h= th,0 .-c 0h[n v$ a
thF`ng tFNng bng %Q th,0 .-c 0h[n .$ 6W ng'$i (a W @3 k; t2 !cc bi=t nhF k; t2 kEt th5c chu/i dUL c>
%Q th,0 .-c 0h[n .$ VV k; t2 9u3ng #eng c> %Q th,0 .uc 0h[n .$ VR k; t2 #`i c'n t(\ v !1u #eng c>
%Q th,0 .-c Vf k; t2 kh'ng t(gng c> %Q th,0 .-c 2V*
h ij% hi+u b" vi 9: .; H?IUJ
b" vi 9: .; !kc .=nh t^ b" nh v$ th2c hi=n cc .=nh n$) W cch .iCn t-c .=nh @g0 !FGc th2c thi !FGc
Du)Et !Knh bai c'n t(\ .=nh H.$ W thanh ghi c8a ?IU c> nhi=% v- .Fu t(< !Ka chL c8a .=nh kE tiE0 t(Cn
b" nhJ khi ?IU th2c thi 9'ng .=nh hi=n t7i ?IU @A th2c thi .=nh kE tiE0 t7i vK t(6 c'n t(\ .=nh chL ti*
H*JDu) Fc bi+u #iln
M V6 #- t('ng hjnh HaJ c'n t(\ .=nh c> !Ka chL W234m6_] chba 2 b)t& #< .i=u .$ 3W ?V nCn @au khi th2c
hi=n 9'ng .=nh n$) ?IU @A th2c hi=n .=nh thb 2 vi !Ka chL W234m6_] M 2 n W234m6_R*
i('ng b$i n$) ta Du) Fc nhF @auO
o gi t(K vpng nh !FGc bi+u #iln a #7ng th,0 .-c 0h[n
o P nh c> !Ka chL th40 hNn th&' t(i Dua 0hi th&' #Fi .Cn t(CnH vi bi+u #iln %P hjnh @tackJ
M t^ v6 #- c'n t(\ .=nh !+ ?IU th2c hi=n W tc v- n$' !> c1n th\a %Qn 2 !iu ki=nO
HWJ cc .=nh th2c thi 0hi !FGc !Fa v$' b" nh*
H2J c'n t(\ .=nh 0hi c> gi t(K .$ !Ka chL c8a vpng nh chba cc .=nh t(Cn*
i('ng 0h1n n$) ch5ng ta ! c,0 !En c'n t(\ .=nh v$ ch40 nh,n (qng c'n t(\ .=nh chba !Ka chL P nh
c8a .=nh kE tiE0 %$ ?IU @A th2c hi=n* V,) c'n t(\ .=nh th2c (a .$ gjr
s ?'n t(\ .=nh th,t (a .$ %"t t('ng @3 cc thanh ghi t('ng ?IU .$ %"t #7ng b" nh t3c !" ca' nq%
nga) bCn t('ng ?IU v$ thPng thF`ng c> !" #$i bqng vi !" #$i c8a c4u t(5c ?IU*
h ij% hi+u t(jnh biCn #KchO
t(jnh biCn #Kch th2c hi=n vi=c chu)+n !Xi ngPn ng< c40 ca' H? Ia@ca.***J @ang ngPn ng< %)* i('ng
0h1n n$) ta tj% hi+u v t(jnh biCn #Kch gcc* t3i vi b4t ku %"t h$% ? n$' t(jnh biCn #Kch @A t7' (a %"t
h$% c> 3 0h1n tFNng bngO
M fvn nh,0 H0('.'gJ .$ 0h1n !1u c8a %"t h$% c> nhi=% vu .Fu t(< thPng tin v vpng nh c8a h$% gki
Hca..&(J h'cc h$% !FGc gki Hca..&&J v$ c40 0ht b" nh ch' cc biEn c-c b" t(Fc khi th[n h$% !FGc
th2c thi*
M ih[n 0h1n ch6nh c8a h$% ba' gY% cc .=nh th2c thi c8a h$%*
M wEt th5c H&0i.'gJ .$ 0h1n cu3i c8a h$% c> nhi=% h8) b\ vpng nh !FGc c40 0ht a 0h1n #vn nh,0
!Yng th`i chu)+n .7i vpng nh c8a h$% gki*
* stack vs heap
x&a0 .$ vpng nh #png !+ c40 0ht ch' cc biEn tLnh h'cc cc vpng nh !FGc c40 0ht bqng
h$% %a..'cHJ *
Stack .$ vpng nh #png !+ .Fu cc tha% @3 v$ cc biEn c-c b" c8a h$%*
?c biEn t(Cn h&a0 !FGc c40 0ht t^ vpng nh th40 !En vpng nh ca'*
i(Cn @tack thj h'$n t'$n ngFGc .7i cc biEn !FGc c40 0ht t^ vpng nh ca' !En vpng nh th40*
Stack h'7t !"ng th&' ngu)Cn tgc yv$' @au (a t(FcyHLa@t Tn Fi(@t Out h LTFOJ* ?c gi t(K !FGc
!Z) v$' @tack @au cpng @A !FGc .4) (a kh\i @tack t(Fc tiCn*
* buffer overflo attack
h @tack buzz&( 'v&(z.'{O
ij% hi+u ./i thPng Dua c'#&O c> ci nhjn v ./i khi !kc c'#& !+ biEt nCn .$% gj !+ t,n #-ng ./i*
(1) Thay i bin gi tr ni b.
dguYn HWJ .$ v6 #- !1u tiCn c8a ch5ng ta* t+ biCn #Kch nh<ng v6 #- tFNng t2 ta @A #png
c5 0h0 .=nh gcc h' |tCn} |tCn*c} nhF t('ng hjnh ch-0 bCn #Fi*
t+ t,n #-ng ./i th$nh cPng ngF`i t,n #-ng ./i 0hi hi+u (~ chFNng t(jnh h'7t !"ng nhF
thE n$'* dguYn HWJ nh,n %"t chu/i t^ b" nh,0 chuZn H@t#inJ thPng Dua h$% g&t@* dEu gi t(K c8a
Drawing 1: Ngu n (1)
biEn n"i b" c''ki& .$ 0x41424344 thj @A in (a b" 9u4t chuZn H@t#'utJ #eng ch< 'u {in* BiEn
c''ki& !>ng vai t(e .$ %"t #< .i=u Duan t(kng t('ng Du t(jnh h'7t !"ng c8a chFNng t(jnh*
ihPng Dua vi=c hi+u cch h'7t !"ng c8a chFNng t(jnh ch5ng ta th4) (qng ch6nh bn th[n
chFNng t(jnh !Q chba %Q th2c hi=n tc v- %'ng %u3n Hin (a %$n hjnh #eng ch< 'u {inJ*
f' !> %"t t('ng nh<ng c'n !F`ng !+ !7t !FGc %-c tiCu 4) .$ gn gi t(K c8a c''ki& bqng vi
gi t(K 0x41424344* V4n ! gi` ![) t(a th$nh .$% @a' !+ t,n #-ng ./i a h$% g&t@ !+ gn gi t(K
c8a c''ki& .$ 0x41424344*
x$% g&t@ th2c hi=n vi=c nh,n %"t chu/i t^ b" nh,0 chuZn v$ !Fa v$' b" !=%* w; t2 kEt
th5c chu/i H%Q RS?TT VVJ cng !FGc h$% g&t@ t2 !"ng thC% v$' cu3i* x$% n$) khPng ki+% t(a
k6ch thFc vpng nh #png !+ chba #< .i=u nh,0 ch' nCn @A 9) (a t($n b" !=% nEu nhF #< .i=u
nh,0 #$i hNn k6ch thFc c8a b" !=%*
Vpng nh !FGc t(u)n v$' h$% g&t@ !+ chba #< .i=u nh,0 .$ biEn n"i b" buz* i(Cn b"
nh c4u t(5c c8a cc biEn n"i b" c8a h$% %ain !FGc 9c !Knh nhF t('ng xjnh 3*2* Vj biEn
c''ki& !FGc khai b' t(Fc nCn biEn c''ki& @A !FGc 0h[n 0ht b" nh t('ng ngn 9E0 t(Fc
cng !Yng ngha vi vi=c biEn c''ki& nq% a !Ka chL ca' hNn biEn buz v$ #' !> nq% 0h6a @au
buz t('ng b" nh*
xjnh 3*2
t+ c''ki& c> gi t(K 0x41424344 thj cc P nh c8a biEn c''ki& 0hi c> gi t(K .1n .FGt .$
44 43 42 4W* xjnh 3*3 %inh hka t(7ng thi b" nh c1n !7t ti !+ #eng ch< 'u {in !FGc in
(a %$n hjnh*
xjnh 3*3O t(7ng thi c1n !7t ti
dhF v,) #< .i=u %$ ch5ng ta c1n nh,0 v$' chFNng t(jnh .$ W6 k; t2 b4t ku !+ .40 !1)
biEn buz th&' @au bai 4 k; t2 c> %Q RS?TT .1n .FGt .$ 44 43 42 v$ 4W* B3n k; t2 n$) ch6nh .$
f ? B v$ R th&'* xjnh ch-0 @au .$ kEt Du khi ta nh,0 v$' W6 k; t2 a v$ DCBA*
?h5ng ta !Q t,n #-ng th$nh cPng ./i t($n b" !=% c8a chFNng t(jnh !+ ghi ! %"t biEn
n"i b" Duan t(kng* f< .i=u !FGc nh,0 v$' chFNng t(jnh th&' nhiu cch @A !FGc t(jnh b$) a
0h1n @au*
(2) Truyn d liu vo h!"ng tr#nh.
dguYn H2J (4t g1n vi v6 #- t(Fc* ti+% khc bi=t #u) nh4t gi<a hai chFNng t(jnh .$ gi
t(K @' @nh 0x01020305*
dguYn H2J
ia #l #$ng nh,n (a #< .i=u !+ t,n #-ng ./i ba' gY% W6 k; t2 b4t ku !+ .40 !1) biEn buz
v$ 4 k; t2 c> %Q RS?TT .1n .FGt .$ m 3 2 v$ W* iu) nhiCn cc k; t2 n$) .$ nh<ng k; t2 khPng
in !FGc khPng c> t(Cn b$n 0h6% nCn cch nh,0 #< .i=u t^ bn 0h6% @A khPng #png !FGc H9&%
bng #FiJ*
Vj chFNng t(jnh !kc t^ b" nh,0 chuZn nCn ch5ng ta c> th+ #png nh<ng cch @au !+
t(u)n #< .i=u Dua b" nh,0 chuZnO
!huy"n h#ng H(&#i(&cti'nJ B" nh,0 chuZn c> th+ !FGc chu)+n hFng t^ b$n 0h6% Dua
%"t t,0 tin thPng Dua k; t2 | nhF t('ng c[u .=nh .$%ta&1 ' in(ut* whi th2c hi=n c[u .=nh n$)
n"i #ung c8a t,0 tin in0ut @A !FGc #png tha) ch' b" nh,0 chuZn* Uki tc v- !kc t^ b" nh,0
chuZn @A !kc t^ t,0 tin n$)*
$ng H0i0&J .$ %"t cch t(a' !Xi thPng tin .iCn tiEn t(jnh Hint&(0('c&@@ c'%h %unicati'n
TI?J t('ng !> %"t chFNng t(jnh g:i #< .i=u ch' %"t chFNng t(jnh khc* B" nh,0 chuZn c> th+
!FGc chu)+n hFng !+ t(a th$nh !1u nh,n c8a 3ng nhF t('ng c[u .=nh .$%)nd)r * .$r))iv)r*
?hFNng t(jnh 0h6a t(Fc k; t2 chFNng t(jnh g:i #< .i=u b" 9u4t chuZn c8a chFNng t(jnh n$) @A
g:i #< .i=u v$' 3ng tha) vj g:i (a %$n hjnh chFNng t(jnh 0h6a @au k; t2 .$ chFNng t(jnh nh,n
#< .i=u b" nh,0 chuZn c8a chFNng t(jnh n$) @A !kc #< .i=u t^ 3ng tha) vj b$n 0h6%*
(+) Thay i lu,ng th- thi.
dguYn H3J
ti+% khc bi=t t('ng v6 #- n$) .$ gi t(K biEn c''ki& !FGc ki+% t(a .$ V9VVVfVRVV* Vi gi t(K VR
t('ng bng %Q tFNng !FNng vi k; t2 #eng %i HkEt th5c chu/iJ* dCn gi< .i=u nh,0 v$' @A bK nggt t7i
!>* x$% g&t@HJ !kc %"t #eng t^ b" nh,0 chuZn v$' b" !=% !FGc t(\ !En bai @ ch' !En khi gc0 0hi
%"t k; t2 #eng %i h'cc EOF v$ cc k; t2 n$) !FGc tha) bqng V* f' !> t(7ng thi ngn 9E0 c8a
h$% %ain @A nhF @auO
dhF hjnh t(Cn t(u)n #< .i=u v$' chFNng t(jnh th&' cch c @A khPng h'7t !"ng* f' !> ta @A @: #-ng
0hFNng n khc*
H*J 0hFNng n c* H**J 0hFNng n %i*
Vj khPng th+ (A v$' nhnh bqng nCn chFNng t(jnh c8a ch5ng ta @A .uPn !i th&' nhnh khPng v$ @A
!i ti 0h1n kEt th5c c8a h$% %ain* Ih1n kEt th5c c8a %"t h$% gn c'n t(\ .=nh vi gi t(K !Q .Fu t(Cn
ngn 9E0 !+ t(a v h$% gki n>* ihPng thF`ng 0h1n kEt th5c c8a %ain @A Dua) t(a v b" n70 c8a h=
!iu h$nh nhF !FGc %inh hka* i('ng t(F`ng hG0 !cc bi=t khc 0h1n kEt th5c c> th+ Dua) v %"t !Ka
!i+% b4t ku* V$ @A th,t tu)=t v`i nEu !Ka !i+% n$) .$ nhnh bqng nhF t('ng hjnh t(Cn* Eu t3 Du)Et
!Knh !Ka !i+% %$ 0h1n kEt th5c Dua) .7i ch6nh .$ !Ka chL t(a v !FGc .Fu t(Cn ngn 9E0*dhF v,) ta !Q
9c !Knh !FGc hFng !i %i t('ng vi=c t,n #-ng ./i c8a nguYn H3J* V4n ! cen .7i .$ tj% (a !Ka chL c8a
nhnh bqng*
M ia @A @: #-ng cPng c- #&bug !+ tj% (a nhnh bqng* ![) ta @A @: #-ng cPng c- fBO
ia @A @: #-ng .=nh g#b |c'%%an#} @au !> a #4u nhgc .=nh Hg#bJ ta #png .=nh #i@a@@&%b.& %ain !+
9&% chi tiEt !Ka chL cc .=nh v$ .`i gki h$% t('ng %ain* t+ th't chFNng t(jnh fB ta g~ .=nh Duit
Hh'cc DJ*
hjnh t(Cn c"t !1u tiCn .$ !Ka chL %$ #eng .=nh tFNng !FNng @A !FGc ti v$' b" nh khi th2c thi* ?"t
thb 2 .$ kh'ng cch tFNng !3i @' vi #eng .=nh !1u tiCn c8a %ain c"t thb 3 .$ cc .=nh hG0 ng<*
Vi v6 #- ta b$n a nguYn 3 #' biEn c''ki& !FGc ki+% t(a vi gi t(K VVVfVRVV gi t(K n$) khPng th+
nh,0 v$' t^ b" nh,0 chuZn cng nhF khPng th+ t(u)n gi t(K v$' nhF 2 cch b$n t(Fc !>* f' !>
thPng Dua cPng c- #&bug fB ta tj% (a !Ka chL t( v c8a h$% iz !+ tj% (a nhnh bqng @au !> ta #png
.=nh !+ gki c[u .=nh ta %'ng %u3n thPng Dua !Ka chL t( v @au khi h$% th2c hi=n 9'ng*
ia !+ ; hjnh bCn t(Cn a c"t thb 3 g1n cu3i c> #eng ch< %ne s ![) ch6nh .$ !Ka chL nh) c8a c[u !iu
ki=n iz ta @A gki !Ka chL n$) bqng c[u .=nh t(u)n gi t(K v$' nhF a v6 #- 2* ?h5ng ta !Q 9c !Knh !FGc
!Ka chL %$ ch5ng ta %u3n 0h1n kEt th5c Dua) t(a v* tKa chL n$) 0hi !FGc !ct v$' !5ng P ngn 9E0
nhF %inh h'7t t('ng xjnh 3*_*
. . .
51 84 04 08
EBP c
cookie
buf
buf
buf
buf
. . .
i(7ng thi c1n !7t !FGc*
t+ !7t !FGc t(7ng thi n$) chu/i nh,0 v$' 0hi !8 #$i !+ .40 !1) biEn buz Hc1n W6 b)t&J t($n
Dua biEn c''ki& Hc1n 4 b)t&J vFGt c P ngn 9E0 chba gi t(K EBI c Hc1n 4 b)t&J t(jnh biCn #Kch ??
Hc1n ] b)t&J v$ b3n k; t2 cu3i cpng 0hi c> %Q RS?TT .1n .FGt .$ mW ]4 V4 v$ V] H!Ka chL gki !En .=nh
th2c hi=n t('ng h$% iz h nhnh bqngJ* Ua) %gn ch' ch5ng ta .$ t('ng b3n k; t2 n$) khPng c> k; t2
#eng %i* dhF v,) ta @A c1n 32 k; t2 !+ .40 ch/ t(3ng v$ 4 k; t2 cu3i nhF !Q !Knh*
dhF v,) .=nh th2c hi=n c8a ta nhF @auO
IhFNng 0h0 t,n #-ng ./i ch5ng ta v^a 9&% 9Bt Dua !FGc gki .$ k thu,t Dua) v 0h[n vpng
.text H(&tu(n t' *t&9tJ* U"t t,0 tin th2c thi th&' !Knh #7ng ELF c> nhiu 0h[n vpng* Ih[n vpng *t&9t .$
0h[n vpng chba t4t c cc %Q .=nh !Q !FGc t(jnh biCn #Kch t7' (a v$ @A !FGc b" vi 9: .; th2c thi* w
thu,t n$) kh Duan t(kng vj !Pi khi %Q .=nh %$ ch5ng ta c1n th2c thi !Q c> @n t('ng chFNng t(jnh nCn
ch5ng ta chL c1n tj% (a !Ka chL cc %Q .=nh !> .$ !Q c> th+ th2c hi=n th$nh cPng vi=c t,n #-ng ./i nhF
t('ng v6 #- b$n !En a ![)*
s ihPng Dua W @3 v6 #- !Q tj% hi+u !+ chn c'#& %u3n th2c thi !+ khai thc ./i buzz&( 'v&(z.'{ ta
c1n 9c !Knh cc v4n ! @auO
o c !Knh ch6nh 9c !Ka chL c1n khai thc t(Cn @tack
o 9c !Knh !FGc k6ch thFc @tack
o i7' (&tu(n 0'int&( Hghi !J chL !En c'#& c1n th2c thi
h z'(%at @t(ing 0('b.&%O
i($n b" !=% chu/i !Knh #7ng HthF`ng !FGc gki .$ ./ hXng !Knh #7ng chu/iJ .$ ./i t($n b" !=% a %bc
chu)Cn %Pn ca' tc h7i tFNng t2 nhF cc cu"c t4n cPng t($n b" !=% khc* V cN bn ./ hXng !Knh
#7ng chu/i t,n #-ng .Gi thE c8a cc ki+u #< .i=u h/n hG0 v$ ki+% @'t thPng tin t('ng chbc nng nh4t
!Knh* w t4n cPng c> th+ th2c thi %Q h'cc g[) (a ./i 0h[n kh5c t('ng bng #-ng !ang ch7) c> th+ .$%
nh hFang ti an ninh @2 Xn !Knh c8a h= th3ng*
U"t @3 th$nh 0h1n c1n biEtO
M F'(%at zuncti'nO .$ %"t chbc nng chu)+n !Xi RdST ? nhF 0(intz ha) z0(intz*** !+ chu)+n !Xi W biEn
ngu)Cn th8) c8a ngPn ng< .,0 t(jnh th$nh W chu/i !7i #i=n c'n ngF`i c> th+ !kc !FGc*
M F'(%at St(ingO .$ W !3i @3 c8a F'(%at Functi'n t('ng !> c> vn bn v$ !Knh #7ng cc thPng @3 nhF
0(intzH?c c'n @3 k; hi=u .$O # n W2J
M F'(%at St(ing Ia(a%&t&(O nhF 9 @ 9c !Knh .'7i chu)+n !Xi F'(%at Functi'n Hchbc nng !Knh
#7ngJ*
Text 1: Format Fucntion
V6 #- @au ![) ch' th4) .$% thE n$' cc bng #-ng c> th+ h'7t !"ng khi cc chbc nng !Knh #7ng khPng
nh,n !FGc 0hFNng 0h0 c1n thiEt !+ 9c nh,n !1u v$' c8a chu/i !Knh #7ng*
Bt !'7n %Q @auO
Text 2: Cc i s th ng dng trong t n cng Format tring
Sau ![) .$ kEt Du khi nh,0 chu/i bjnh thF`ngO
V$ kEt Du khi nh,0 chu/i khPng hG0 .=O
dhF kEt Du t(Cn ta th4) khi nh,0 chu/i khPng hG0 .= v$' chFNng t(jnh tha) vj in (a chu/i ngF`i #png
nh,0 n> @A in (a gi t(K b" nh khPng %'ng %u3n k t4n cPng c> th+ .Gi #-ng !iu n$) !+ khai thc ./
hXng 0h1n %%*
h x&a0 'v&(z.'{O
x&a0 .$ %"t khu v2c c8a b" nh !FGc @: #-ng bai %"t bng #-ng v$ !FGc c40 0ht !"ng t7i th`i gian
ch7) c8a cc h$% chng h7n nhF %a..'c HJ*
?c biEn tnh !FGc .Fu t(Cn @tack cpng vi #< .i=u !FGc gia' @: #-ng gia' #i=n %a..'c*
x&a0 .Fu t(< t4t c cc t(F`ng h'cc thu"c t6nh h$% t7' v$ 0hFNng thbc c8a W .0 h'cc W !3i tFGng*
&hai thc l'i tr(n b) *m tr+n heap
h U"t hi=n tF`ng t($n b" !=% 9) (a t('ng khu v2c #< .i=u h&a0 !FGc gki .$ hi=n tFGng t($n h&a0 v$
c> th+ khai thc !FGc bqng cc k thu,t khc vi cc ./i t($n @tack*
h B" nh h&a0 !FGc c40 0ht !"ng bai cc bng #-ng t7i th`i gian ch7) v$ thF`ng chba #< .i=u c8a
chFNng t(jnh*
h Vi=c khai thc !FGc th2c hi=n bqng cch 0h #< .i=u n$) th&' cc cch !cc bi=t !+ .$% ch' bng #-ng
ghi ! .Cn cc c4u t(5c #< .i=u n"i b" chng h7n cc c'n t(\ c8a #anh @ch .iCn kEt*
ia 9Bt v6 #- @auO
wEt Du @au khi t ch7) chFNng t(jnhO
dhF ta th4) kEt Du t(Cn hjnh v$ @' @nh vi !'7n %Q a t(Cn biEn buz !FGc khai b' !"ng vi h$%
%a..'c #' nh,0 vFGt Du gii h7n c40 0ht c8a biEn buz nCn @3 k; t2 #F @A ghi ! .Cn biEn t&%0 !i+%
khc bi=t .$ gi t(K nh,0 v$' gi< ngu)Cn a biEn buz v$ k; t2 #F @A @a' chB0 .Cn biEn t&%0*
* dgn chcn t4n cPng B'FO
M @: #-ng cc .'7i ngPn ng< an t'$n Hava***J
M S: #-ng cc thF vi=n an t'$n*
M ?h3ng t($n b" !=% t(Cn @tack
M B' v= khPng gian th2c thi*
M tnh #4u ngn 9E0 nhF khPng !FGc th2c hi=n !ct vK t(6 ngn 9E0 ngvu nhiCn
M Ih[n t6ch %Q nguYn tnh
M tct ngvu nhiCn vK t(6 c8a h$% t('ng .ibc
M ih2c hi=n ki+% t(a th`i gian th2c
M dgvu nhiCn h>a @N !Y khPng gian !Ka chL
* Bi=n 0h0 !3i 0h> t($n b" !=% khi .,0 t(jnh*
ihiEt kE chFNng t(jnh vi t(kng t[% b' %,t hh} vP hi=u h>a vi=c th2c thi ngn 9E0
wi+% t(a v$ @:a %Q !+ tj% ./ihh} ngn chcn @: #-ng cc h$% ngu) hi+%Og&t@ @t(c0)***
&% 9Bt vi=c @: #-ng cc t(jnh biCn #Kch an t'$n nhF Stackua(#hh}ngn chcn !Ka chL t( v bK ghi
!*
c nh,n cc tha% @3 v$ gi% @3 .FGng c8a cc %Q ch7) vi !cc Du)n (''thh}ngn ng^a t4t c cc
thPng tin nh7) c% khPng bK ghi !*
* L,0 t(jnh cc bi=n 0h0 !3i 0h>*
xQ) tha) !Xi bn th[n ngPn ng< ? a c40 !" ngPn ng< !+ gi% ngu) cN t($n b" !=%
S: #-ng 0h[n t6ch %Q nguYn tnh h'cc !"ng a c40 !" %Q nguYn !+ ki+% t(a %Q c8a cc v4n ! t($n b"
!=%
iha) !Xi cc t(jnh biCn #Kch a c40 !" biCn #Kch !+ gii h7n ki+% t(a h'cc b' v= cc !Ka chL t^ thanh
ghi !
iha) !Xi cc Du) tgc a c40 !" h= !iu h$nh !+ cc t(ang b" nh !FGc 0hB0 chba cc @3 .i=u th2c thi
xQ) @: #-ng cc thF vi=n an t'$n
xQ) @: #-ng cc cPng c- c> th+ 0ht hi=n ./ hXng t($n b" !=%

You might also like