๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง
์ ์ ๋ถ์(Static)๊ณผ ๋์ ๋ถ์(Dynamic) ๊ตฌ๋ถ
์ ์ ๋ถ์ : ์ธ์ ์ธ ๊ด์ฐฐ๋ง์ ํตํด ์ ๋ณด๋ฅผ ์ทจ๋
๋์ ๋ถ์ : ์คํ์ ํตํด ๋์์ ๋ถ์ํ๋ ๊ฒ!
๋๊ฒ ์ ์ ์ธ ๋ฐฉ๋ฒ๊ณผ ๋์ ์ธ ๋ฐฉ๋ฒ์ ์ ์ ํ ํผ์ฉํ๋ฉด ๋์์ ํจ๊ณผ์ ์ผ๋ก ๋ถ์ ๊ฐ๋ฅ!
๋์ ์ธ ๋ฐฉ๋ฒ๋ง์ ๊ณ ์ํ๋ฉด ํฐ ๊ตฌ์กฐ๋ฅผ ๋์น ์ ์๊ณ , ๋ฐ๋๋ก ์ ์ ๋ง ๊ณ ์ํ๋ฉด ์คํ์ ํตํด
์ง๊ด์ ์ผ๋ก ์ ์ ์๋ ๋ถ๋ถ์ ๋ถ์ํ๋๋ผ ์๊ฐ์ ํ๋นํ ๊ฐ๋ฅ์ฑ์ด ๋ํํ์ฃ ..
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ ์ ๋ถ์๊ณผ ๋์ ๋ถ์ ์ค ํ ๋ฐฉ๋ฒ๋ง์ ๊ณ ์ํ๋ ๊ฒ์ด ์๋ ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ๋ฐฉ๋ฒ์ผ๋ก..
์ด๋ค ์ํฉ์ ์ด๋ค ๋ฐฉ๋ฒ์ ์ ํํ ๊ฒ์ด๋๊ฐ ์ค๋ ฅ์ ์ข์ฐํ๋ ์ค์ํ ์์์ฃ
์ ์ ๋ถ์(Static Analysis)๐
์ ์ ๋ถ์(Static Analysis) : ํ๋ก๊ทธ๋จ์ ์คํ์ํค์ง ์๊ณ ๋ถ์ํ๋ ๋ฐฉ๋ฒ
์ ์ ๋ถ์์ ์ฅ์ ๐ค
" ํ๋ก๊ทธ๋จ์ ์ ์ฒด๊ตฌ์กฐ๋ฅผ ํ์
ํ๊ธฐ ์ฝ๋ค! "
์ ์ ๋ถ์ ๋๊ตฌ๋ค์ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ์ ๋ณด๋ฅผ ์ดํด๋ณผ ์ ์๋๋ก ๋์์ ์ฃผ๋๋ฐ, ํ๋ก๊ทธ๋จ์ด ์ด๋ค ํจ์๋ก ๊ตฌ์ฑํ์ง,
ํจ์๋ค์ ์๋ก ์ด๋ค ํธ์ถ ๊ด๊ณ๋ฅผ ๊ฐ๋์ง, ์ด๋ค API๋ฅผ ์ฌ์ฉํ๊ณ ์ด๋ค ๋ฌธ์์ด์ ํฌํจํ๋์ง ๋ฑ ์ข
ํฉ์ ๋ถ์!
๋ถ์์๋ ์ด ์ ๋ณด๋ค์ ๋ฐํ์ผ๋ก ํ๋ก๊ทธ๋จ์ ํฐ ๊ด์ ์์ ์ดํดํ ์ ์๋ค.
๋ํ, ๋ถ์ ํ๊ฒฝ์ ์ ์ฝ์์๋ ๋น๊ต์ ์์ ๋กญ์ต๋๋ค. ์์๋ก์ฌ ์๋๋ก์ด๋ apk ํ์ผ์ด ์์ฃ
๋ง์ง๋ง์ผ๋ก ๋ฐ์ด๋ฌ์ค์ ๊ฐ์ ์
์ฑ ํ๋ก๊ทธ๋จ์ ์ํ์ผ๋ก๋ถํฐ ์์ ํฉ๋๋ค.
๋ง์ฝ ๋ฐ์ด๋ฌ์ค๋ฅผ ๋์ ๋ถ์ํ ๊ฒฝ์ฐ, ๋ฐ์ด๋ฌ์ค๋ฅผ ์ค์ ๋ก ์คํํด์ผ ํ๋ฏ๋ก ์์ ์ ํผํด๋ฅผ ์
์ ์ ์์ผ๋
์ ์ ๋ถ์์ ํ๋ก๊ทธ๋จ์ ์คํํ์ง ์๊ณ ๋ถ์ํ๋ฏ๋ก ์ด๋ฐ ๊ฑฑ์ ใดใด
์ ์ ๋ถ์์ ๋จ์ ๐
์ ์ ๋ถ์์ ํ๋ก๊ทธ๋จ์ ๋๋
ํ(Obfuscation)๊ฐ ์ ์ฉ๋๋ฉด ๋ถ์์ด ๋งค์ฐ ์ด๋ ค์์ง์ฃ
์ต๊ทผ์ ๋ง์ ๊ฐ๋ฐ์๊ฐ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ผ๋ก๋ถํฐ ๋ณดํธ๋ฅผ ์ํด ๋๋
ํ ๊ธฐ๋ฒ์ ์ ์ฉํฉ๋๋ค.
์ ์ฉํ๋ฉด ํ๋ก๊ทธ๋จ ์ฝ๋๊ฐ ์ฌํ ๋ณํ๋์ด ์ด๋ฅผ ์ฝ๊ณ , ์คํ ํ๋ฆ์ ํ์
ํ๊ธฐ ์ด๋ ค์์ง๋๋ค.
์ด๋ฅผ ํด์ (Deobfuscation)ํ๊ธฐ ์ํ ์ฌ๋ฌ ์ฐ๊ตฌ๊ฐ ์งํ๋๋, ์ฌ์ ํ ๋ง์ ์๋น์ค ๋ฌด๋ ฅํ ๋ฐฉ๋ฒ ์๋ ค์ง X
๊ทธ๋ฆฌ๊ณ ์ ์ ๋ถ์๋ง์ผ๋ก๋ ๋ค์ํ ๋์ ์์๋ฅผ ๊ณ ๋ คํ๊ธฐ ์ด๋ ต์ฃ . ํ๋ก๊ทธ๋จ์ ์คํ์ค ์ํธ์์ฉ๋๊ธฐ ๋๋ฌธ!
๋ฐ๋ผ์ ์ด๋ค ํจ์๊ฐ ํน์ ์์ ์ ์ ํํ ์ด๋ค ์ธ์์ ์ ์ญ ๋ณ์๋ฅผ ๊ฐ๋์ง ์คํํ๋์ง ์ ์ ์ผ๋ก ๋ถ์ ํ๋ฌ
์ด๋ฐ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์ด ๋ณต์กํ ์๋ก ๋์ฑ ์ฌ๊ฐํด์ง
์์๋ก IDA๋ก ๋ณด์ฌ์ฃผ๋๋ฐ.. ์ด๊ฑด ๊ท์ฐฎ๊ธฐ๋๋ฌธ์ ๋์ค์ IDA ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์์ ์ค๋ช
ํ ๊ป์
์ด์งํผ ๋ค์ ๋ฌธ์ 4๊ฐ์์ ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก๋ ์์ฐจ๊ฒ ์ธ๊ฑฐ๋๊น์
๋์ ๋ถ์(Dynamic Analysis)๐
๋์ ๋ถ์(Dynamic Analysis) : ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ฉด์ ๋ถ์ํ๋ ๋ฐฉ๋ฒ
๋์ ๋ถ์์ ์ฅ์ ๐ค
" ์ฝ๋๋ฅผ ์์ธํ ๋ถ์ํด๋ณด์ง ์๊ณ ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ต์ ์ธ ๋์์ ํ์
๊ฐ๋ฅ! "
๋๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋ง์ ํจ์๋ก ๊ตฌ์ฑ๋์ด ์๋ก ์ํธ์์ฉ์ ํ๊ธฐ์ ์ ์ ์ผ๋ก๋ง์ ์ดํดํ๊ธฐ ํ๋ค์ฃ
๊ทธ๋ฌ๋ ๋์ ์ ์ด๋ค ์
๋ ฅ์ ๋ํ ๊ฐ๋ณ ํจ์ ๋๋ ํ๋ก๊ทธ๋จ์ ์ถ๋ ฅ์ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์ผ๋ฏ๋ก,
์ด ์ถ๋ ฅ๊ฐ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ๋์์ ์ถ๋ก ์ด ๊ฐ๋ฅํฉ๋๋ค ์์๋ก์จ๋ md5๊ฐ ์์ฃ (์ํธํ)
๋์ ๋ถ์์ ๋จ์ ๐
" ๋ถ์ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ด๋ ต๋ค. "
๋์ ๋ถ์์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด์ ๋ถ์ํ๋ ๊ฒ์ผ๋ก ํ๋ก๊ทธ๋จ ์คํ X → ๋ถ์ X
๊ทธ๋์ ๋ค๋ฅธ ํ๊ฒฝ์ ํ๋ก๊ทธ๋จ์ ๋์ ๋ถ์ํ ๋ VM ๊ตฌ์ถ ํน์ ํ๋ก๊ทธ๋จ ์คํ ์ฅ๋น ๊ตฌ๋งค ๋ฑ ๊ณผ์ ์ด ๋ฒ๊ฑฐ๋ก์
๋ํ, ์์ ์ ์ ๋ถ์์ ์๊ฐํ '๋๋
ํ'์ฒ๋ผ ๋์ ๋ถ์์ ์ด๋ ต๊ฒ ํ๋ ์ฌ๋ฌ ๊ธฐ๋ฒ๋ค์ด ๊ฐ๋ฐ๋์์ต๋๋ค.
๊ทธ ์ค ๋ํ์ ์ธ ๊ฒ์ด ๋์ ๋ถ์์ ์ผ์ข
์ธ ๋๋ฒ๊น
์ ๋ฐฉํดํ๋ ์ํฐ ๋๋ฒ๊น
(Anti Debugging)์
๋๋ค.
์์ธํ ๋ด์ฉ์ ์๋ ๋งํฌ์ ์์ธํ ์ ๋ฆฌ๋์ด ์๋๋ผ๊ณ ์ ๊ฐ๋จ ์ ๋ฆฌํ์๋ฉด
static : ๋๋ฒ๊น ์์ํ ๋ ํ ๋ฒ๋ง ํด์ฒด๋ฅผ ํด์ฃผ๋ฉด ํด๊ฒฐ๋๋ ๊ธฐ๋ฒ
- ์ฃผ๋ก ๋๋ฒ๊ฑฐ๋ฅผ ํ์งํ์ฌ ํ๋ก๊ทธ๋จ์ด ์ ์์ ์คํ ์๋๊ฒ ํ๋ ํ์
dynamic : ๋๋ฒ๊น ์ ์งํํ๋ฉฐ, ํด๋น ๊ธฐ๋ฒ์ ๋ง๋ ๋๋ง๋ค ํด๊ฒฐํด์ผํจ
- ๋๋ฒ๊ฑฐ ํธ๋ ์ด์ฑ์ ๋ฐฉํดํ์ฌ ์๋ณธ ํ๋ก๊ทธ๋จ์ ์ฝ๋์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์๊ฒ ํ๋ ๋ฒ
๋๋ฒ๊ฑฐ ํธ๋ ์ด์ฑ : ๋๋ฒ๊ธฐ(๋๋ฒ๊น ๋นํ๋ ์ชฝ)์ ๋ด๋ถ ์คํ์ ํ๋์ฉ ์คํํด ์ ๋ณด๋ฅผ ์ค์๊ฐ์ผ๋ก
ํ์ธ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ ์ค์ฉ ๋๋ฒ๊น ํ๋ ๋ฐฉ์
๋จ์ํ ์ํฐ ๋๋ฒ๊น
์ ์๋ก, ์๋์ ์ฝ๋์ฒ๋ผ ์์ ์ด ๋๋ฒ๊น
๋นํ๊ณ ์๋์ง ๊ฒ์ฌํ๊ณ , ๋๋ฒ๊น
์ค์ด๋ฉด
ํ๋ก๊ทธ๋จ์ ๊ฐ์ ๋ก ์ข
๋ฃ์ํค๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋์ ๋ถ์์ ํ๋ ๋ชจ์ต์ ์์ผ๋ก ํ War_Game์์ ์น์ ํ๊ฒ ์ ๋ฆฌํด๋๋ฆด ๊ฒ์ด๊ธฐ์
๋์ค์ ๋งํฌ ๋ฌ์๋๋ฆด๊ป์ ํ๋ฒ ํด๋ณด์ค ๋ถ์ ์ฝ๋ ์ฌ๋ ค๋๋ฆด๊ป์
123456789 //helloworld.c#include <stdio.h>int main(){int n = 0x31337;printf("Hello World 0x%x\n", n);return 0;}cs
์ฐธ๊ณ ์๋ฃ
์ฐธ๊ณ ์ด๋ฏธ์ง
'๐โSystem_Study > ๐โDreamhack_Reversing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
rev-basic-0 (0) | 2022.05.17 |
---|---|
Exercise: Helloworld (0) | 2022.05.16 |
x86 Assembly (0) | 2022.05.12 |
Computer Science (0) | 2022.05.12 |
Background: Binary (0) | 2022.04.13 |