실행만 하면 된다는데 문제에서 주는 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 |