본문 바로가기

Hacking/Reversing

CodeEngn_basic_15

Basic RCE L15

 

Name이 CodeEngn일때 Serial을 구하시오

 


 

패킹은 되어있지 않았다.

프로그램 실행

 

 

실패시 

 

 

자 이제 정답을 찾으러 가자

 


 

이런 맞는 Serial 값을 찾는 종류의 문제를 풀기 위해서는 정답 메세지가 있는 text를 찾아가야한다.

Ollydbg에서 문제 파일을 연 뒤에 Search for > All referenced text strings을 통해 text가 모여있는 곳을 확인한다.

 

 

켜자마자 약간 위에 Try Again!이라는 문자와 같이 CRACKED라는 문자열이 저장되어있다 이 부분을 호출하는 곳에서 정답이 있을 것이기 때문에 진입해보자.

 

 

그러면 좀 바로 위에 CMP비교문과 JNZ와 같은 점프문이 있는데 JNZ가 만약에 ZF가 0이 아니라면 Try Again이 있는 주소로 점프한다. 때문에 JF가 0이 되게 만들기 위해서 같은 값을 입력해주어야 하는데 이 부분이 Serial값을 비교하는 부분이다.

가장 먼저 CMP부분에 BreakPoint를 걸고 실행시키면 아래에 비교값이 뜨는데

 

 

위와 같이 빨간칸에 EAX와 0045B844주소의 값과 비교한다. 

EAX에 있는 값 A는 10진수로 10이기 때문에 내가 입력한 값이고 0045B844가 우리가 입력할 Serial값이다, 0045B844에는00006160이라는 값이 있는데 이를 10진수로 바꾸면 우리가 원하는 Serial값이 나온다.

'Hacking > Reversing' 카테고리의 다른 글

CodeEngn_basic_17  (0) 2020.07.24
CodeEngn_basic_16  (0) 2020.07.18
CodeEngn_basic_14  (0) 2020.07.05
CodeEngn_basic_13  (0) 2020.07.05
CodeEngn_basic_12  (0) 2020.06.27