-
๐STUDY/๐๋คํ (dafit.me)
[DF913] 02. ๋ช ๋ น ์ธ์๋ก ์ซ์์ ์ดํฉ ๊ตฌํ๊ธฐ
2020. 2. 10.
02. ๋ช ๋ น ์ธ์๋ก ์ซ์์ ์ดํฉ ๊ตฌํ๊ธฐ
์ฒ์์ ๋ณด๊ณ add_all ํจ์๋ ๋ง๋ค๊ธฐ ์ฝ๋ค...๋ผ๊ณ ์๊ฐํ๋ค๊ฐ (๋จ, ~~)์ ๋ณด๊ณ ์ด์ง ๋นํฉํ๋ ๋ฌธ์ ๋ค.
๋์๋ฆฌ์์ ์์คํ ํดํน ์คํฐ๋๋ฅผ ๋ค์ ๋ exploit์ ๋ฐฐ์ฐ๋ฉด์ gdb์์ python ์คํํ๋ ๋ฒ์ ๊ฐ์ด ๋ฐฐ์์ ๊ทธ๋๋ง ๊ธ๋ฐฉ
'add_all.py โc 1 2 3'์ด๋ฐ ์คํ ๋ฐฉ์์ ์ดํดํ ์ ์์๋ค. ์ด๋์ ๋์ถฉ ๊ณต๋ถํ๋ฉด ์ ๋๋ ๊ฑด๊ฐ...
(1)
์ด ๋ถ๋ถ์ ์ ๋ฒ ํ๊ธฐ ๋ ๋ค์๋ ๋ด์ฉ์ด ๋ง์ ๋์์ด ๋์๋ค. *args์ **kwargs์ ๋ํ ๋ถ๋ถ์ด์๋๋ฐ ๋ฐฐ์ธ ๋ ์ดํดํ๋๋ผ ๊ณ ์ํ์ง๋ง ๋ฐฐ์ฐ๊ณ ๋๋ ์ธ๋ชจ๊ฐ ๋ง๋ค.
์๋ ๋ธ๋ก๊ทธ๊ฐ ๋ด์ฉ์ ์ ์ ๋ฆฌํ ๊ฒ ๊ฐ์ ์ฒจ๋ถํ๋ค.
https://brunch.co.kr/@princox/180
๊ทธ๋์ ๋ด ํ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
def add_all(*arg): sum = 0 for i in arg: sum += i return sum
๋ช ๊ฐ์ ์ธ์๋ฅผ ๋ฐ์์ง ๋ถํ์คํ๋ *์ ๋ถ์ฌ์ ๋ค์ด์ค๋ ๋ชจ๋ ์ธ์๋ค์ ํํ ํํ๋ก arg์ ์ ์ฅํ๋ค.
ํ์ด์ฌ์ ํธํ ๋ฐ๋ณต๋ฌธ! for in์ ์ด์ฉํด์ arg์ ๋ชจ๋ ์ธ์๋ค์ ๋ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฆฌํดํ๋ค. ๋!
add_all(1, 2, 3)
6 add_all(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
55 ์ ์๋ํ๋ค.
(2)
๋ฌธ์ ์ Cmdํ๊ฒฝ!
์์คํ ํดํน์์ ๊ณต๋ถํ ๋๋ c๋ก ์ฐ์ธ exeํ์ผ์ python์ผ๋ก ์ ๋ ฅ์ ์คฌ๋ ๊ฑฐ๋ผ pythonํ์ผ์์๋ ์ด๋ป๊ฒ ๋ช ๋ น ์ธ์๊ฐ ์ ๋ฌ๋๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ด์ ์ด์ฌํ ๊ฒ์์ ํด๋ดค๋ค.
์๋ ๋ธ๋ก๊ทธ์์ ๋์์ ๋ฐ์๋ค.
https://brownbears.tistory.com/202
import sys for i in range(1, len(sys.argv)): print(sys.argv[i])
system๋ชจ๋์ ์ด์ฉํด์ ๋ฐ์ ์ ๋ ฅ๋ค์ ํ๋์ฉ ๋ค ์ถ๋ ฅํด์ฃผ๋ ๊ตฌ๋ฌธ์ธ๋ฐ ์ฌ๊ธฐ์ ํฌ์ธํธ๋ ๋ฒ์๊ฐ 1๋ถํฐ ์์ํ๋ค๋ ๊ฑฐ๋ค.
์๋ํ๋ฉด ์คํํ ๋,
python ํ์ผ ์ด๋ฆ. py ~~ ๋ช ๋ น ์ธ์
๋ฅผ cmd ์ฐฝ์ ์ ๋ ฅํด์ ์คํํ๋๋ฐ ์ ๊ธฐ ์ 'ํ์ผ ์ด๋ฆ. py'๋ถํฐ ํํ์ ์ ์ฅ์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, 0๋ฒ์งธ ๋ถ๋ถ์ ํ์ผ ์ด๋ฆ์ด ๋ค์ด๊ฐ ๋ฒ๋ฆฐ๋ค. ๊ทธ๋์ ๊ผญ ์ ์ธ๋ฅผ ํด์ค์ผ ํ๋ค.
import sys sum=0 for i, j in enumerate(sys.argv): if(i!=0 and i!=1): #add_all.py โc ์ ์ ์ธํด ์ฃผ๋ ๊ตฌ๋ฌธ sum+=int(j) print(sum)
๋๋ enumerate๋ฅผ ์ด์ฉํด์ ํํ์ ๋ฒํธ๋ฅผ ์๊ฒจ์ค์ ๋ฒํธ๊ฐ 0๊ณผ 1์ผ ๋ ๋ํ์ง ์๊ณ ๋์ด๊ฐ๋๋ก ๋ง๋ค์๋๋ฐ ์ง๊ธ ์๊ฐํด ๋ณด๋๊น range(2, sys.argv)๋ก ํ์ด๋ ๊ด์ฐฎ์์์ ๊ฒ ๊ฐ๋ค.
์ฌ๊ธฐ์ ์์ ๋ถ๋ถ์ด 2์ธ ์ด์ ๋ ์ฐ๋ฆฌ์ ์ ๋ ฅ์ python add_all.py -c 1 2 3 ์ด์ฌ์ add_all.py์ -c ๋ ๊ฐ๋ฅผ ๋๊ฒจ์ค์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
cmd ํ๊ฒฝ์์๋ ์ ์๋ํ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
'๐STUDY > ๐๋คํ (dafit.me)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DF913] 06. 369 ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ (0) 2020.02.10 [DF913] 05. ๋์๋ฌธ์ ๋ณํ (0) 2020.02.10 [DF913] 04. Lambda๋ฅผ ๋น๋กฏํ ์ฌ๋ฌ ํจ์ (0) 2020.02.10 [DF913] 03. ๋ ๋ฒ์งธ๋ก ๊ฐ์ฅ ํฐ ์ (0) 2020.02.10 [DF913] 01. ๋๊ฐ์ง ์ถ๋ ฅ ๋ฐฉ์ (0) 2020.02.10 ๋๊ธ