- 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
'문제 풀이' 카테고리의 다른 글
[Reversing.kr & HackCTF] Easy_Keygen & Reversing me (0) | 2022.02.18 |
---|---|
[Dreamhack & Reversing.kr] rev-basic #02 & easy unpack (0) | 2022.02.17 |
[2022 Reversing D+14] abex crackme 01, 02 (0) | 2022.02.15 |
[2022 CTF] 리버싱 - Day 13 (0) | 2022.02.14 |
[HackCTF] Beginner_Heap 문제 풀이 (0) | 2022.02.10 |