본문 바로가기

모의해킹/리버싱

라이센스 루틴 지나기 : 레나 챌린지(Level 1)

728x90

실행 화면

문제 정보

1. 새로운 license가 필요하다는 메시지가 출력이 된다.

 

F8을 눌러 한 개씩 실행을 시키다 보면 lincense가 필요하다는 메시지가 보인다. 즉, 그 위 가상메모리 주소에서 CMP EAX , -1 (CreateFileA가 실패를 했다라는 의미)을 비교하고 맞으면 0040109A 주소로 점프를 하고, 값이 다르면 점프를 안 하고 메시지를 출력을 시킨다.

 

JNZ -> JMP 로 변경을 해 해당 주소를 지나갈 때, 0040109A 주소로 점프를 할 수 있게 수정을 한다.

 

F8로 계속 실행시키다보면 다른 곳에서 Keyfile is not vaild 메시지가 출력이 되면서 프로그램을 종료시킨다.

 

JNZ에서 점프가 안되고 그 밑에 주소인 JMP가 실행이 되면서 Kefile is not vaild 메시지가 출력이 되는 주소로 이동이 된다.

그래서 JNZ을 JMP로 바꾸는 방식이 아닌 다른 방식인 ZFlag를 변경을 해서 구간을 넘겨본다.

JNZ는 ZFLAG가 1이면 점프를 안 하고 0이 되면 점프를 한다.

수정을 한 뒤에도 다른 부분에서 Keyfile is not vaild 구간으로 이동하는 구간이 있다.

 

참조되어 있는 문자열을 확인해 해당 주소로 이동을 한다.

 

성공 시 해당 메시지가 출력이 돼야 하기 때문에 이 주소로 이동을 해야 한다.

실행 주소를 찾아보자..

 

점프 위치를 보니 00401205 주소로 이동하는 명령어가 있다. 결국 JMP까지 실행 시기 위해서 해당 주소까지 다른 곳으로 안 가게 내려오게 해야 한다.

 

하나씩 실행을 시키면서 내려오니 JL에서 점프가 일어난다.

JL은 위에서 비교를 한 다음 같다 다른다가 아닌 크다 작다의 개념이다. JL은 더 작냐의 의미이다.

반대의 개념으로는 JG 가있다. 

그렇기 때문에 SFLAG를 1에서 0으로 수정을 해준다.

 

마지막인 JL에서 이 있기 때문에 SFLAG을 1에서 0으로 수정을 해준다.

 

그다음 실행을 시키면 JMP 가 실행이 되면서 성공 메시지가 출력이 주소까지 이동을 할 수가 있다.

 

'모의해킹 > 리버싱' 카테고리의 다른 글

PE 분석 : 레나 챌린지 (Level 3) 1  (0) 2023.09.08
라이센스 키 알고리즘 분석하기 : 레나 챌린지 (Level 2)  (0) 2023.09.08
rev-basic-1  (0) 2023.08.14
rev-basic-0  (0) 2023.08.14
Run-Time Packer  (0) 2023.07.18