본문 바로가기

Codegate 2014 Clone 요즘은 하고있는 프로젝트들이 많아.. 핑계고 해킹대회에 흥미를 잃어 해킹대회 참여를 잘 하지 않는데요.그래서 이 문제 또한 대회 끝나고 나중에 입수하여 주말에 심심해서 집에서 풀어보았습니다.문제를 하도 안풀어보니 해킹대회 할 때 필요한 리버싱 감이 다 없어지는 것 같네요. Limited processes will be generated.Which one has the flag? IDA와 올디를 사용해 대략 구조를 파악해보니 프로세스가 프로세스를 실행시키고 또 프로세스를 실행시키고.. 하는 구조인데 그 때 인자 값이 계속 바뀝니다. clone_technique.exe 3026539702 3580248161 2clone_technique.exe 466510610 2867152813 3clone_techniq.. 더보기
VirtualQuery 동작 VirtualQuery 함수에 특정 주소를 넘기면 해당 주소를 포함하는 첫 번째 페이지의 속성과 페이지 기본 주소를 가져오고 메모리 상태MEM_COMMITMEM_RESERVEMEM_FREEMEM_PRIVATEMEM_MAPPEDMEM_IMAGE 엑세스 권한PAGE_READONLYPAGE_READWRITEPAGE_NOACCESSPAGE_WRITECOPYPAGE_EXECUTEPAGE_EXECUTE_READPAGE_EXECUTE_READWRITEPAGE_EXECUTE_WRITECOPYPAGE_GUARDPAGE_NOCACHE 위 2개 나열한 메모리 상태 및 엑세스 권한이 다를 때까지 메모리를 스캔 후 해당 사이즈를 바이트 단위로 가져온다.사이즈는 VirtualQuery에 넘긴 주소를 포함하는 페이지 기본 주소부터.. 더보기
Application Verifier 로 프로그램 체크 어떠한 모듈을 개발하다보면 올바르게 동기화 관련 함수를 사용했는지, 유효하지 않은 핸들에 접근 한다던지, 메모리 커럽션이 발생할 수 있는 상황이 있는지 등등을 체크가 필요할 때가 있다. 작은 프로젝트의 경우 어느정도 눈으로 보이지만 수 만줄 수 십만줄 되는 모듈에서는 이를 개발자가 직접 찾는다는건 해킹대회 게싱문제 푸는 것 보다 더 빡치는 상황이 벌어질 수 있다. 애당초에 개발을 신경써서 제대로 하면 되지 않느냐? 라고 질문하시는 분이 계실탠데.. 제품 개발하는 정도로 제대로 프로그래밍을 해보신 분이라면 그건 말도 안되는 일이라는 것을 알 수 있을 것이다. 개발 잘한다는 MS 직원들이 왜 Application Verifier 툴을 만들었을까..? 답이 나온다. 아무튼 이 툴은 만들어진 모듈 안에서 발생될.. 더보기