728x90
  • rev_basic #00

 

: rev-basic-0 문제는 사용자에게 문자열을 입력 받아 correct! 를 출력하게 하는 입력값을 찾는 문제이다.

 

: 다운 받은 문제 파일을 cmd 창으로 열어 아무런 값을 입력하게 되면 Wrong 이 출력된다. 

 

여기서 문제가 발생하는데 해당 파일은 64비트 exe 프로그램이어서 ollydbg, immunity debugger 에서는 열 때 오류가 발생하여 IDA를 이용하여 열어주었다.

( 처음에는 x62dbg 프로그램을 이용하려 했지만, 설치가 되지 않았다...ㅠ)

 

 

: input은 문자열이 입력받는 곳으로 main 에서 찾게 되면 입력받은 값은 rcx에 들어가는 걸 확인 할 수 있다.

 

이후 문자열을 대조하여 프린트하는 부분인 sub_140001000에 들어 가게 되면, 문자열 대조 함수인 strcmp 함수를 확인 할 수 있다.

 

 

: Compar3_the_str1ng 이 rdx에 들어가 rcx와 rdx가 strcmp를 통해 비교되는 것을 확인할 수 있다.

 

https://dreamhack.io/wargame/challenges/14/

 

rev-basic-0

Reversing Basic Challenge #0 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출

dreamhack.io

 

 

 

 


  • rev_basic #01

 

이 예제는 rev-basic-0 문제와 유사하게 correct를 출력하는 입력값을 찾아내는 문제이다.

 

 

cmd 창에 다운받은 파일을 실행하여 아무값을 입력해봤다. 결과는 wrong이 나왔고, 이제 IDA로 분석해보자!

 

IDA로 main을 열어보니 rev-basic-0와 유사한 형태인 것을 확인 할 수 있다. 입력한 값은 rcx로 들어가고, 문자열을 비교해 출력하는 형태이다.

 

sub_140001000에 들어봤더니 문자열 비교 함수인 strcmp가 없고 데이터 전송 명령어인 movzx 가 있다. 

ptr [rcx+rax]를 eax로 전송한다. 

movzx 명령어 다음줄에 cmp 로 통해 eax와 43h을 비교하는 것을 보고 flag 값을 유추할 수 있었다.

정리하면 Compar3_the_ch4ract3r 문자열이 나온다. 

입력값을 넣어주니 correct 가 출력되었다.

 

https://dreamhack.io/wargame/challenges/15/

 

rev-basic-1

Reversing Basic Challenge #1 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출

dreamhack.io

 

+ Recent posts