역연산 코드 질문

void Decode(char *encoded) {
XORWithParam2(encoded, "\x11\x33\x55\x77\x99\xbb\xdd");
DecWithParam2(encoded, -13);
IncWithParam2(encoded, 77);
XORWithParam2(encoded, "\xef\xbe\xad\xde");
IncWithParam2(encoded, 90);
DecWithParam2(encoded, 31);
XORWithParam2(encoded, "\xde\xad\xbe\xef");
}

int main(void) {
char data[] = "\xf8\xe0\xe6\x9e\x7f\x32\x68\x31\x05\xdc\xa1\xaa\xaa\x09"
"\xb3\xd8\x41\xf0\x36\x8c\xce\xc7\xac\x66\x91\x4c\x32\xff\x05"
"\xe0\xd9\x91";
Decode(data);
printf("Decoding result: %s\n", data);
return 0;
}

이 역연산 코드에서 XORWithParam2의 "\x11\x33\x55\x77\x99\xbb\xdd","\xef\xbe\xad\xde","\xde\xad\xbe\xef"의 값과 main함수의 data배열의 값들은 어디서 나왔는지 궁금합니다.

#reversing
작성자 정보
답변 1
kimht
공부벌레

안녕하세요, kha2님.

기드라에서
아래 사진에서 우측 빨간 네모에 표시된 DAT_00402072를 마우스로 더블클릭하면,
디스어셈블 리스팅이 DAT_00402072 위치로 이동하며,
좌측 빨간 네모와 같이, 해당 위치에 저장된 데이터(XOR 키)를 볼 수 있습니다.

Screenshot 2025-01-20 at 5.28.29 PM.png

감사합니다.

2025.01.20. 17:30
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기