cmd ์ฐฝ ์ด์ด์ ์๋ฌด๊ฑฐ๋ ์ ๋ ฅ.
ํ๋ ธ๋ค.
๋๋ฒ๊ฑฐ๋ก ์ด์ด์ ์ดํด๋ดค๋ค.
์ฐ์ ๋ฌธ์์ด ์ฐธ์กฐ๋ฅผ ํตํด ๋ฉ์ธํจ์๋ฅผ ์ฐพ์์ฃผ๊ณ
์ด ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก test, je ์ง์ ํจ์๊ฐ ์ค์ํ๋๊น ๊ฑฐ๊ธฐ๋ก ์ด๋ํด์ค๋ค.
ํจ์์ ๋ํ ์์ธํ ์ค๋ช ์ ์ ์บก์ณ ํ๋ฉด ์ฃผ์์ ๋ฌ์ ๋์๋ค.
์ ๋ต ์ฃผ์ ๋ ๊ณณ์ ๋คํ๋ก ๋ฐ๋ผ๊ฐ๋ค.
์ด์ ์ฝ๋๋ฅผ ์ง๊ธฐ ์ํด IDA๋ก ์ด์ด์คฌ๋ค. sub ์ด์ฉ๊ตฌ ํจ์๋ก ๋ค์ด๊ฐ์ฃผ๋ฉด
___ROL1___ ํจ์๊ฐ ๋์ ๋๋ค.
์ธํฐ๋ท์ ์ฐพ์๋ณด๋ shift ์ฐ์ฐ๊ณผ ๊ด๋ จ๋ ํจ์์ด๋ค.
#include<stdio.h>
int ror(int x, int n) {
int shift = x >> n;
int src = x << (8-n);
src &= 255;
return shift | src;
}
int main()
{
int arr[0x1F]={0x52, 0xDF, 0xB3, 0x60, 0xF1, 0x8B, 0x1C, 0xB5, 0x57, 0xD1, 0x9F, 0x38, 0x4B, 0x29, 0xD9, 0x26, 0x7F, 0xC9, 0xA3, 0xE9, 0x53, 0x18, 0x4F, 0xB8, 0x6A, 0xCB, 0x87, 0x58, 0x5B, 0x39, 0x1E};
int a, i, b;
for(i=0; i<0x1F; i++)
{
a=i^arr[i];
b=ror(a, i&7);
printf("%c", b);
}
}
rol์ ๋ฐ๋๋ก ํด์ค์ผ ํ๋๊น ror ํจ์๋ฅผ ์ผ๋ค. ror ํจ์๋ ์ธํฐ๋ท์์ ์ฐพ์ ์ผ๋ค..ใ ใ
C++ ๋๋ฆฌ๋ฉด ์ด๋ ๊ฒ ๋์จ๋ค.
Correct~๏ผ๏ฟฃ๏ธถ๏ฟฃ๏ผโใ
'๐ง ๋ฆฌ๋ฒ์ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-9 (1) | 2023.11.01 |
---|---|
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-8 (0) | 2023.11.01 |
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-6 (1) | 2023.11.01 |
(โ_โ)๏ผDreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-5 (0) | 2023.11.01 |
Dreamhack ๋ฆฌ๋ฒ์ฑ ๋ฌธ์ ํ์ด: rev-basic-4 (0) | 2023.11.01 |