1. 프로그램 분석 우선 프로그램이 어떻게 작동하는지 알기 위해, 실행시켜보자 $ ./simple_crack_me_2 12341234123412342134123412341234123412342134 your input length is wrong x( $ ./simple_crack_me_2 12342134asdfasdfadsf your input length is wrong x( $ ./simple_crack_me_2 asdfasfasd123 your input length is wrong x( $ ./simple_crack_me_2 123123asdasd your input length is wrong x( $ 우선, 입력 값을 입력했을 때, 입력 값의 길이가 틀리다는 문자열이 출력된다. 입력 값의 일..
Simple Crack Me | 워게임 | Dreamhack Simple Crack Me Description Exercise: Simple Crack Me에서 실습하는 문제입니다. 이 문제는 사용자에게 숫자를 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너 dreamhack.io 1. 시작 단계 프로젝트를 생성해준다. 생성하지 않으면 Tool Chest에 용 그림이 뜨지 않는다. 들어오면 처음에는 프로젝트 폴더가 비어있을 텐데, File에서 Import File을 해서 simple_crack_me를 해준다. 처음엔 여기서 불러오기가 안되길래 Ghidra를 처음부터 다시 깔았는데 꼭 User 폴더에 생성해야한다. 그 이유는 나도 모르겠다..
◾문제 파악 프로그램을 실행시키면 문자열을 입력하라는 Input 메시지가 뜨게 되고 아무 문자열이나 입력하면 Wrong 이라는 결과 값이 표시가 된다 고로 Correct를 표시하게 하는 문자열도 존재한다는 것을 알 수 있다 ◾정적 분석 IDA 프로그램을 사용하여 chall0.exe 파일을 분석해본다 우선 Correct라는 문자열이 사용된 위치를 찾기 위해 문자열 검색을 하자 shift + F12를 누르면 문자열 리스트가 나오게 된다 여기서 Correct라는 문자열을 쉽게 찾을 수 있다 더블 클릭하여 어셈블리 코드에서 문자열을 출력하는 위치를 찾는다 버퍼에 Correct가 저장되어 출력되는 것이므로 Buffer를 선택하고 x 단축기를 눌 상호참조를 해본다 그러면 이런식으로 메인 함수로 이동하게 되고, F5..