리버싱kr easy_Keygen 풀이 1
reversing.kr 두 번째 문제로 이지키젠을 풀어보았다.
이전에 이지크랙미보다 훨씬 분석을 덜 하고 게싱으로 푼 게 조금 아쉽다면 아쉽다.
실행 시 이름과 시리얼을 받아 맞음이나 틀림을 띄워준다.
그리고 reversing.kr 풀이에 필요한 auth 키는
제공된 텍스트 파일의 예시 시리얼일 때의 이름을 찾는게 auth 키를 찾는 것이다.
x64dbg로 열어보자.
easy keygen모듈을 들어가니 바로 눈에 띄게 사용자 코드가 보인다.
일단 이름을 1234를 넣고 bp를 걸어서 잠깐 보기로 했다.
함수를 호출하고 난 뒤 스택창의 "1234"가 들어가있는 주소를 덤프창에서 확인해 보니 잘 들어가있다.
문자열들은 esp + 18의 주소의 위치에 상주해 있는 것을 다음 실행문 확인 테이블?에서 볼 수 있다.
다음으로,
아래를 내려가 보니 반복을 통해 문자열을 패치 시킬 것 같은 위치를 발견했다.
bp - f9를 통해 반복문을 빠져나왔다.
그 후에 시리얼을 입력받는 부분을 5678을 입력해 보았다.
호출부를 빠져나와서
아래를 보니 문자열을 dl, cl을 통해 비교하려는 실행문이 보인다.
esp + 74번지에 시리얼로 추측되는 문자열이 들어가 있고, 현재 실행문에 걸쳐진 esi가 그 주소를 가지고 있는 것을 볼 수 있다.
덤프창에서도 이전엔 아무것도 없었던 위치에 esi가 가리키는 문자열이 잘 들어있는 것을 확인할 수 있다.
저 주소에 담긴 문자열이 시리얼인지 실행창을 하나 띄워 단순히 값을 복사해 때려박아 보았다.
너무 쉽게 풀려버렸다. 그런데 문제에서 요구하는 auth 키를 찾으려면 반대로 생각해야 하기 때문에 현재는 알 수 없다.
시리얼이 이름을 가지고 일정 값으로 변하는 거라면, 그 루틴을 풀 방법을 찾아보아야 한다.
댓글
댓글 쓰기