2020/07/20 - [해킹, 보안/리버싱] - [Immunity Debugger] reversing.kr 1번 Easy Crack 문제 풀이
[Immunity Debugger] reversing.kr 1번 Easy Crack 문제 풀이
프로그램의 비밀번호를 맞추는 문제이다. Immunity Debugger를 통해 동적으로 분석하였다. Immunity Debugger에서 EasyCrack.exe를 열어준다. 마우스 오른쪽 클릭 -> Search for -> All referenced text strings..
chanin-diary.tistory.com
이전에 1번을 풀었으니 이제 2번을 풀 차례이다.
ReversingKr KeygenMe
Find the Name when the Serial is 5B134977135E7D13
ReadMe.txt의 내용이다
Serial이 5B134977135E7D13 일 때의 이름을 찾으라고 한다.
Immunity Debugger 오픈
메인함수 진입
수상한 부분 포착!
반복문에서 10 20 30을 ecx에 순서대로 넣고,
입력받은 문자열을 edx에 넣은 다음ecx와 edx를 xor연산 후 나온 값을 push 한다.
esp + 74위치에는 이전에 연산된 값이 존재한다.
다음은 입력받은 시리얼과 생성된 시리얼을 레지스터에 넣고 비교하는 구문이다.
입력받은 시리얼 : esp + 10
생성된 시리얼 : esp + 74
대충 시리얼이 생성되는 알고리즘을 알았으니 코드를 짜 보자.
#include <stdio.h>
void main() {
char tmp[128] = { "", };
int serial[8] = { 0x5B,0x13,0x49,0x77,0x13,0x5E,0x7D,0x13 };
int n[3] = { 0x10,0x20,0x30 };
for (int i = 0, j = 0; i < sizeof(serial) / sizeof(int); i++, j++)
{
if (j > 2)
j = 0;
tmp[i] = serial[i] ^ n[j];
}
printf(tmp);
}
Easy Kegen.exe에서 확인해보자
정답 : k3yg3nm3
'해킹, 보안 > 리버싱' 카테고리의 다른 글
[Immunity Debugger] Hello World 문자열 패치 (2) | 2020.09.24 |
---|---|
레지스터의 종류와 개념 (1) | 2020.09.16 |
함수 호출 규악 (Calling Convention) (1) | 2020.09.15 |
[Immunity Debugger] reversing.kr 1번 Easy Crack 문제 풀이 (2) | 2020.07.20 |