


1. ํด๋น ์ฝ๋๋ฅผ ๋ณด๋ฉด EDX์ ๊ฐ์ ํ ๋ฐ์ดํธ ์ฉ ์ฝ์ด์ EDI์ ์
๋ ฅํ๊ณ ์๋ค. ๊ทธ ์์
์ ๋ฐ๋ณตํ์ฌ ์ํํ๊ณ ์๋ค.

2. ํด๋น ์ฝ๋์ 1๋ฒ๋ณด๋ค ํฐ Loop๋ฌธ์ด ์๋ค. ์ด Loop๋ฌธ์ ์์ถํด์ ํ ์ฝ๋์ ๊ฐ์ ์ฐจ๋ก๋ก EDI๊ฐ ๊ฐ๋ฆฌํค๋ ์ฒซ๋ฒ์งธ ์น์
์ ์ ๊ณ ์๋ค. ์ด Loop๋ฌธ์ด ๋๋ฌ๋ค๋ ๊ฒ์ ๋ชจ๋ ์์ถ๋ ์ฝ๋๋ค์ด ์ฒซ๋ฒ์งธ ์น์
์ ๋ค ์ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.

3. ํด๋น ์ฝ๋๋ฅผ ํตํด CALL/JMP ๋ช
๋ น์ด์ destination ์ฃผ์๋ฅผ ์๋ ์ฃผ์๋ก ๋ณต์์ํจ๋ค.


4. ํด๋น ์ฝ๋๋ฅผ ํตํด IAT๋ฅผ ์ธํ
ํ๋ค. ESI + 13000์ด๋ฏ๋ก 01014000์ ์ธํ
๋๋ฉฐ, ํ์ธํด๋ณด๋ฉด API ๋ฌธ์์ด์ด ์ ์ฅ๋์ด์์์ ์ ์ ์๋ค.

5. ํด๋น ์ฝ๋๋ฅผ ํตํด pushad์ ๋์๋๋ popad๊ฐ ๋์จ ๊ฒ์ ์ ์ ์๋ค. ์ด ์ฝ๋ ๋์ 0100739D๊ฐ ์ฐ๋ฆฌ๊ฐ ์ฐพ๊ณ ์ ํ๋ OEP(Original Entry Point)๋ก ์๋ณธ ์ฝ๋์ ์์์ ์ด๋ผ๊ณ ํ ์ ์๋ค.
PUSHAD : 8๊ฐ์ ๋ฒ์ฉ ๋ ์ง์คํฐ (EAX-EDI)์ ๊ฐ์ ์คํ์ ์ ์ฅํ๋ค.
POPAD : PUSHAD ๋ช ๋ น์ ์ํด ์คํ์ ์ ์ฅ๋ ๊ฐ์ ๊ฐ ๋ ์ง์คํฐ๋ค์๊ฒ ์ ๋ ฅํ๋ ๋ช ๋ น์ด.