์ด๋ฒ ๋ฌธ์ ๋ ๊ฐ๋จํ Flow graph ์ด๋ฏธ์ง๋ฅผ ๋ณด๊ณ Thread Mutex๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ ๋๋ค.
Flow์ ์์์ ๋๋ค.
์์ ๋ถ๋ถ๋ถํฐ mutex๋ฅผ ์์ฑํ๋ CreateMutexA ํจ์๊ฐ ์์ง๋ง, ์ด์ด์ GetLastError๊ฐ ํธ์ถ๋๋ ๊ฒ์ผ๋ก ๋ณด์ ๋ฎคํ ์ค ์์ฑ์ด ์คํจ๋์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. GetLastError ํจ์๋ ์ค๋ฅ ์ฝ๋๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์คํจํ ์ด์ ๋ฅผ ํ์ ํ๋ ค๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ ์๋๋ฅผ ์ดํด๋ณด๋ ๋ค์ ํ ๋ฒ CreateMutexA ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค. ์ด๋ ์ฑ๊ณต์ ์ผ๋ก ํธ์ถ๋์๊ธฐ์ CreateMutexA ๋ฐํ๊ฐ์ ํตํด ๋ฎคํ ์ค ํธ๋ค hMutex์ ์ ์ฅํ๊ณ ์์ต๋๋ค.
์ ๋ต์ธ Thread Mutex๋ ๋ฎคํ ์ค ์ด๋ฆ์ ์ฐพ์ผ๋ผ๋ ๊ฒ ๊ฐ์ผ๋ CreateMutexA ํจ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ค์ฌ๋ค๋ณด๋ฉด ๋๊ฒ ์ต๋๋ค.
CreateMutexA ํจ์ ์ ์
HANDLE CreateMutexA(
LPSECURITY_ATTRIBUTES lpMutexAttributes, // ๋ณด์ ์์ฑ
BOOL bInitialOwner, // ์ด๊ธฐ ์์ ์ ์ฌ๋ถ
LPCSTR lpName // ๋ฎคํ
์ค ์ด๋ฆ
);
CreateMutexA ํจ์์ 3๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ์ผ๋ฉด ๋๊ฒ ์ต๋๋ค.
์คํ์ ์ฒ์์ผ๋ก pushํ๋ ๊ฒ์ด 3๋ฒ์งธ ํ๋ผ๋ฏธํฐ๊ฐ ๋๊ฒ ์ ธ
'Study > wargame' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Dreamhack] Secure Mail (1) | 2024.12.31 |
---|---|
[Dreamhack] rev-basic-2 (3) | 2024.12.27 |
[Dreamhack] rev-basic-1 (0) | 2024.12.19 |
[Dreamhack] rev-basic-0 (3) | 2024.12.18 |
[Reversing.kr] 4๋ฒ Music Player (4) | 2023.02.14 |