본문 바로가기

리버싱

드림핵 Batch Checker

실행만 하면 된다는데 문제에서 주는 prob.bat 파일을 실행시키면 wrong이라고만 뜬다.

배치 파일이 정확히 어떤 종류의 파일인지 찾아보았다.

배치 파일은 사용자의 입력이나 개입 없이 순서대로 처리되는 명령어의 모음, 리스트이다.

프로그램을 로드하고, 한 번에 여러 프로세스를 실행하거나 일반적이고 반복적인 작업을 수행하는데 사용된다.

 

배치 파일은 그냥 메모장 등의 에디터에서 명령어를 쭉 쓰고 .bat으로 저장만 하면 만들 수 있다.

명령어에는 echo, pause, startshutdown 등이 있다.

문제의 배치 파일을 메모장으로 열어보니 

이런 식으로 SET이 쭉 있고 

그 밑에 이런식으로 문자열, ~숫자,숫자%% 가 있었다.

SET은 변수를 지정하는거 같고 밑에%%는 뭔지 몰랐는데 찾아보니

%변수:~a, b% 가 해당 변수의 a번째 문자부터 b길이만큼 문자열을 읽어오는 코드였다.

정리하자면, SET에서 변수를 만들어서 문자열을 저장하고, 밑에서 그 문자열 변수들을 이용한 것이다.

그래서 그냥 단순하게 파이썬 코드를 만들어서 변수를 똑같이 만들고 밑에서 사용한 코드도 똑같이 짜서 어떤 코드인지 알아보았다.

노가다 하느라 좀 걸리긴 했지만 금방 할 만했다.

이렇게 하고 저장된 문자열을 출력해보면

이렇게 나온다.

대충 FLAG== 다음에 나오는게 플래그인거 같고 echo는 명령어니까 echo 전까지만 잘라서

DH{BA7cH_cAN_hiDe_u5iNg_text}를 제출했더니 맞았다.

 

근데 풀고 나서 풀이를 봤더니 내가 진짜 바보 같은 짓을 했다는 걸 깨달았다.

그냥 문제에서 준 배치 파일에 

SET이 끝나고 cls 다음에 echo를 이렇게 넣어주고 파일을 실행시키면 flag가 나온다..

 

'리버싱' 카테고리의 다른 글

드림핵 Small Counter 롸업  (1) 2024.06.01
드림핵 Easy Assembly 롸업  (0) 2024.05.30