
[Reversing] rev-basic-1 dreamhack stage 5 - (1)
2022. 5. 19. 18:12
DreamHack/Reversing (Dreamhack)
Exercise: rev-basic-1 1. ์ ์ ๋ถ์ main ํจ์ ์ฐพ๊ธฐ ํ๋ก๊ทธ๋จ์ด ๋ก๋ ๋๋ฉด mainํจ์๋ฅผ ์ฐพ์ง ์์๋ IDA๊ฐ ์ค์ค๋ก ํ๋จํ mainํจ์๋ฅผ ๋ณด์ฌ์ค๋ค. IDA๊ฐ ์๋ฌด๋ฐ ์ ๋ณด ์์ด mainํจ์๋ฅผ ์ฐพ์ ์ ์์๋ ์ด์ ๋ ์ปดํ์ผ๋ฌ๋ณ๋ก mainํจ์๋ฅผ ํธ์ถํ๋ ํจํด์ด ์ผ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค. F5ํค๋ฅผ ๋๋ฌ์ ๋์ปดํ์ผ ๋ mainํจ์๋ฅผ ๋ถ์ํด๋ณด์. char v4[256]; // [rsp+20h] [rbp-118h] BYREF memset(v4, 0, sizeof(v4)); ๋จผ์ v4๋ผ๋ 256 ๋ฐ์ดํธ์ char๋ฐฐ์ด์ 0์ผ๋ก ์ด๊ธฐํํ๋ค. sub_1400013E0("Input : ", argv, envp); sub_140001440("%256s", v4); sub_1400013E0 ํจ์์ sub_1400..

[Reversing] rev-basic-0 dreamhack stage 5
2022. 5. 19. 00:05
DreamHack/Reversing (Dreamhack)
Exercise: rev-basic-0 ์ฐ์ mac์์ IDA๊ฐ ๋๋ฒ๊น
์ด ๋์ง ์์๊ธฐ ๋๋ฌธ์ % brew install gdb ๋ค์์ ๋ช
๋ น์ด๋ฅผ ํตํด ํฐ๋ฏธ๋์ gdb๋ฅผ ์ค์นํ๋ค. ๋ถ๋ ์ ์๋ํ๊ธธ..(์ด ๋ฌธ์ ์์ ๋๋ฒ๊น
ํ๋ ๋ถ๋ถ์ด ์๋ค.) 1. ์คํ ๋งฅ๋ถ์์ exeํ์ผ ์คํ์ด ๋์ง ์๊ธฐ ๋๋ฌธ์ wineskin์ ๊น์์ ์คํ์ ํด๋ดค๋ค. 'Input : ' ์ด๋ผ๋ ๋ฌธ์์ด ๋ค์ AAAA๋ผ๊ณ ์
๋ ฅํ๋ฉด ์๋ Wrong์ด ๋์์ผํ๋๋ฐ ํ๋ก๊ทธ๋จ์ด ๊บผ์ ธ๋ฒ๋ ธ๋ค.. ์๋ ๊ฐ์ผ๋ฉด Wrong์ด ์ถ๋ ฅ๋๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ์ฌ์ฉ์์๊ฒ ๋ฌธ์๋ฅผ ์
๋ ฅ๋ฐ๊ณ ํ๋ก๊ทธ๋จ ๋ด๋ถ์ ์ด๋ค ๊ฒ์ฆ๊ณผ์ ์ ๊ฑฐ์ณ ์
๋ ฅํ ๋ฌธ์์ด์ด ๊ฒ์ฆ์ ํต๊ณผํ๋ค๋ฉด Correct, ํต๊ณผํ์ง ๋ชปํ๋ค๋ฉด Wrong์ ์ถ๋ ฅํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค๋ ๊ฑธ ์ ์ ์๋ค. ๋ฌธ์ ์ ์ ๋ต(flag..

[Reversing] 4์ฃผ์ฐจ dreamhack stage 5 - (1)
2022. 5. 14. 12:05
DreamHack/Reversing (Dreamhack)
1. The Interactive DisAssembler 2. IDA ๋๋ฌ๋ณด๊ธฐ Functions window IDA์์ ๋ถ์ํ ํ๋ก๊ทธ๋จ์ ํจ์๋ฅผ ๋์ดํ๋ค. ํด๋น ์ฐฝ์์ Ctrl + F ๋จ์ถํค๋ฅผ ํตํด ์ํ๋ ํจ์๋ฅผ ์ฐพ์ ์ ์๋ค. Graph overview ํจ์๋ฅผ ๊ทธ๋ํํํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค๋ค. ํด๋น ์ฐฝ์ ํตํด ํจ์์ ํ๋ฆ์ ํ์
ํ ์ ์๋ค. Output window ๋ถ์ ๊ณผ์ ์ ๋ฉ์์ง๋ก ์ถ๋ ฅํ๋ค. ํด๋น ์ฐฝ์ ํตํด IDA์ ๋ถ์ ๊ณผ์ ์ ์ ์ ์๋ค. View ๋์ปดํ์ผ ๊ฒฐ๊ณผ, Hex-View, ๊ตฌ์กฐ์ฒด ๋ชฉ๋ก ๋ฑ์ ํ๋ฉด์ ํ์ํ๋ค. 3. IDA ๊ธฐ๋ฅ ์์ ์ฃผ์ ๋ฐ ๋ ์ด๋ธ ์ด๋ ๋จ์ถํค G๋ฅผ ์ด์ฉํด ์์ ์ฃผ์ ๋๋ ๋ ์ด๋ธ๋ก ์ด๋ํ ์ ์๋ค. ํจ์ ๋ฐ ๋ณ์ ์ด๋ฆ ์ฌ์ค์ ๋จ์ถํค N์ ์ฌ์ฉํด ํจ์ ๋ฐ ๋ณ์ ์ด๋ฆ์ ์ฌ์ค..

[Reversing] 3์ฃผ์ฐจ dreamhack stage 3 - (1)
2022. 5. 8. 19:48
DreamHack/Reversing (Dreamhack)
x86 Assembly๐ค: Essential Part(2) 1. x86-64 ์ด์
๋ธ๋ฆฌ ๋ช
๋ น์ด Pt.2 Opcode : ์คํ ๐งฑ x64 ์ํคํ
์ณ์์๋ ๋ค์์ ๋ช
๋ น์ด๋ก ์คํ์ ์กฐ์ํ ์ ์๋ค. push val : val์ ์คํ ์ต์๋จ์ ์์ ์ฐ์ฐ) rsp -= 8 [rsp] = val ์์ ) [Register] rsp = 0x7fffffffc400 [Stack] 0x7fffffffc400 | 0x0

[Reversing] 3์ฃผ์ฐจ dreamhack stage 3
2022. 5. 8. 19:25
DreamHack/Reversing (Dreamhack)
x86 Assembly๐ค: Essential Part(1) 1. ์ด์
๋ธ๋ฆฌ์ด์ x86-64 ์ด์
๋ธ๋ฆฌ ์ธ์ด ๐ค ์ด์
๋ธ๋ฆฌ ์ธ์ด : ์ปดํจํฐ์ ๊ธฐ๊ณ์ด์ ์นํ๋๋ ์ธ์ด ๊ธฐ๊ณ์ด๊ฐ ์ฌ๋ฌ ์ข
๋ฅ๋ผ๋ฉด ์ด์
๋ธ๋ฆฌ์ด๋ ์ฌ๋ฌ ์ข
๋ฅ โท CPU์ ์ฌ์ฉ๋๋ ๋ช
๋ น์ด ์งํฉ๊ตฌ์กฐ(Instruction Set Architecture, ISA)๋ IA-32, x86-64, ARM, MIPS ๋ฑ ์ข
๋ฅ๊ฐ ๋งค์ฐ ๋ค์ํ๋ค. x64 ์ด์
๋ธ๋ฆฌ ์ธ์ด ๊ธฐ๋ณธ ๊ตฌ์กฐ ๐งฑ x64 ์ด์
๋ธ๋ฆฌ ์ธ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ํ๊ตญ์ด๋ณด๋ค๋ ํจ์ฌ ๋จ์ํ ๋ฌธ๋ฒ ๊ตฌ์กฐ๋ฅผ ์ง๋๋ค. ์ด๋ค์ ๋ฌธ์ฅ์ ๋์ฌ์ ํด๋นํ๋ ๋ช
๋ น์ด(Operation Code, Opcode)์ ๋ชฉ์ ์ด์ ํด๋นํ๋ ํผ์ฐ์ฐ์(Operand)๋ก ๊ตฌ์ฑ๋๋ค. ๋ช
๋ น์ด ๐ซ ๋ช
๋ น ์ฝ๋ ๋ฐ์ดํฐ ์ด๋(Data Transfer) mov, lea..

[Reversing] 2์ฃผ์ฐจ_dreamhack stage 3 - (1)
2022. 4. 30. 16:41
DreamHack/Reversing (Dreamhack)
๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์(Memory Layout) : ํ๋ก์ธ์ค ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์ฑ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(Virtual Memory) : ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค์๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด์ค -> ์ฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฉ๋๋ณ๋ก ๊ตฌํํ๊ณ , ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ๊ตฌํ์ ์ ์ฅ → ์ ์ฌํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์๋๊ธฐ ๋๋ฌธ์ ์ด์์ฒด์ ๋ ๊ฐ ๊ตฌํ์ ์ ์ ํ ๊ถํ ๋ถ์ฌ ๊ฐ๋ฅ → ๊ฐ๋ฐ์๋ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ง๊ด์ ์ผ๋ก ์ดํด ๊ฐ๋ฅ 1. ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ์น์
๐ ์น์
: ์ ์ฌํ ์ฉ๋๋ก ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๊ฐ ๋ชจ์ฌ์๋ ์์ญ ex) '.text' ์น์
์๋ PE์ ์ฝ๋๊ฐ ์ ํ์๊ณ , '.data'์๋ PE๊ฐ ์คํ ์ค์ ์ฐธ์กฐํ๋ ๋ฐ์ดํฐ๊ฐ ์ ํ์๋ค ์๋์ฐ์ PE ํ..

[Reversing] 2์ฃผ์ฐจ dreamhack stage 3
2022. 4. 30. 02:19
DreamHack/Reversing (Dreamhack)
1. ์ปดํจํฐ ๊ตฌ์กฐ์ ๋ช
๋ น์ด ์งํฉ ๊ตฌ์กฐ ์ปดํจํฐ ๊ตฌ์กฐ ๐ป ์ปดํจํฐ ๊ตฌ์กฐ(Computer Architecture) : ์ปดํจํฐ๊ฐ ํจ์จ์ ์ผ๋ก ์๋ํ ์ ์๋๋ก ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด์ ๊ธฐ๋ฅ์ ๊ณ ์ํ๊ณ , ์ด๋ค์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ โท ์ปดํจํฐ์ ๊ธฐ๋ฅ ๊ตฌ์กฐ์ ๋ํ ์ค๊ณ, ๋ช
๋ น์ด ์งํฉ๊ตฌ์กฐ, ๋ง์ดํฌ๋ก ์ํคํ
์ฒ, ๊ทธ๋ฆฌ๊ณ ๊ธฐํ ํ๋์จ์ด ๋ฐ ์ปดํจํ
๋ฐฉ๋ฒ์ ๋ํ ์ค๊ณ ๋ฑ์ด ํฌํจ๋จ ์ปดํจํฐ์ ๊ธฐ๋ฅ ๋ฐ ์ค๊ณ : ์ปดํจํฐ๊ฐ ์ฐ์ฐ์ ํจ์จ์ ์ผ๋ก ํ๊ธฐ ์ํด ์ด๋ค ๊ธฐ๋ฅ๋ค์ด ์ปดํจํฐ์ ํ์ํ์ง ๊ณ ๋ฏผํ๊ณ , ์ค๊ณํ๋ ๋ถ์ผ ํฐ ๋
ธ์ด๋ง ๊ตฌ์กฐ ํ๋ฒ๋ ๊ตฌ์กฐ ์์ ๋ ํ๋ฒ๋ ๊ตฌ์กฐ ๋ช
๋ น์ด ์งํฉ๊ตฌ์กฐ (Instruction Set Architecture) : CPU์ ๋ช
๋ น์ด์ ๋ํ ์ค๊ณ x86, x86-64 ARM MIPS AVR ๋ง์ดํฌ๋ก ์ํคํ
์ฒ (Micro Archite..

[System Hacking] 1์ฃผ์ฐจ dreamhack stage 2 - (1)
2022. 4. 7. 23:12
DreamHack/Reversing (Dreamhack)
1. ์ ์ ๋ถ์ (Static Analysis) : ํ๋ก๊ทธ๋จ์ ์คํ์ํค์ง ์๊ณ ๋ถ์ํ๋ ๋ฐฉ๋ฒ โ ์ ์ ๋ถ์์ ์ฅ์ ๐ - ํ๋ก๊ทธ๋จ์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ํ์
ํ๊ธฐ ์ฝ๋ค. - ๋ถ์ ํ๊ฒฝ์ ์ ์ฝ์์๋ ๋น๊ต์ ์์ ๋กญ๋ค. · ๋ถ์์ ์ง์ํ๋ ์ ์ ํ ๋๊ตฌ๋ง ๊ฐ์ถ๋ค๋ฉด ์๋ ๊ฐ๋ฅ - ๋ฐ์ด๋ฌ์ค์ ๊ฐ์ ์
์ฑ ํ๋ก๊ทธ๋จ์ ์ํ์ผ๋ก๋ถํฐ ์์ ํ๋ค. โ ์ ์ ๋ถ์์ ๋จ์ ๐ - ํ๋ก๊ทธ๋จ์ ๋๋
ํ (Obfuscation)๊ฐ ์ ์ฉ๋๋ฉด ๋ถ์์ด ๋งค์ฐ ์ด๋ ค์์ง๋ค. - ์ ์ ๋ถ์๋ง์ผ๋ก๋ ๋ค์ํ ๋์ ์์๋ฅผ ๊ณ ๋ คํ๊ธฐ ์ด๋ ต๋ค. · ์ด ๋ฌธ์ ๋ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์ด ๋ณต์กํ ์๋ก ๋์ฑ ์ฌ๊ฐํด์ง โ โ โ ์ ์ ๋ถ์์ ์ ๋ํ์ ์ธ ์ ์ ๋ถ์ ๋๊ตฌ ์ค ํ๋์ธ IDA๋ฅผ ์ฌ์ฉํ์ฌ HelloWorld.exe๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ด๋ฉด ์๋์ ๊ฐ๋ค. ์ด๋ฏธ์ง์ ๊ฐ์ด๋ฐ ๋ถ๋ถ์์..