Rev/reversing.kr

    [reversing.kr] ImagePrc

    보호되어 있는 글입니다.

    [reversing.kr] Music Player

    File Format : WINDOWS 32-bit 파일 내에 README.txt를 살펴보면 음악 파일의 길이가 1분인지 체크하는 루틴이 있다고 한다. 모든 체크 루틴을 우회하면 플레그를 볼 수 있다고 한다. 🧭 Execute & Analyze 실행하고 아무 음악이나 넣은 상태에서 1분까지 가면 다음과 같은 창이 뜬다. 처음 시작을 저 창이 뜨지 않게 우회하는 것으로 시작해보자. Step 1. Remove the pop-up window 사용하는 string 중에 "1분 미리듣기"가 포함된 것을 찾고 근처 어셈블리어로 가본다. rtcMsgBox 함수가 해당 창을 띄워주고 있다는 걸 알 수 있다. 이제 해당 분기로 점프하는 곳이 어딘지 찾아야 한다. 조금 위를 보다 보면... 하이라이트 된 부분(00404..

    [reversing.kr] Replace

    File Format : WINDOWS 32-bit 이전부터 리버싱 제대로 파일 분석해보고 싶었지만 그 시점에 딱 군대 오는 바람에 접었던 리버싱 다시 시작하려 한다. 안 그래도 큰 바이너리 분석 위해서는 조금씩 조작된 바이너리 보면서 익숙해진 다음 도전해보고 싶다는 생각은 가지고 있었다. 이번 문제부터 리버싱 계속 연습해보자. 🏒 Analyzing Dynamic Analysis 뭔가를 입력할 수 있다. 참고로 문자는 안되고 only 숫자만 된다. 문제는 입력하고 나서 check 버튼을 누르면 그대로 꺼진다. 루틴 분석해서 어떻게 동작하는지 보도록 하자. Static Analysis 먼저 에러나는 부분부터 어딘지 확인해봤다. 0x40466F 주소에서 넘어가질 않는다. [eax] = 0x90 을 하려고 하..

    [reversing.kr] Easy ELF

    File Format : LINUX 말 그대로 쉬운 ELF 파일 분석이다. 🏒 Execute Dynamic Analysis 딱히 실행하지 않아도 된다. Static Analysis 함수 이름은 내부 루틴에 따라 조금 변경시켰다. scanf() 함수는 내부에서 scanf("%s", &input)를 호출한다. input은 전역 변수다. input 다음에도 여러 전역 변수들이 char형으로 선언되어 있다. scanf에서 %s로 받으니 five까지 입력이 충분히 가능하다. 이제 check() 함수에서는 어떻게 검증하고 있는지 확인해본다. 이 함수에서 return 값으로 1이 나와야 flag를 얻을 수 있을 것 같다. 그냥 루틴대로 그대로 적거나 xor 해서 char로 바꿔보면 flag가 뭔지 바로 알 수 있다...