본문 바로가기

2023 리버싱

[Reversing.kr] easy keygen

 

 

실행파일에서는 Input Name, Input Serial을 입력받고 이를 CMP해서 Wrong 나 Correct이라는 메시지를 출력한다!!

 

 

입력 받은 문자열을 가져와서 하나씩 0x10, 0x20, 0x30과 차례로 XOR 연산을 진행하고 있다.

 

[ESP+ESI+C] 안에 있는 값을 갖고오고, [ESP+EBP+10]의 값을 가져온다

 

 


[ESP+ESI+C]에 0x10, [ESP+EBP+10]에는 사용자가 입력한 첫번째 값이 들어온다.

 

 

 

 

이제 그 둘을 xor 해준다~~~!!!!

 

그리고 ESI에 생성한 시리얼값을 저장하고, 입력받은 시리얼값과 비교해서 일치할 경우 "Correct!"를, 아니면 "Wrong"을 띄우는 곳으로 jmp한다.
 


 

 

플래그값을 얻어내기 위해, c 코드를 작성해보았다.

 

#include <stdio.h>

int main() {
	char name[] = { 0x5B, 0x13, 0x49, 0x77, 0x13, 0x5E, 0x7D, 0x13 };
	int x[] = { 0x10, 0x20, 0x30 };
	int j = 0;
	for (int i = 0; i < 8; i++) {
		printf("%c", name[i] ^ x[j]);
		j++;
		i++;
		printf("%c", name[i] ^ x[j]);
		j++;
		i++;
		printf("%c", name[i] ^ x[j]);
		j = 0;
	}
	printf("\n");
}


 

 

K3yg3nm3
 

 

'2023 리버싱' 카테고리의 다른 글

[Reversing.kr] easy elf  (0) 2023.05.28
[Reversing.kr] easy unpack  (0) 2023.05.28
패킹과 언패킹  (0) 2023.05.21
DLL, IAT, EAT 분석  (0) 2023.05.13
notepad.exe pe 헤더 분석  (0) 2023.04.30