assembly_study-1
assembly_test_1
assembly test ๋์ปดํ์ผ ๋ฐ ํจ์น
์ด์ ์ด์
๋ธ๋ฆฌ๋ฅผ ์คํํ๊ณ ํ์ธ์ ํ๋ฉฐ ์ด๋ฏธ์ง๋ก ์ฌ์ด ๊ฑด ์ค๋ช
์ ํ ๊ฒ์
๊ด๊ณ๋๊ฐ ์ ๋ ๊ฒ ํํ๋๋ฉฐ, ํ๋กค๋ก๊ทธ๋ ๊ฑด๋๋ฐ๊ณ
mov dword ptr์ a=1, b=2์ด๋ฉฐ offset์ผ๋ก before..๋ก ์คํ์ ์ ์ฅ๋๋ฉฐ,
๋ฐ๋ก before..์ ์ถ๋ ฅํ๊ณ ๋ฐ๋ก a์ b๋ฅผ ๋น๊ตํฉ๋๋ค.
jle์ด๋ฏ๋ก ์ค๋ฅธ์ชฝ์ด ํฌ๋ค๋ฉด.. mov dword ptr์ 0์ ๋์
ํด ๋ฐํํ๋ค์ ์ฆ, c=1;
์๋๋ผ๋ฉด mov dword ptr์ 1๋ก ๋ฐํํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ after..๋ฅผ ์ถ๋ ฅํ๊ณ ๋ฅผ ์ํ๋ก๊ทธํ๋ฉฐ, mainํจ์๋ฅผ ๋!
์ฌ์ค IDA๋ ๋์ปดํ์ผ๋ฌ๊ฐ ๋ฐ๋ก ๋์ ๊ทธ๋ฅ F5ํ๋ฉด ๋๊ธด ํด์ ใ
ใ
๊ทธ๋ฌ๋ ๋ด๋ถ ์คํ์์๋ง ๋๊ณ ์ถ๋ ฅ๊ฐ์ ๋ถ๋ถ์ด ์๊ธฐ์ ๋์ปดํ์ผํ๋ฉด ๋ฐ์์ฒ๋ผ ๋์์
assembly_test_2
์.. mov offset์ Input..์ ์ถ๋ ฅํ๊ณ , lea eax, [esp+1Ch]๋ก BSS์ ๋ณ์๋ฅผ ์ผ๋จ ๋ฑ๋ก
๊ทธ๋ฆฌ๊ณ esp์ 4byte๋ฅผ ์ถ๊ฐํ๊ธฐ์ int๋ก ์ถ์ ํ๋ฉฐ, ๋ฐ๋ก offset์ผ๋ก %d๋ก ๋ฐ๋ค์
๊ตณ์ด ์ถ๋ ฅ์ ํ๊ณ ๋ฐ๋ก ์
๋ ฅ์ ๋ฐ๋ค์ ๊ทธ๋ฅ ํ๊บผ๋ฒ์ ํ์ง๋..
๊ทธ๋ฆฌ๊ณ ๋ค์ mov offset์ผ๋ก before..์ ์ถ๋ ฅํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์
๋ ฅ๋ฐ์ ๊ฐ์ผ๋ก ๋ฐ๋ก switch case๋ฌธ์ 5๋ฒํ๋ค๊ณ ์๋ ค์ฃผ๋ค์ ใทใท gdb๋ก ๋ถ์ํ ๋๋ณด๋ค ํธํ๋ค
ja๋ก case๋ฌธ์ ๋์ด๊ฐ๊ณ ์ฐฌ์ฐฌํ ๋์ด๊ฐ๋ค์ case๋ฌธ์ ์ด์ ํ๋์ฉ ๋ถ์ํ๋ฉด ๋์ด์ฃ
case๋ฌธ๋ง๋ค ๊ทธ๋ฅ Zero, One..์ด๋ฐ์์ผ๋ก Four๊ฐ๋ค์ ๊ทธ๋ฆฌ๊ณ case๋ฌธ์ด 5๋ฒ๊น์ง์ธ๋ฐ 6๊ฐ๋๊น ์๋ง๋
default๋ก Error๋ก case๋ฌธ์ ๋์ด๊ฐ๋ ์์ธ๋ฌธ์ ์ ๋ ๊ฒ ์ถ๋ ฅ์ ํ๋ค์.
๊ทธ๋ฆฌ๊ณ ์ํ๋ก๊ทธ๋ก ๊ฐ๊ธฐ์ ์ mov offset after..๋ก ์ถ๋ ฅํ๊ณ ๋๋๋ค์.
assembly_test_3
ํ๋กค๋ก๊ทธ ์์ and์ sub์ผ๋ก 50byte์ ๋ฏธ๋ฆฌ ํ ๋นํ ๊ฒ์ผ๋ก ๋ดค์๋ BSS์ ๋ญ ๋ฃ์๋ค์?
, dword ptr step #1๋ก ์ถ๋ ฅํ๋ฉฐ ๋ฐ๋ณต๋ฌธ ์ธ๊ฑด๊ฐ๋ณด๋ค์
๋ mov dword ptr .. 0, 1์ด๋ฌ๋ฏ๋ก ๋ฐ๋ณต๋ฌธ ํจ์๋ก ์ด๋ํ์ฃ
๋ฐ๋ก loc_401574:๋ก ์ด๋ํด ๋ฐ๋ณต๋ฌธ์ cmp์ [esp+4C]์ ๋ถ๋ฌ์์
loc_401567:๋ก ์ด๋ํ๋ฉฐ ๋ฐ๋ณต๋ฌธ์ผ๋ก 10๋งํผ ๋ฐ๋ณตํด์ ๋๋ ค์ฃผ๋ค์. 0Ah๋ก cmpํ๋๊น์.
๋ค์์ผ๋ก step #2 ์ถ๋ ฅํ๊ณ ์ธ์๋ฅผ 3๊ฐ๋ฅผ ๊ฐ๊ฐ 3, 2, 1๋ก ๋ฃ์ด์ ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ญ ๋ฑํ ์๋ค์? ๋ฐํ๊ฐ์ ์ ๋ฐ์์ ์คํ ํน์ ํ์ ์ ์ฅ๋์ด ์์ด์ ๊ทธ๋ฐ๊ฐ?
๊ทธ๋ฆฌ๊ณ step #3์ ์ถ๋ ฅํ๊ณ ์ํ๋ก๊ทธ๋ก ๋๋๋ค์
์ฌ๊ธฐ์ ์๋ ๋ด์ฉ์ด์ง๋ง ์ฃผ์์ ์ปดํ์ผ ๊ณผ์ ์์ ํนํ ์ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์๋ต๋์ฃ
๊ทธ๋ฆฌ๊ณ ํจ์ ๋ถ๋ถ์ ํ ์๋ cs?์ชฝ์ ์ ์ฅ๋์ด ๋ฐํ๊ฐ์ ํ์ธ์ ์ํ๊ธฐ์ ๋ ์ง์คํฐ ๋ฑ์ ๋ด์ผ ๋์ค๊ฒ ์ฃ
๋ญ ๋๋จธ์ง ์ ์ฌํ์ฃ
assembly_test_4
์ ์ฒด์ ์ธ ๋ก์ง์ ์์ ๊ฐ๊ณ ํ๋์ฉ ๋ถ์ํด๋ด ์๋ค.
๋ฉ์ธ ์์ var_64๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น๋์๊ธฐ์ DS ํน์ BS์ ํ ๋น๋ ์ ์ญ๋ณ์๊ฒ ๊ตฐ์
๋ค์ Input.. ์ถ๋ ฅํ๊ณ lea eax์ [esp+0x80][esp-0x64]๋ฅผ ํ ๋นํ๊ณ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํด char๋ก ๋ฐ๊พธ๋ค์..
์ข ์ด๋ ต์ง๋ง ์์ ๊ฐ์ด ๋ฌธ์์ด ๋ฐฐ์ด๋ก ๋ง๋ค์ด ์
๋ ฅ ๋ฐ๊ณ call๋ก strncmp๋ก ๋ฌธ์์ด ๋น๊ต๋ฅผ ํฉ๋๋ค.
์ง์ ๋ ๋ฌธ์์ด๊ณผ ๊ฐ์์ง ๋น๊ตํด ๊ฐ์ผ๋ฉด ์ด๋ํ๋ฉฐ ์ด๋๋ ๋ถ๊ธฐ์ ์ ์๋ก์ ๊ฐ์ฃ
์์ reversing์ด๋ผ๋ mov์์ ์๋ offset์ ๋ด์ฉ์ ๋น๊ตํ๋ค๋ ๋ถ๋ถ!
๋ํ ์กฐ๊ฑด๋ฌธ์ด ์ ๋ง๋๋ค๋ฉด Inva..์ ์ถ๋ ฅํ๊ณ ๋!
_hidden_value๋ก ๋ ๋ฒํผ ํฌ๊ธฐ ์ก๊ณ Hidden.. ์ผ๋ก ์ถ๋ ฅํ๊ณ ์๊น mov [esp+4], eax์ 0์ผ๋ก ์ง์ !
๋ฐ์๋ ๊ทธ๋ฅ ์ํ๋ก๊ทธ์ฃ
์ฝ๋ ๋ถ์์ ์์ ๊ฐ์ด ๋๋๋ฉฐ ์ ์ญ ๋ณ์์ ํจ๊ป ํ์ธํ ์ ์๋ ๋ถ๋ถ์ ๋ค ํ์ธํ์ฃ ใ
์ฐธ๊ณ ๋ก ์ง์ ๋ ์ ์ญ๋ณ์๋ DS์ ์ ์ฅ๋์
์ฐธ๊ณ ์๋ฃ
์ ๋ณด๋ณดํธ์์ฌ๊ต์ก์
dream.mokpo.ac.kr:443
์ฐธ๊ณ ์ด๋ฏธ์ง