์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ๊ณต๊ธ์์์ ์คํํ ์ ์๋ mips64el-linux-gnuabi64-readelf ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
readelf - ELF ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค.
๊ฐ์
์ฝ๊ธฐ [-a|--๋ชจ๋]
[-h|--ํ์ผ ํค๋]
[-l|--ํ๋ก๊ทธ๋จ ํค๋|--์ธ๊ทธ๋จผํธ]
[-S|--์น์ ํค๋|--์น์ ]
[-g|--์น์ ๊ทธ๋ฃน]
[-t|--์น์ -์ธ๋ถ ์ฌํญ]
[-e|--ํค๋]
[-s|--syms|--๊ธฐํธ]
[--dyn-syms]
[-n|--๋ ธํธ]
[-r|--์ฌ๋ฝ]
[-u|--ํ๋ค]
[-d|--๋์ ]
[-V|--๋ฒ์ ์ ๋ณด]
[-A|--์ํคํ ์ฒ๋ณ]
[-D|--์ฌ์ฉ-๋์ ]
[-x |--XNUMX์ง ๋คํ=]
[-p |--๋ฌธ์์ด ๋คํ=]
[-R |--์ฌ๋ฐฐ์น๋ ๋คํ=]
[-z|--์์ถํด์ ]
[-c|--์์นด์ด๋ธ ์ธ๋ฑ์ค]
[-w[lLiaprmfFsoRt]|
--๋๋ฒ๊ทธ ๋คํ[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges ,=gdb_index]]
[--์์ฑ ๊น์ด=n]
[-- ์์ํ ์์ =n]
[-I|--ํ์คํ ๊ทธ๋จ]
[-v|--๋ฒ์ญ]
[-W|--๋์]
[-H|--๋์]
์ํ ํ์ผ...
๊ธฐ์
์ฝ๊ธฐ ํ๋ ์ด์์ ELF ํ์ ๊ฐ์ฒด ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค. ์ต์
ํ์ํ ํน์ ์ ๋ณด๋ฅผ ์ ์ดํฉ๋๋ค.
์ํ ํ์ผ... ๊ฒ์ฌํ ๊ฐ์ฒด ํ์ผ์ ๋๋ค. 32๋นํธ ๋ฐ 64๋นํธ ELF ํ์ผ์
ELF ํ์ผ์ ํฌํจํ๋ ์์นด์ด๋ธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ง์๋ฉ๋๋ค.
์ด ํ๋ก๊ทธ๋จ์ ๋ค์๊ณผ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค. ๊ฐ์ฒด ๋คํ ํ์ง๋ง ๋ ์์ธํ ์ค๋ช ํ๊ณ
BFD ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ฏ๋ก BFD์ ๋ฒ๊ทธ๊ฐ ์์ผ๋ฉด readelf๋
์ํฅ์ ๋ฐ๋๋ค.
์ต์
์ฌ๊ธฐ์ ๋์์ผ๋ก ํ์๋ ๊ธธ๊ณ ์งง์ ํํ์ ์ต์ ์ ๋์ผํฉ๋๋ค. ์ ์ด๋
ํ ๊ฐ์ง ์ต์ ์ธ์ -v or -H ์ฃผ์ด์ ธ์ผํฉ๋๋ค.
-a
--๋ชจ๋
์ง์ ํ๋ ๊ฒ๊ณผ ๋์ผ --ํ์ผ ํค๋, --ํ๋ก๊ทธ๋จ ํค๋, --์น์ , --๊ธฐํธ,
--์ฌ๋ฝ, --๋์ , --๋ ธํธ ๊ณผ --๋ฒ์ ์ ๋ณด.
-h
--ํ์ผ ํค๋
ํ์ผ ์์ ๋ถ๋ถ์ ELF ํค๋์ ํฌํจ๋ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค.
-l
--ํ๋ก๊ทธ๋จ ํค๋
--์ธ๊ทธ๋จผํธ
ํ์ผ์ ์ธ๊ทธ๋จผํธ ํค๋์ ํฌํจ๋ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํ์ํฉ๋๋ค.
-S
--์น์
--์น์ ํค๋
ํ์ผ์ ์น์ ํค๋์ ํฌํจ๋ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํ์ํฉ๋๋ค.
-g
--์น์ ๊ทธ๋ฃน
ํ์ผ์ ์น์ ๊ทธ๋ฃน์ ํฌํจ๋ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํ์ํฉ๋๋ค.
-t
--์น์ -์ธ๋ถ ์ฌํญ
์์ธํ ์น์ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค. ์์ -S.
-s
--๊ธฐํธ
--syms
ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ํ์ผ์ ๊ธฐํธ ํ ์ด๋ธ ์น์ ์ ํญ๋ชฉ์ ํ์ํฉ๋๋ค.
--dyn-syms
ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ํ์ผ์ ๋์ ๊ธฐํธ ํ ์ด๋ธ ์น์ ์ ํญ๋ชฉ์ ํ์ํฉ๋๋ค.
-e
--ํค๋
ํ์ผ์ ๋ชจ๋ ํค๋๋ฅผ ํ์ํฉ๋๋ค. ์ ํด๋น -h -l -S.
-n
--๋ ธํธ
NOTE ์ธ๊ทธ๋จผํธ ๋ฐ/๋๋ ์น์ (์๋ ๊ฒฝ์ฐ)์ ๋ด์ฉ์ ํ์ํฉ๋๋ค.
-r
--์ฌ๋ฝ
ํ์ผ์ ์ฌ๋ฐฐ์น ์น์ (์๋ ๊ฒฝ์ฐ)์ ๋ด์ฉ์ ํ์ํฉ๋๋ค.
-u
--ํ๋ค
ํ์ผ์ ํด์ ์น์ ์ด ์๋ ๊ฒฝ์ฐ ๊ทธ ๋ด์ฉ์ ํ์ํฉ๋๋ค. ๊ธด์ฅ์ ํธ๋ ๊ฒ๋ง
ARM ํด์ ํ ์ด๋ธ(".ARM.exidx" /
".ARM.extab")๊ฐ ํ์ฌ ์ง์๋ฉ๋๋ค.
-d
--๋์
ํ์ผ์ ๋์ ์น์ (์๋ ๊ฒฝ์ฐ)์ ๋ด์ฉ์ ํ์ํฉ๋๋ค.
-V
--๋ฒ์ ์ ๋ณด
ํ์ผ์ ์๋ ๋ฒ์ ์น์ ์ ๋ด์ฉ์ ํ์ํฉ๋๋ค.
-A
--์ํคํ ์ฒ๋ณ
ํ์ผ์ ์ํคํ ์ฒ ๊ด๋ จ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํ์ํฉ๋๋ค.
-D
--์ฌ์ฉ-๋์
๊ธฐํธ๋ฅผ ํ์ํ ๋ ์ด ์ต์ ์ ์ฝ๊ธฐ ๊ธฐํธ ํด์ ํ ์ด๋ธ์ ์ฌ์ฉํ์ญ์์ค.
๊ธฐํธ ํ ์ด๋ธ ์น์ ์ด ์๋ ํ์ผ์ ๋์ ์น์ .
-x <๋ฒํธ or ์ด๋ฆ>
--XNUMX์ง ๋คํ= or ์ด๋ฆ>
ํ์๋ ์น์ ์ ๋ด์ฉ์ XNUMX์ง์ ๋ฐ์ดํธ๋ก ํ์ํฉ๋๋ค. ๋ฒํธ
์น์ ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ก ํน์ ์น์ ์ ์๋ณํฉ๋๋ค. ๋ค๋ฅธ ๋ฌธ์์ด
๊ฐ์ฒด ํ์ผ์์ ํด๋น ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์น์ ์ ์๋ณํฉ๋๋ค.
-R <๋ฒํธ or ์ด๋ฆ>
--์ฌ๋ฐฐ์น๋ ๋คํ= or ์ด๋ฆ>
ํ์๋ ์น์ ์ ๋ด์ฉ์ XNUMX์ง์ ๋ฐ์ดํธ๋ก ํ์ํฉ๋๋ค. ๋ฒํธ
์น์ ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ก ํน์ ์น์ ์ ์๋ณํฉ๋๋ค. ๋ค๋ฅธ ๋ฌธ์์ด
๊ฐ์ฒด ํ์ผ์์ ํด๋น ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์น์ ์ ์๋ณํฉ๋๋ค. ์ ๋ด์ฉ
์น์ ์ด ํ์๋๊ธฐ ์ ์ ์ฌ๋ฐฐ์น๋ฉ๋๋ค.
-p <๋ฒํธ or ์ด๋ฆ>
--๋ฌธ์์ด ๋คํ= or ์ด๋ฆ>
ํ์๋ ์น์ ์ ๋ด์ฉ์ ์ธ์ ๊ฐ๋ฅํ ๋ฌธ์์ด๋ก ํ์ํฉ๋๋ค. ๋ฒํธ
์น์ ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ก ํน์ ์น์ ์ ์๋ณํฉ๋๋ค. ๋ค๋ฅธ ๋ฌธ์์ด
๊ฐ์ฒด ํ์ผ์์ ํด๋น ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์น์ ์ ์๋ณํฉ๋๋ค.
-z
--์์ถํด์
๋คํ๋๋ ์น์ ์ ์์ฒญํฉ๋๋ค. x, R or p ์ต์ ์ ์ ์ ์์ถ ํด์ ๋ฉ๋๋ค.
ํ์ ์ค์ ๋๋ค. ์น์ ์ด ์์ถ๋์ง ์์ ๊ฒฝ์ฐ ๊ทธ๋๋ก ํ์๋ฉ๋๋ค.
-c
--์์นด์ด๋ธ ์ธ๋ฑ์ค
๋ฐ์ด๋๋ฆฌ์ ํค๋ ๋ถ๋ถ์ ํฌํจ๋ ํ์ผ ์ฌ๋ณผ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค.
์์นด์ด๋ธ. ์ ๋์ผํ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค. t ~์ ๋ช ๋ นํ๋ค ar, ๊ทธ๋ฌ๋ ์ฌ์ฉํ์ง ์๊ณ
BFD ๋ผ์ด๋ธ๋ฌ๋ฆฌ.
-w[lLiaprmfFsoRt]
--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info, =trace_abbrev,=trace_aranges,=gdb_index]
์๋ ๊ฒฝ์ฐ ํ์ผ์ ๋๋ฒ๊ทธ ์น์ ์ ๋ด์ฉ์ ํ์ํฉ๋๋ค. ํ๋๋ผ๋ฉด
์ ํ์ ์ธ ๋ฌธ์ ๋๋ ๋จ์ด ์ค ์ค์์น ๋ค์ ์ค๋ ๊ฒฝ์ฐ ํด๋น ํญ๋ชฉ์์ ์ฐพ์ ๋ฐ์ดํฐ๋ง
ํน์ ์น์ ์ด ๋คํ๋ฉ๋๋ค.
์ถ์ ์น์ ์ ๋ด์ฉ์ ํ์ํ๋ ๋จ์ผ ๋ฌธ์ ์ต์ ์ด ์์ต๋๋ค.
.gdb_index.
์ฐธ๊ณ : =๋์ฝ๋ฉ๋ ๋ผ์ธ ์ต์ ์ .debug_line์ ํด์๋ ๋ด์ฉ์ ํ์ํฉ๋๋ค.
์น์ ๋ฐ๋ฉด =๋ก์ฐ๋ผ์ธ ์ต์ ์ ๋ด์ฉ์ ์์ ํ์์ผ๋ก ๋คํํฉ๋๋ค.
์ฐธ๊ณ : =ํ๋ ์ ์ธํฐํ ์ต์ ์ ํด์๋ ๋ด์ฉ์ ํ์ํฉ๋๋ค
.debug_frame ์น์ ๋ฐ๋ฉด =ํ๋ ์ ์ต์ ์ ๋ด์ฉ์ ์์ ํ์์ผ๋ก ๋คํํฉ๋๋ค.
์ฐธ๊ณ : ์ถ๋ ฅ =์ ๋ณด ์ต์ ์ ์ต์ ์ ์ํฅ์ ๋ฐ์ ์๋ ์์ต๋๋ค.
--์์ฑ ๊น์ด ๊ณผ -- ์์ํ ์์.
--์์ฑ ๊น์ด=n
".debug_info" ์น์ ์ ๋คํ๋ฅผ ๋ค์์ผ๋ก ์ ํํฉ๋๋ค. n ์ด๋ฆฐ์ด๋ค. ์ด๊ฒ์ ๋ค์๊ณผ ํจ๊ป๋ง ์ ์ฉํฉ๋๋ค.
--debug-dump=์ ๋ณด. ๊ธฐ๋ณธ๊ฐ์ ๋ชจ๋ DIE๋ฅผ ์ธ์ํ๋ ๊ฒ์ ๋๋ค. ํน๋ณํ ๊ฐ 0 n ์์ง
์ด ํจ๊ณผ๋ ์์ต๋๋ค.
XNUMX์ด ์๋ ๊ฐ์ผ๋ก n, DIEs ๋๋ ๊ทธ ์ด์ n ๋ ๋ฒจ์ด ์ธ์๋์ง ์์ต๋๋ค. NS
๋ฒ์ n ์ ๋ก ๊ธฐ๋ฐ์ ๋๋ค.
-- ์์ํ ์์ =n
๋ฒํธ๊ฐ ๋งค๊ฒจ์ง DIE๋ก ์์ํ๋ DIE๋ง ์ธ์ n. ์ด๊ฒ์ ๋ค์๊ณผ ํจ๊ป๋ง ์ ์ฉํฉ๋๋ค.
--debug-dump=์ ๋ณด.
์ง์ ๋ ๊ฒฝ์ฐ ์ด ์ต์ ์ ํค๋ ์ ๋ณด์ ๋ชจ๋ ํค๋ ์ ๋ณด์ ์ธ์๋ฅผ ์ต์ ํฉ๋๋ค.
๋ฒํธ๊ฐ ๋งค๊ฒจ์ง DIE ์์ DIE n. ์ง์ ๋ DIE์ ํ์ ์ ์์๋ง
์ธ์๋ฉ๋๋ค.
์ด๊ฒ์ ๋ค์๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. --์์ฑ ๊น์ด.
-I
--ํ์คํ ๊ทธ๋จ
๊ธฐํธ์ ๋ด์ฉ์ ํ์ํ ๋ ๋ฒํท ๋ชฉ๋ก ๊ธธ์ด์ ํ์คํ ๊ทธ๋จ ํ์
ํ ์ด๋ธ.
-v
--๋ฒ์ญ
readelf์ ๋ฒ์ ๋ฒํธ๋ฅผ ํ์ํฉ๋๋ค.
-W
--๋์
80์ด์ ๋ง์ถ๊ธฐ ์ํด ์ถ๋ ฅ ์ค์ ๋๋์ง ๋ง์ญ์์ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๊ธฐ ์น์ ๋๋๊ธฐ
64๋นํธ ELF ํ์ผ์ ๋ํ ํค๋ ๋ฐ ์ธ๊ทธ๋จผํธ ๋ชฉ๋ก ํ, 80์ ๋ง๋๋ก
์ด. ์ด ์ต์ ์ ์ฝ๊ธฐ ๊ฐ ์น์ ํค๋ resp๋ฅผ ์ธ์ํฉ๋๋ค. ๊ฐ ์ธ๊ทธ๋จผํธ
ํ๋๋ 80์ด๋ณด๋ค ๋์ ํฐ๋ฏธ๋์์ ํจ์ฌ ๋ ์ฝ๊ธฐ ์ฌ์ด ํ ์ค์ ๋๋ค.
-H
--๋์
๋ค์์์ ์ดํดํ๋ ๋ช ๋ น์ค ์ต์ ์ ํ์ํฉ๋๋ค. ์ฝ๊ธฐ.
@ํ์ผ
๋ค์์์ ๋ช ๋ น์ค ์ต์ ์ฝ๊ธฐ ํ์ผ. ์ฝ์ ์ต์ ์ ๋ค์ ์์น์ ์ฝ์ ๋ฉ๋๋ค.
์๋์ @ํ์ผ ์ต์ . ๋ง์ฝ์ ํ์ผ ์กด์ฌํ์ง ์๊ฑฐ๋ ์ฝ์ ์ ์๋ ๊ฒฝ์ฐ ์ต์
๋ฌธ์ ๊ทธ๋๋ก ์ฒ๋ฆฌ๋๋ฉฐ ์ ๊ฑฐ๋์ง ์์ต๋๋ค.
์ต์ ํ์ผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. ๊ณต๋ฐฑ ๋ฌธ์๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
์ต์ ์์ ์ ์ฒด ์ต์ ์ ์์๋ฐ์ดํ๋ ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ต๋๋ค. ์ด๋
๋ฌธ์(๋ฐฑ์ฌ๋์ ํฌํจ)๋
๋ฐฑ์ฌ๋์์ ํจ๊ป ํฌํจ๋ฉ๋๋ค. NS ํ์ผ ์์ฒด์ ์ถ๊ฐ @๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.ํ์ผ ์ต์ ; ์ด๋
์ด๋ฌํ ์ต์ ์ ์ฌ๊ท์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์ผ๋ก mips64el-linux-gnuabi64-readelf ์ฌ์ฉ