SECURITY/REVERSING
-
์ด์ ๋ธ๋ฆฌ์ด ๋ถ์ 2 - example 2SECURITY/REVERSING 2020. 7. 14. 18:53
* ์ด ๊ฒ์๊ธ์ AT&T ๋ฌธ๋ฒ์ ๋ฐ๋ผ ์์ฑ๋์์ต๋๋ค. (AT&T ์ Intel ์ฐจ์ด ์ฐธ๊ณ - 2020.07.08 - [SECURITY/REVERSING] - REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 4 :: ์ด์ ๋ธ๋ฆฌ ์ธ์ด ) .file"example2.c" .section.rodata .LC0: .string"result : %d \n" .text .globlmain .typemain, @function main: .LFB0: .cfi_startproc pushq%rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq%rsp, %rbp .cfi_def_cfa_register 6 subq$16, %rsp movl$10, -12(%rbp) movl$20, -8(%rbp) m..
-
์ด์ ๋ธ๋ฆฌ์ด ๋ถ์ 1 - example 1SECURITY/REVERSING 2020. 7. 14. 17:53
* ์ด ๊ฒ์๊ธ์ AT&T ๋ฌธ๋ฒ์ ๋ฐ๋ผ ์์ฑ๋์์ต๋๋ค. (AT&T ์ Intel ์ฐจ์ด ์ฐธ๊ณ - 2020.07.08 - [SECURITY/REVERSING] - REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 4 :: ์ด์ ๋ธ๋ฆฌ ์ธ์ด ) ๋ถ์ํ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. .file"example1.c" .section.rodata .LC0: .string"Hello world" .text .globlmain .typemain, @function main: .LFB0: .cfi_startproc pushq%rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq%rsp, %rbp .cfi_def_cfa_register 6 movl$.LC0, %edi movl$0, %eax callp..
-
๋ฆฌ๋ ์ค(Linux) ๊ธฐ์ด - 01 ๋ช ๋ น์ดSECURITY/REVERSING 2020. 7. 14. 17:28
์ด๊ธฐ ์์ ํ๊ฒฝ: home/bt/test pwd (print working directory) : ํ์ฌ ์์ ์ค์ธ ๋๋ ํ ๋ฆฌ ์ ๋ณด ์ถ๋ ฅ cd (change directory) : ๊ฒฝ๋ก ์ด๋ cd ~ : ํ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ cd .. : ์์ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ cd - : ์ด๋ํ๊ธฐ ๋ฐ๋ก ์ ์ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ - ์ ๋ ๊ฒฝ๋ก : ์ต์์ ๋๋ ํ ๋ฆฌ๋ถํฐ ๋ชฉํ ๋๋ ํ ๋ฆฌ๊น์ง์ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ ํ๋ ๋ฐฉ์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ ํ ๋ ํญ์ ๋งจ ์์ / ์ด ๋ถ๋๋ค๋ ๊ฒ์ ๋ช ์ฌํ ๊ฒ. (์ต์์ ๋๋ ํ ๋ฆฌ ์๋ฏธ) - ์๋ ๊ฒฝ๋ก : 'ํ์ฌ์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก' ์ด๋ํ๋ ๋ฐฉ์ ํ์ฌ ์์ ์ ์์น๋ . (์จ์ ) ์ผ๋ก ํ๊ธฐํ๋ค. ๋๋ ๊ทธ๋ฅ ํ์ผ ์ด๋ฆ๋ง ์ฃผ์ด๋ ๋๋ค. ์ด ๋ home/bt/test ๋ก ์ฎ๊ฒจ์์ผ๋, ์์ ๋๋ ํ ๋ฆฌ์ธ home ์ ์๋ ๊ฒฝ๋ก..
-
REVERSING ์์ํ๊ธฐ - VMware & Ubuntu Linux 32 bit and 64 bit ์ค์นํ๊ธฐSECURITY/REVERSING 2020. 7. 9. 17:24
๊ฐ์ ๋จธ์ ์๋ ํฌ๊ฒ Virtual Box ์ VMware ์ด ์๋ค. ๊ทธ ์ค์์ VMware ๋ก ๊ฐ์ ๋จธ์ ์ ์ค์นํ๊ณ , Ubuntu ๋ฅผ ๋ค์ดํ์ฌ ์ค์ต์ ํด๋ณด๋ ค ํ๋ค. 32 bit ๋ฅผ ์ํด ์์ ํ์ผ๋, ์ค๊ฐ์ ์ฝ์ง์ ํ์ฌ 64 bit ์ ๋ํ ๊ฒ๋ ํฌ์คํ ํ ๊ฒ์ด๋ค.. ๋๋ฌธ์ ํฌ์คํ ์ด ๊ธธ์ด์ ธ์, ๊ฐ๋จํ ๋ชฉ์ฐจ๋ฅผ ์๊ฐํ๊ณ ์์ํ๋ค. 0. ์๊ฐ ๋ฐ ์ ์ ์ฌํญ 1. VMware ์ค์นํ๊ธฐ 2. Ubuntu 32 bit ์ค์น (server) 3. Ubuntu 64 bit ์ค์น (desktop) 4. VMware ์ Ubuntu Linux ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ ๋ฒ์ธ) ๋ฒ์ ํ์ธ ๋ฐฉ๋ฒ 0. ์๊ฐ ๋ฐ ์ ์ ์ฌํญ ์ด ๊ธ์ ๊ฐ์ ๋จธ์ ์ ๋ง๋ค๊ณ ์ด์์ฒด์ iso ํ์ผ์ ์ด์ฉํ์ฌ ํด๋น ๊ฐ์ ๋จธ์ ์ Linux ๋ฅผ ์ค์นํ๋ ๊ณผ์ ์ ์ค๋ช ํ ํฌ์คํ ์ด..
-
REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 4 :: ์ด์ ๋ธ๋ฆฌ ์ธ์ดSECURITY/REVERSING 2020. 7. 8. 17:13
์ด์ ๋ธ๋ฆฌ ์ธ์ด : ์์ฐ์ด์ ๊ธฐ๊ณ์ด ์ฌ์ด๋ก, CPU ์ ๋ช ๋ น์ด๋ค์ ์์ด์ ์ฝ์์ธ ๊ธฐํธ๋ก ํ๊ธฐํ ๊ฒ์ด๋ค. ์ด ๊ธฐํธ๋ค์ CPU ์ ๋ช ๋ น์ด(๊ธฐ๊ณ์ด) ์ ์ผ๋์ผ ๋์ํ๋ค. ์ปดํจํฐ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ฌ์ฉํ๋ ๊ธฐ๊ณ์ด๊ฐ ๋ค๋ฅด๊ณ , ๊ทธ์ ๋ฐ๋ผ ๋ง๋ค์ด์ง๋ ์ด์ ๋ธ๋ฆฌ์ด๋ ๋ค๋ฅด๋ค. ๊ธฐ๊ณ์ด๋ณด๋ค๋ ๋์ ์์ค์์ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋ค. * ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ถ๋ฅ ๊ธฐ๊ณ์ด (machine language) ์ด์ ๋ธ๋ฆฌ์ด(assembly language) ๊ณ ๊ธ ์ธ์ด(high-level language) ๊ธฐ๊ณ์ด์ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ์ ๊ธ ์ธ์ด, Python, C, Java ๋ฑ์ด ๊ณ ๊ธ ์ธ์ด์ ์ํ๋ค. * ์ด์ ๋ธ๋ฌ(assembler) : ๊ธฐํธ๋ฅผ ์ด์ง์๋ก ๋ณํํ๋ ํ๋ก๊ทธ๋จ 1 ๊ฐ์ 1.1 AT&T ๋ฐฉ์๊ณผ Intel ๋ฐฉ์ ์ด์ ๋ธ๋ฆฌ ์ธ์ด๋ AT&T ์ Inte..
-
REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 3 :: EndianSECURITY/REVERSING 2020. 7. 8. 17:13
Endian = Endianness : ์ปดํจํฐ์ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐฐ์ดํ๋ ๋ฐฉ์ (Byte Order : byte ๋ฐฐ์ดํ๋ ๋ฐฉ๋ฒ) * ์ค์ํ ์ด์ ๋๋ผ๋ง๋ค ์ธ์ด, ์ฑ ๋ฑ ์ด๋์๋ถํฐ ์ฝ๋์ง(์ผ/์ค) ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋ฐ์ ์์ด์๋ ์ด๋์๋ถํฐ ์ฝ์์ง์ ๋ํด ๋ช ํํ ๊ท์น์ ์ ํด๋์ด์ผ ํ๋ค. * ์ ๋ ์กฐ๋์ ์ค์ํํธ์ ์ ์์ธ๊ตญ ๋ฆด๋ฆฌํผํธ ์ด์ผ๊ธฐ์์ ๋ฌ๊ฑ์ ๊นฐ ๋ ๋ญํญํ ๋(big-end) ๋ฅผ ๋จผ์ ๊นจ๋ ์ฌ๋๋ค(๋น ์๋์ธ)๊ณผ ๋พฐ์ฃกํ ๋(little-end)๋ฅผ ๋จผ์ ๊นจ๋ ์ฌ๋๋ค(๋ฆฌํ ์๋์ธ) ์ฌ์ด์ ๊ฒฉ๋ก ์ด ๋ฒ์ด์ง ๋ฐ์ ๋ฐ๋ก ๊ฒ์ด๋ค. - Big Endian : ํฐ ๋จ์์ ๋ฐ์ดํธ๊ฐ ์์ ์ค๋ ๋ฐฉ๋ฒ ex. 0x34642345 : 34 64 23 45 ์ฌ๋์ด ์ซ์๋ฅผ ์ฝ๊ณ ์ฐ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋๋ฒ๊ทธ๋ฅผ ํธํ๊ฒ ํด์ฃผ๋..
-
REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 2 :: ๋ ์ง์คํฐ(Register)SECURITY/REVERSING 2020. 7. 8. 17:10
๋ ์ง์คํฐ(Register) : CPU ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๋ ๋ค๋ชฉ์ ๊ณต๊ฐ์ด๋ค. ๊ทนํ ์๋์ ๋ฐ์ดํฐ๋ ์ฒ๋ฆฌ ์ค์ธ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ผ์์ ์ผ๋ก ๊ธฐ์ตํด ๋๋ ์์ญ์ด๋ค. RAM ์ ๊ฑฐ์น์ง ์์ผ๋ฏ๋ก ์๋๊ฐ ๋น ๋ฅด๋ค. ๋ง์ผ ๋ ์ง์คํฐ๊ฐ ๋ชจ์๋ผ๋ฉด Stack ์ ์ฌ์ฉํ๋ค. EAX > EDX > ECX > EBX ์์ผ๋ก ์์ฃผ ์ฌ์ฉํ๋ค ๋ ์ง์คํฐ(32bit) ์ ์ข ๋ฅ 1. ๋ฒ์ฉ ๋ ์ง์คํฐ (EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP ๋ฑ) : ๋ฒ์ฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ ์ง์คํฐ๋ค. ์์ ๋ฐ์ดํฐ์ ์์ ์ ์ฅ ๊ณต๊ฐ์ผ๋ก, ์ฐ์ฐ ์ฒ๋ฆฌ ๋ฐ ๋ฒ์ง ์ง์ ์ ๋์์ค๋ค. ๊ฐ ๋ฒ์ฉ ๋ ์ง์คํฐ๋ค์ ํฌ๊ธฐ๋ 32 bit ์ด๋ค. (์ฐธ๊ณ : ๊ฐ ๋ ์ง์คํฐ ์์ E ๋ Extended ๋ฅผ ์๋ฏธํ๊ณ , 32bit ํ๊ฒฝ์ด..
-
REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 1 :: ๋ฉ๋ชจ๋ฆฌ ์์ญ(RAM)SECURITY/REVERSING 2020. 7. 8. 15:07
๋ฉ๋ชจ๋ฆฌ ์์ญ(RAM) RAM (Random Access Memory) : ๋ฐ๋์ฒด ํ๋ก๋ก ๊ตฌ์ฑ๋์ด ์๋ ํ๋ฐ์ฑ ๋ฉ๋ฆฌ๋ก๋ก, ์ฃผ๊ธฐ์ต ์ฅ์น์ด๋ค. ์ด๋ ์์น์ ์๋ ๋ฐ์ดํฐ๋ ์ง ์ ๊ทผํ๋ ๋ฐ ๋์ผํ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. (cf. ํ๋ ๋์คํฌ, ํ๋กํผ ๋์คํฌ ๋ฑ) - Code ์์ญ : ์ฝ๋ ์์ฒด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ. Hex / BIN ํ์ผ ๋ฉ๋ชจ๋ฆฌ์ด๋ค. ํ๋ก๊ทธ๋จ ๋ช ๋ น์ด ์์นํ๋ ๊ณณ์ผ๋ก , ๊ธฐ๊ณ์ด๋ก ์ ์ด๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด๋ค. 'read only' ์์ญ์ผ๋ก ๋ณ๊ฒฝ ๋ถ๊ฐ. ์ฐ๊ธฐ ๋ฑ์ ๋ณ๊ฒฝ ์์ ์ด ๋ค์ด์ค๋ฉด 'access violation' ์ด ๋ฐ์ํ๋ค. ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๋๊น์ง ๊ณ์ ์ ์ง๋๋ ์์ญ์ด๋ค. - Data ์์ญ : ์ ์ญ๋ณ์(global), ์ ์ ๋ณ์(static), ๋ฐฐ์ด(array), ๊ตฌ์กฐ์ฒด(structure) ๋ฑ์ ์ ์ฅ ..