본문 바로가기

리버싱

[CodeEngn]코드엔진 basic RCE L07 문제: 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가 시리얼을 비교하는 것이므로, ollydbg를 사용하면 될 듯 하다. ollydbg에서 문자열을 확인함으로써 문제를 풀 수 있을 듯 하다. 근데 주어진 문자열을 다 넣어봤는데도 풀리지 않았다. 그래서 일단 특정한 문자열로 이동해보았다. Well Done이 나오려면 00401117로 이동하도록 해야한다는 것을 확인했다. 그러려면 EAX와 0이 같아야 한다. 일단 serial을 입력하는 칸에 아무거나 넣어보도록 한다. 나는 그냥 1004를 넣어봤다. 근데, String1이 달라졌음을 확인했다. 이제 시리얼넘버에 무엇을 넣어야 둘이 같아지는지는 유추해낼 수 있다. String1을 넣으면 되는.. 더보기
[CodeEngn]코드엔진 basic RCE L05 이 프로그램의 등록키는 무엇인가? 파일을 HxD로 열어보면 UPX가 보인다. UPX를 통해 unpack을 해주어야 한다. unpacked되었음을 확인할 수 있다. 원래는 PEiD를 통해 패킹여부를 확인할 수 있다. 하지만 HxD에서 이미 패킹됨을 확인했으니, 이는 넘어가도록 한다. 이 문제는 등록키에 대한 문제이므로, 거의 100% string에 관한 문제일 것이다. strings를 이용해 풀어보려 했으나, 결과가 너무 많이 나와서 ollydbg를 사용하기로 했다. ollydbg를 통해 봤지만 그렇게 의미 있는 정보를 얻진 못했다. 때문에 오른쪽 버튼을 눌러 all referenced text strings를 확인한다. strings를 통해 문제를 풀 수 있음을 유추해낼 수 있다. 어떤 문자열이 있고, .. 더보기
[CodeEngn]코드엔진 basic RCE L04 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가? 3번과 마찬가지로 함수의 이름을 찾는 문제이다. dependency walker를 사용하여 문제를 풀어보도록 한다. 함수의 기능을 확인할 수 있다. 디버거를 탐지하는 함수의 이름을 유추하면서 문제를 풀면 된다. 끝 더보기
[CodeEngn]코드엔진 basic RCE L 03 Basic RCE L03을 풀어보도록 한다. 비주얼베이직에서 스트링 비교함수 이름은? 함수의 경우는 dependency walker 또는 CFF Explorer을 사용하는 게 편하다. 나는 dependency walker를 사용했다. Dependency walker의 함수를 확인할 수 있으니, 함수의 이름으로 스트링 비교함수를 생각해보면 된다. 끝 더보기
[CodeEngn]코드엔진 basic RCE Level 02 이번엔 2번을 풀어본다. 패스워드로 인증하는 실행파일이 손상되어 실행이 안 되는 문제가 생겼다. 패스워드가 무엇인지 분석하라고 한다. ollydbg로 실행해보았으나, 되지 않음을 확인했고 다른 프로그램을 사용해보기로 결심했다. PEview랑 HxD 중에 고민을 해봤는데, PEview는 하나하나 끊어져 있어서 그냥 HxD로 열어봤다. HxD를 통해 열어보았더니, MZ 즉 exe파일임은 확인했다. 내려서 뭔가 비밀번호가 될만한 문자열을 찾아보도록 한다. 유추되는 아이디를 찾고 문제풀이를 종료한다. 더보기
[CodeEngn]코드엔진 Basic RCE Level01 Basic RCE Level01을 보도록 한다. HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가라고 묻고 있다. 파일을 우선 다운받아보고, 이를 ollydbg로 열어본다. ollydbg 사용법은 아래를 봐주면 된다.(x32dbg, x64dbg와 유사한 방식이기 때문에 아래를 봐도 무방하다) https://happylulurara.tistory.com/3?category=768326 일단 실행을 해보았다. 딱 봐도 'Nah... This is not a CD-ROM Drive!'라고 할 듯 하다. F8을 통해 프로그램을 실행해보도록 한다. 'Make me think your HD is a CD-Rom.'으로, HD를 CD-Rom으롤 만들어달라고 한다. .. 더보기
PE파일 분석-메모장 우리는 평소 메모장을 많이 씁니다. 그래서 PEview를 통해 메모장을 분석해봤습니다. -PEview에서 메모장을 열었습니다. :4D 5A가 먼저 적힘을 보아 little Endian을 통해, 시작점이 5A4D임을 확인할 수 있었습니다. :Value에서 ‘}’을 통해 표시한 부분에서 “This program cannot be run in Dos mode”라는 것을 보아 이 프로그램은 DOS 모드에서 실행될 수 없는 것을 볼 수 있습니다. -IMAGE_DOS_HEADER :Value에서 IMAGE_DOS_SIGNAATURE MZ라고 적힌 것을 보아, exe파일임을 확인할 수 있습니다. :e_magic필드에서 4D 5A로 PE파일 구조임을 확인할 수 있습니다. :e_lfanew필드-가리키는 0xF0으로 가면.. 더보기
[Reversing]ollydbg로 시작주소와 main함수 확인하기 안녕하세요. 오늘은 ollydbg로 시작주소와 main 함수 확인하는 시간을 가져보겠습니다. 바로 실행하면 이 위치에 있는 것을 볼 수 있는데요. 여기가 바로 시작주소입니다. ollydbg는 단축키를 좀 알아놔야 하는데요 F9 결과만 빠르게 보고 싶을 때 F8 함수 빠르게 넘어가면서 실행 F7 함수 하나하나의 줄 확인하면서 실행 F2 원하는 코드에 break Ctrl+F2 처음부터 시작 아쉽게도 ollydbg는 하나 잘못 입력했다? 하면 Ctrl F2로 처음부터 다시 시작해야 합니다. +주석처리를 원하실 땐 ';'를 이용해서 사용하시면 됩니다. 저는 그래서 F8로 빠르게 넘어갔습니다. 그럼 어떤 한 순간 멈춰서 'Hello World!'가 보이는데요. 멈춘 곳이 main함수입니다. 잘 봐주셔서 감사합니다. 더보기

반응형
LIST