reversing.kr3 [Reversing.kr] Music Player 문제 음악 파일을 열고 재생시킬 수 있는 프로그램이다. 다운로드할 때 같이 딸려온 ReadMe파일을 보면 1분 미리듣기만 제공하는 프로그램이며 1분 재생을 검사하는 루틴을 다 우회하면 플래그를 획득할 수 있다고 합니다. 시작 아무 음악파일 실행시킨 결과 1분만 재생되고 그 이후부터는 해당 메시지 박스가 뜹니다. 그러면 일단 디버깅툴에서 문자열 참조를 통해 해당 박스를 생성하는 부분을 찾아주겠습니다. 위 코드가 메세지 박스를 띄워주는 코드입니다. 1분 미리 듣기를 '검사'하는 것이니까 분기문이 있을 거라 생각하고 위로 올라가 보면 [ jl music_player.4045FE ] 분기문이 보인다. 스페이스바를 눌러 jl을 jmp로 패치하여 해당 분기문을 검사 없이 그냥 넘어가버리도록 만들어주자. 파일을 수정.. 2023. 6. 24. [Reversing.kr] ImagePrc 문제 이렇게 낙서가 가능한 조그마한 창이 나온다. Check를 누르면 Wrong이라고 나오면서 종료가 된다. 그렇다면 Wrong이 나오지 않는 그림을 찾아야하는것 같다. 근데 비트단위일텐데 그게 가능할까...? 일단 해보자 시작 x32 dbg를 이용해서 실행시켜보면 일단 EntryPoint는 현재 이 부분이다. 이제 아까 발견했던 Wrong를 찾기위해 문자열 참조를 해보자 디버깅을 해보면서 주석을 좀 써놨는데 &MessageBoxA를 통해서 Wrong메세지 박스를 띄우므로 이전에 정답을 검사하는 부분이 있을것이라고 생각하였다. 때문에 위로 올려보면 GetDIBits라는 함수가 실행되는것이 보인다. 이 함수가 무었인지 하니.. 얾.... 대충 해석해보면 지정된 호환 비트맵의 비트를 검색하고 지정된 형식을 .. 2023. 6. 23. [Reversing.kr] Replace 문제 개요 특정 값을 입력해서 Wrong이 안나오게 바꿔야 하는것 같다. x32 dbg사용 우선 진입점이다. 여기서 살짝만 위로 올려보거나 아님 문자열 찾기에 들어가보면 바로 "Correct"를 찾을 수 있다. "Correct"위를 보면 GetDlgItemInt함수가 보인다. 맨 위의 DialogBoxParamA함수를 통해 받은 값을 저장하는 함수이다. 중단점을 설정하고 F9를 통해서 실행시켜보자. 테스트 값으로 123(Hex : 7B)를 입력해 보았다. eax에 입력값이 저장되었다. 중단점을 잡은 함수를 통해서 입력값을 16진수로 바꿔 eax에 저장하는함수 일 것이다. 이후 eax의 값을 4084D0에 저장. replace.40466F함수로 들어가보자 들어가서도 바로 replace.40467A함수를 실.. 2023. 6. 22. 이전 1 다음