์ผ๋จ ๋ค์ด๊ฐ์ ์๋ฌด๊ฑฐ๋ ์ ๋ ฅํด๋ดค๋ค.
IDA๋ก ์ด์ด๋ดค๋ค. sub_120001000ํจ์์ ์ํด ์ ๋ ฅ ๊ฐ์ ์ฐธ ๊ฑฐ์ง์ด ํ๋จ๋๋ค.
๋ค์ด๊ฐ๋ณด์.
๋ค์ด๊ฐ๋ณด๋๊น ๋ณต์กํ๋ค.
0x1C๋ฒ ๋ฌธ์๋ฅผ ๋น๊ตํ๋ผ๋๊น ์๋ง๋ ์ ๋ ฅ๊ฐ์ 0x1C๊ฐ์ ๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ธ ๊ฒ ๊ฐ๋ค.
์ด์ฉ๊ตฌ์ ์ฉ๊ตฌ ๊ณ์ฐํด์ ๊ฐ์ง ์์ผ๋ฉด return 0 ์ฆ ๊ฑฐ์ง์ด๋ผ๊ณ ํ๋จํ๋๊น !=๊ฐ ์๋๋ผ =๊ฐ ๋๊ฒ ํด์ค์ผ ๋ ๋ฏ!
๋๋ฒ๊ฑฐ๋ก ์ด์ด์คฌ๋ค.
Input ๋ฌธ์์ด ์ฐธ์กฐํด ๋ฉ์ธํจ์๋ก ๋ค์ด๊ฐ์คฌ๋ค.
์ด์ ๋ฌธ์ ๋๋ก๊ฐ ๋ง์ฐฌ๊ฐ์ง๋ก test, je ์ง์ ํจ์๊ฐ ์ค์ํ๊ฒ ๋ค.
ํจ์๋ก ๋ค์ด๊ฐ ๋ดค๋ค.
rac๋ฅผ ์ด์ฉํด compare ๋ช ๋ น์ด๋ก ๋น๊ตํด๊ฐ๋ฉด์ ๋ช ๋ฒ์งธ ๋ฌธ์์ธ์ง ์ฒดํฌํ๊ณ ์๋ค.
๊ทธ ๋ฐ์ผ๋ก ์ฌ๋ฌ ๋ช ๋ น์ด๊ฐ ๋ณด์ธ๋ค.
๋ชฐ๋๋ ๋ช ๋ น์ด๋ฅผ ๊ธฐ๋กํด๋ณด๋ฉด sar๋ ๋ถํธ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ ๋ช ๋ น์ด์ด๊ณ ,
shl์ shift ์ฐ์ฐ ๋ช ๋ น์ด์ด๋ค.
ํ์ฌํผ ์ด๋ฐ ๋ณต์กํ ๊ณ์ฐ์ ํด์ 7FF6A20E3000 ์ฃผ์์ ๋ค์ด๊ฐ ์๋ ๊ฐ์ด ๋ก๋ ๋ rdx๊ฐ ๋ฌธ์์ด์ ์์์ ์ธ ์ ๋ต ๋ฌธ์์ด๊ณผ ๋น๊ตํ๊ณ ์๋ค.
7FF6A20E3000์ ๋ญ๊ฐ ๋ค์ด์๋ ๋คํ๋ก ๋ฐ๋ผ๊ฐ๋ณด์.
0x24, 0x27, 0x13, 0xC6, 0xC6, 0x13, 0x16, 0xE6, 0x47, 0xF5, 0x26, 0x96, 0x47, 0xF5, 0x46, 0x27, 0x13, 0x26, 0x26, 0xC6, 0x56, 0xF5, 0xC3, 0xC3, 0xF5, 0xE3,0xE3๊ฐ ๋ค์ด์๋ค.
์ด์ IDA๋ฅผ ๋ณด๋ฉฐ ์ด๋ค ๊ณ์ฐ์์ด์๋์ง ๊ตฌ์ฒด์ ์ผ๋ก ์๊ฐํด๋ณด์.
IDA์ ์ ํ์๋ ๊ฒ์ ๊ทธ๋๋ก ๋ณต๋ถํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
((unsigned __int8)(16 * *(_BYTE *)(a1 + i)) | ((int)*(unsigned __int8 *)(a1 + i) >> 4)) != byte_140003000[i]
์ด๊ฑธ ์ข ๋ ๋ค๋ฌ์ผ๋ฉด, ์๋์ ๊ฐ์ด ๋๋ค.
((16 * * ( ์ ๋ต ๋ฌธ์์ด [ i ] ) | (( ์ ๋ต ๋ฌธ์์ด [ i ] ) >> 4) != ์ ๋ ฅ๋ฌธ์
C++๋ก ์์ฑํด๋ดค๋ค.
#include<stdio.h>
int main(void)
{
int a, i;
int arr[28]={0x24, 0x27, 0x13, 0xC6, 0xC6, 0x13, 0x16, 0xE6, 0x47, 0xF5, 0x26, 0x96, 0x47, 0xF5, 0x46, 0x27, 0x13, 0x26, 0x26, 0xC6, 0x56, 0xF5, 0xC3, 0xC3, 0xF5, 0xE3,0xE3};
for(i=0;i<28;i++)
{
a=(16 * arr[i]) | arr[i] >> 4 ;
printf("%c", a);
}
return 0;
}
C++๊ฒฐ๊ณผ๊ฐ์ ์๋์ ๊ฐ๋ค. 28๊ธ์์ธ๋ฐ๋ ์๊ฐ๋ณด๋ค ์งง์ ๋ณด์ธ๋ค.
cmd ์ฐฝ์ผ๋ก ์ด์ด์ ์ ๋ ฅ๊ฐ์ ์ ๋ ฅํด์ฃผ๋ฉด
Correct~๏ผ๏ฟฃ๏ธถ๏ฟฃ๏ผโใ
์ง๋ฌธ (โ_โ)๏ผ
IDA์ ์ ํ ์ฝ๋๋ฅผ ๋ณด๋ฉด 16 ๊ณฑํ๋ผ๋ ๋ช ๋ น์ด๊ฐ ์๊ณ F0 AND ์ฐ์ฐ์ ๋ ์ป๊ณ ๋ด๋ ์๋๋ฐ
x64 gbg๋ก ๋ณด๋ฉด 16์ ์ด๋์๋ ์๊ณ ๋์ F0 ์ฐ์ฐ์ด ์๋ค. ์ ๋์ด ๋ค๋ฅผ๊น? ๊ทผ๋ฐ ๊ฒฐ๊ณผ๋ ์ด๋ป๊ฒ ๊ฐ์๊ฑธ๊น?
+IDA์ 16์ ๊ทธ๋ฅ 16์ผ๋ก ์จ์ผ ๋ต์ด ๋์ค๊ณ 16์ง์ ์ฒ๋ฆฌํ๋ฉด ์ ๋๋๋ฐ IDA๋ 10์ง์ ๊ธฐ๋ฐ์ธ๊ฐ?
'๐ง ๋ฆฌ๋ฒ์ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-6 (1) | 2023.11.01 |
---|---|
(โ_โ)๏ผDreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-5 (0) | 2023.11.01 |
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-3 (0) | 2023.10.31 |
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-2 (0) | 2023.10.31 |
๊ธฐํ ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: easy-crackme1 (1) | 2023.10.09 |