- Today
- Total
Phantom
음... ELF바이너리 문제인데 Wrong과 Correct이런문제같다. 아직 PE와 ELF에 대해 자세히 공부하지는 않았다. 나중에 공부를 해야겠다 아무튼 gdb로 디버깅하려했는데 file명령어로 보니 stripped 되어있었다. IDA로 바이너리를 열어봐야겠다. Main 함수는 이렇다. xor_func를 보면 다음과 같다. 배열이 선언되는데 char[5]이다. 이 조건들을 간단히 하면.. char data[5]; data[0] = data[0] ^ 0x34 data[1] == '1' data[2] = data[2] ^ 0x32 data[3] = data[3] ^ 0x88 data[4] == 'X' data[5] ==NULL data[2] == '|'(0x7C) data[0] == 'x' -> data[..
This MP3 Player is limited to 1 minutes. You have to play more than one minute. There are exist several 1-minute-check-routine. After bypassing every check routine, you will see the perfect flag. 이것이 ReadMe에 적혀있는 문장이다. 이 MP3 Player는 1분으로 제한되어있다. 1분 이상 재생해야 한다. 몇몇의 1분체크루틴이 존재한다. 모든 체크루틴을 우회한 후에, 너는 완전한 flag를 볼 수 있을것이다. 라고 발번역을 하면 이렇게 된다 하핫.. 실행 모습은 이렇다. 그리고 1분이 지나면 이렇게 메시지가 출력되며 다시 위의 상태로 돌아간다. 우..
ReversingKr UnpackMe Find the OEP ex) 00401000 이번 txt파일에는 이렇게 적혀있었다 OEP를 찾으라는 것이다. OEP(Original Entry Point) : 프로그램의 진짜 실행 위치를 뜻한다. 패킹된 바이너리에서 언패킹을 하고 OEP로 가게 되면 원래 프로그램의 흐름이 보이게 되는 것이다. 문제는 패킹되어있으나 무엇으로 되어있는지 모른다. 직접 패킹을 풀어봐야 알것 같다. 음...UPX처럼 처음에 PUSHAD라도 있으면 POPAD를 찾을텐데 그런게 없다.. 직접 트레이싱을 해봐야겠다. 이 문제는 풀이는 쉽다 근데 하다보니 분석을 하게 되었다. 우선 kernel32.dll아스키값을 PUSH하고 LoadLibrary 함수를 실행시켜 라이브러리를 로드하고 라이브러리 ..