[Riversing]/[코드엔진] ADVANCE (4) 썸네일형 리스트형 [코드엔진] advance04 코드엔진 사이트에 들어가 advance04 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) name 이 주어졌고 시리얼번호를 구하는 문제이다. 프로그램을 실행시켜 보면 아래 그림과 같이 이름과 시리얼번호를 입력하는 창이 뜨는 간단한 프로그램이다. PEiD로 분석 ㄱㄱ 흠 Exeinfo PE 로도 봐야겠다; self write 코드란다. 이런건 처음 봤다. Ollydbg로 분석해보자. intermodular calls 도 text strings 도 나오지 않는다. 색다른 방식으로 패킹이 되어 있는 듯 하다. 프로그램이 위의 그림처럼 00401006 주소로 JMP 하는 루프로 시작되는데 아무래도 이 00401006 주소가 OEP 인 듯 하다. 이 주소로 이동해서 덤프시켜주자. 위 그림과 같이.. [코드엔진] advance03 코드엔진 사이트에 들어가 advance03 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) name이 주어지고 serial 번호를 구하는 문제이다. 우선 PEiD ㄱㄱ 패킹은 되어있지 않고 MASM으로 만들어진 프로그램이다. 실행해보자. 이러한 프로그램이다. Ollydbg로 분석 ㄱㄱ Textstrings 를 확인해 프로그램에 쓰인 문자열을 찾아 이동한다. 위 사진처럼 IstrcmpA 함수로 내 입력값과 시리얼 넘버를 비교한 뒤 실패구문으로 분기한다. 00401196 주소에 bp를 걸고 실행시켜 55 라는 입력값을 넣어보자. 음 이상하게 내 호스트 컴 환경에서는 프로그램을 올리에 올리면 에러가 뜨며 함수들이 제대로 뜨지 않아서 Vmware에서 디버깅 중이었는데 Vm 환경에서는 프로그램의 .. [코드엔진] advance02 코드엔진 사이트에 들어가 advance02 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) 좋아 정답을 찾아보자. 일단 Exeinfo PE ㄱㄱ C++ 로 만들어졌고 패킹은 되어있지 않다. 프로그램을 실행시켜보자. 패스워드를 치는 콘솔창이 뜨고, 입력받은 패스워드가 틀리면 프로그램이 그냥 종료되어 버린다. Ollydbg로 정확한 분석 ㄱㄱ Textstrings를 확인해서 패스워드를 입력받는 곳으로 이동한다. 패스워드를 입력받고 나서 어떠한 루틴을 지난 뒤, 아래 그림처럼 004013C5에서 CALL EDX를 해서 프로그램을 종료시킨다. 그럼 F7로 이 함수 안으로 들어가보자. ECX에는 내가 입력한 값이 들어있고 이 값을 43, 52, 41 ... 과 비교한다. 만약 비교값이 다르면 00.. [코드엔진] advance01 코드엔진 사이트에 들어가 advance01 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) 프로그램이 몇 밀리세컨드 후에 종료되는지를 찾는 문제이다. PEiD로 분석 ㄱㄱ UPX 패킹이 되어 있는 듯 하다. 언패킹을 시켜보자. 프로그램을 실행시켜보면 basic19 번 문제와 보기에는 똑같다. 이강석씨가 프로그램을 만들었다고 나오고, 냅두면 알아서 꺼진다. Ollydbg로 분석 ㄱㄱ 우선 intermodular calls 를 확인해 timeGetTime 함수에 bp를 걸고 F9를 눌러보면 흠, 19번과 정말 유사하다. 올리를 키기 전에는 프로그램 실행이 잘 됐는데, 올리로 프로그램을 실행하니 에러가 뜬다? => 안티디버깅 다시 intermodular calls 에서 안티디버깅 함수인 IsD.. 이전 1 다음