본문 바로가기

PE Viewer 개발 5일차 오늘은 IMAGE_DOS_HEADER 출력 부분을 서식문자로 바꿔서 정렬을 하였고, IMAGE_NT_HEADER역시 정렬이 되어 있지 않았던 부분을 정렬하였다.그리고 IMAGE_FILE_HEADER의 Machine, TimeDataStamp, Characteristics 부분을 해석해 주는 부분을 넣었고, IMAGE_OPTIONAL_HEADER에서 DataDirectory를 제외한 나머지 부분을 완성시켰다. IMAGE_FILE_HEADER 완성DataDirectory를 제외한 IMAGE_OPTIONAL_HEADER이제 DataDirectory를 추가하고, 각 섹션 헤더들을 출력하는 부분을 추가해야겠다. 더보기
HackIM 2016 Reversing - PrisonBreak HackIM 2016 리버싱 중 500점 짜리 마지막 문제입니다. 이 문제는 대회 당시에는 풀지 못하고 대회가 끝나고 풀어서 아쉬움이 좀 있지만 그래도 풀었기에 풀이를 올립니다. 일단 이 문제 역시 64비트에 이러한 비주얼을 가진 문제입니다. HackIM은 이런 것을 참 좋아하는군요.. 비주얼 마저도 꼭 prison처럼 생겼네요. 헥스레이로 봐 보면 역시 donfos처럼 v50변수에 따라 프로그램 흐름이 달라지는 형식입니다. 일단 처음에 cell을 입력받습니다. cell은 1~3까지 있고 어떤 cell을 입력했냐에 따라 할당된 메모리에 쓰여지는 값이 다릅니다. cell을 입력 받은 후에 이렇게 동적할당을 합니다. 이 과정을 세 번 거쳐서 세 군데에 동적할당을 하고 이렇게 할당된 공간에 값을 씁니다. 여기.. 더보기
PEview Patch 평소에 많은 사람들이 쓰는 PE뷰어인 이 PEView에는 한 가지 단점이 있다. 바로 PE구조를 보면서 헥스 에디터와 같은 것들로 값 변경이 불가능하다는 부분이다. PEView가 멍청하게 파일을 읽기 모드로 열어버려서 쓰기가 안되는 것이다. 평소에 이런 불편함을 가지고 계속 사용하다가 분명히 이렇게 되는 이유는 프로그램을 읽어 들일 때 읽기 모드라서 이런 것이라고 생각하고 직접 올리디버거로 열어서 바이너리를 패치해 주기로 하였다. 먼저 이 PEView는 아무런 패킹이 되어 있지가 않다. 안티디버깅도 없고 해서 분석하기가 굉장히 수월 했었다. 일단 올리디버거로 열어서 CreateFile함수를 호출하는 부분에 브레이크포인트를 걸어 주었다. 여기서 바로 볼 수 있는 것은 바로 CreateFile함수의 Shar.. 더보기