본문 바로가기

OS 개발 및 공부 스터디 3주차 보호되어 있는 글입니다. 더보기
[2016 CAT HolyShield] Reversing - Who Am I? 이번 CAT HolyShield에서 푼 리버싱 문제인데 가상화 문제였습니다. 풀 때 꽤 재미있었던 문제라서 좀 더 분석을 해 보고 이렇게 풀이를 올립니다. 먼저 실행 모습입니다. 파일은 exe파일 하나와 dll파일 하나가 주어집니다. exe를 먼저 IDA로 열어서 보면 이러한 부분이 존재하는데 분석하면 주어진 dll파일을 열어서 0x1E00영역에 입력한 값으로 덮어 씌웁니다. 헥스에디터로 원래 0x1E00부분을 보면 Nice_To_Meet_You~~!!라는 문자열이 존재하는데 이를 입력 값으로 덮어 씌웁니다. 그리고 로드한 dll에서 checkfunc함수의 주소를 가지고 와서 인자로 넘겨주고 호출합니다. 그럼 이제 dll을 보겠습니다. IDA로 까 보면이게 전부입니다. 처음에는 가상화 일 것이라고 생각을.. 더보기
2016년 1월 22일 금요일 오늘은 OS 스터디에서 64비트 프로세서에 관한 운영모드, 레지스터, 메모리 관리기법에 대해서 발표했다. 확실히 페이징이나 세그먼테이션 같은 기법들을 읽어만 보다가 직접 말하면서 설명을 해 보니 설명해 주면서 나도 다시 한 번 더 이해가 되는듯 했다. 다음주에 부팅 과정과 부트로더 작성을 성휘가 발표할 것이다. OS도 어렵지만 참 재밌는 것 같다. 그리고 pwnable.kr의 alloca문제를 다시 붙잡았다.. 끝없는 삽질을 통해 내 우분투에서는 드디어 쉘을 따는데 성공했다. 그리고 기쁜 마음으로 pwnable.kr서버에 접속하여 똑같이 했는데 쉘이 오지가 않았다... gdb로 똑같이 따라 했는데 그냥 메모리 값이 다르게 나온다.. 내 우분투에서는 eip가 의도한대로 변조가 잘 되는데 pwnable.kr.. 더보기