cmd๋ก ์คํ์์ผ ์๋ฌด ์ซ์๋ ๋ฃ์ด๋ณธ๋ค.
๊ธฐ์ ์ ์ผ์ด๋์ง ์์๋ค..ใ ใ
IDA๋ก ๋จผ์ ์ด์ด์ค๋ค.
๋ฌธ์์ด์ ์ ๋ ฅ ๋ฐ์ ํจ์๋ก ์ฐธ๊ฑฐ์ง์ ํ๋ณํด Correct๋ Wrong์ ์ถ๋ ฅํ๋ค.
sub_140001000 ํจ์๊ฐ ์ด๋ค ํจ์์ธ์ง ๋๋ธ ํด๋ฆญํด ์์๋ณธ๋ค.
๋ณต์กํด๋ณด์ธ๋ค.
0x18๋ฒ ์ด๋ค ๋ฌธ์์ด ๋น๊ต๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ ๊ฐ๋ค.
byte_140003000[i]๋ ์ ๋ ฅํ ๋ฌธ์์ด์ธ ๊ฒ ๊ฐ๊ณ
์ค๋ฅธ์ชฝ์ ์ข ๋ ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ฆฌํ๋ฉด ( i ^ ์ ๋ต๋ฌธ์์ด[ i ]) + 2 * i ) ์ด๋ค.
์ฆ ์ ๋ต ๋ฌธ์์ด์ ์์๋๋ก 0๋ฒ๋ถํฐ 23๋ฒ๊น์ง(0x18=24) ๋ฐ๋ณต ํ์์ธ i์ XOR ์ฐ์ฐํ ๋ค 2 * i๋ฅผ ๋ํด์ค ๊ฒ์ด input ๊ฐ์ด์ด์ผ ํ๋ค๋ ๋ป์ด๋ค.
๋๋ฒ๊ฑฐ๋ก๋ ์ด์ด๋ณด์. ๋ฌธ์์ด ์ฐธ์กฐ๋ฅผ ํตํด input ๋ฌธ์์ด์ด ๋ค์ด๊ฐ ๋ถ๋ถ์ ์ฐธ์กฐํ๋ฉด ๋ฉ์ธํจ์๋ฅผ ๋ณผ ์ ์๋ค.
๋ฉ์ธํจ์์์ input ์ฒ๋ฆฌ ๋ถ๋ถ๊ณผ ๋ฌธ์์ด ์ฒ๋ฆฌ ๋ถ๋ถ ํจ์๋ ๊ฑด๋๋ฐ๊ณ ๊ทธ ๋ค์ ํจ์๋ฅผ ๋ณธ๋ค.
์ด ํจ์ ๋ค์ test exe, exe๋ฅผ ํ ๋ค ๋ฐ๋ก je, ์ฆ ๊ฐ์ผ๋ฉด ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ๋ก ๋ฐํ์ํค๋ ํจ์๋ก ์ฐ๊ฒฐ๋๋ค.
๊ทธ๋ผ ๋งํ๋๊น test exe exe ์ง์ ํจ์์์ ์น๋ถ๋ฅผ ๋ด์ผ ํ๋ค.
๊ทธ ํจ์๋ก ๋ค์ด๊ฐ๋ณธ๋ค.
IDA์์ ์ดํด๋ณธ ๊ฒ ๋ง๋ค๋ ๊ฑธ ์ ์ ์๋ค.
rax๋ฅผ ์ด์ฉํด cmp ํ๋ฉฐ 0x18๋ฒ ๋ฐ๋ณต ์ค ๋ช ๋ฒ์งธ์ธ์ง ์ฒดํฌํ๊ณ ์๊ณ
rcx์ ์ํ๋ ๋ต์ lea ์ํจ ๋ค ํ๋์ฉ ๊ณ์ฐํ์ฌ ๋น๊ตํ๊ณ ์๋ค.
rcx์ ๋ค์ด๊ฐ 7FF753193000์ด๋ผ๋ ์ฃผ์์ ๋ญ๊ฐ ๋ค์ด๊ฐ ์๋์ง ๋ชจ๋ฅด๋ ๋คํ๋ก ๋ฐ๋ผ๊ฐ๋ณด์.
๋ฐ๋ผ๊ฐ๋ณด๋ฉด 49, 60, 67, ... 45๊น์ง 16์ง์๋ก 24๊ฐ์ ์ซ์๊ฐ ์ ์ฅ๋์ด ์๋ค.
์ด์ ์ด๊ฑธ ๊ฒฐ๊ณผ ๊ฐ์ด ๋๊ฒ ๊ณ์ฐํ ๋ค ๋ฌธ์๋ก(์์คํค๋ก) ๋ด๋ณด๋ด๋ฉด ๋๋ค.
๊ทธ๋ผ ์ด์ ์ํ๋ ๋ต์ด ๋ฌด์์ธ์ง ๊ฑฐ๊พธ๋ก ํ๋ก๊ทธ๋๋ฐ ํด ์์๋ด ๋ณด์.
IDA์์ ์ดํด๋ณธ ๊ฒ์ฒ๋ผ 'input ๊ฐ=( i ^ ์ ๋ต๋ฌธ์์ด[ i ]) + 2 * i )'์ด๋ฏ๋ก
์ ๋ต๋ฌธ์์ด์ ์์๋ด๋ ค๋ฉด ๊ฑฐ๊พธ๋ก ๊ณ์ฐํด์ผ ํ๋ค.
i ^ ์ ๋ต๋ฌธ์์ด[ i ] = input๊ฐ - 2 * i
์ ๋ต๋ฌธ์์ด[ i ] = (input๊ฐ - 2 * i ) ^ i (XOR์ XOR์ ํ๋ฉด ์๋๋ก ๋์๊ฐ๊ธฐ ๋๋ฌธ)
์์ ์์ฒ๋ผ ๋๋ฏ๋ก
C++์ ์ฌ์ฉํด ๋ฌธ์์ด์ 7FF753193000์ ๋ค์ด์๋ ์ซ์๋ค 24๊ฐ๋ฅผ ์ ๋ ฅํด์ฃผ๊ณ
์ ๋ต์ด ๋ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅ์์ผฐ๋ค.
์ ๋ต ๋ฌธ์์ด์ด ๊น์ฐํ๋ค.
cmd ์ฐฝ์ ์ ๋ ฅํด์ฃผ๋ฉด
Correct~๏ผ๏ฟฃ๏ธถ๏ฟฃ๏ผโใ
'๐ง ๋ฆฌ๋ฒ์ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(โ_โ)๏ผDreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-5 (0) | 2023.11.01 |
---|---|
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-4 (0) | 2023.11.01 |
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-2 (0) | 2023.10.31 |
๊ธฐํ ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: easy-crackme1 (1) | 2023.10.09 |
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-1 (1) | 2023.10.09 |