문제를 올리디버거로 열어보았다.pushad로 시작하기에 peid로 문제를 열어보았다. upx로 패킹되어 있다는 것을 알게되었다.CFF Explorer을 이용해 언패킹을 해보자. 사진에 보이는 순서대로 누르면 간단하게 언패킹을 할 수 있다. 언패킹된 파일이다.올리디버거로 열어보자. oep는 코드 시작점인 00401000 이다.stolenbyte는 총 12바이트이다.언패킹된 파일에서 정보를 얻었으면 패킹된 파일을 열어보자. pophad에 bp를 걸고 f9를 눌러 실행시켜보면, 문제를 실행시켰을 때 처음 뜨는 문자열이 나타나게된다. 이로써 stolenbyte는 6A 00 68 00 20 40 00 68 12 20 40 00 임이 밝혀졌다.언패킹된 파일에 stolenbyte를 넣어주자. 언패킹된 파일을 열고 s..
CodeEngn
올리 디버거로 열어보니 pushhad 명령어가 먼저 보인다.패킹된 듯 하다. peid로 확인해보니 aspack 2.000으로 패킹되어있다. 패킹을 풀어보자. 우선 oepcode를 구해야한다.친절하게도 pophad와 returnpoint에 bp가 걸려있었다. oep는 보통 return뒤에 나오는 코드이다.따라서 oep는 00445834 이다. oep를 구했으니 ollydump라는 플러그인을 통해서 덤프를 뜨자. 혹여나 ollydump플러그인이 없다면 위 파일을 다운받아서 플러그인폴더(올리디버거에 설정해둔)에 넣으면 된다. 표시된 부분들을 사진과 같이 바꾸자.(이 글과 똑같이 따라왔다면 굳이 바꾸지않아도 바껴있을거다.)rebuild부분은 꼭! 체크를 해제해야한다! 제대로 설정해준 후 dump를 누른다. 1차..
코드엔진 8번 문제 : OEP구하기 우선 주어진 프로그램을 다운받고 열어봅시다. 조그만 계산기네요. OEP를 구하랬으니 PEiD를 열어 패킹되었는지 확인해봅시다. UPX로 패킹되어있네요! 언패킹해줍시다. CFF에 파일을 불러온 후 언팩을 누르고 저장을하면 요롷게 언패킹한 파일이 생깁니다. 이제 올리디버거로 언패킹한 파일을 열어봅시다. 짠 OEP는 프로그램의 시작점이므로 답은 에서 앞의 초록부분에 있는 숫자겠네요! 이 문제는 언패킹을 하지 않고 패킹된 파일에서 OEP를 구해서 풀 수도 있습니다. 우선 언패킹된 실행파일을 올리디버거로 불러온 후 아래로 내리다보면 모든 레지스터에 값을 넣고 마지막에 실행위치로 점프시켜주는 명령문을 볼 수 있습나다.바로 여기서 점프 뒤의 위치가 프로그램이 시작하는 위치입니다. ..
코드엔진 베이직 7번 문제 : c드라이브의 이름이 CodeEngn일 경우 생성되는 시리얼에서 CodeEngn이 변한 것 알아오기. 우선 다운받은 파일을 그냥 실행시켜봅시다. 건들지말고 그냥 Check를 눌러보니 짠! 틀렸을 때와 아무 것도 입력하지 않았을 때 나타나는 문자열을 알게됐으니 올리디버거로 열어봅시다. 문자열을 찾아봐야겠죠?[Search for]->[마우스 우클릭]->[All referenced text strings] 바로 찾았네요! 더블클릭해서 들어가봅시다. 에러문과 성공문이 뜨는 부분의 위 쪽을 보니 CMP명령어가 있네요. CMP명령어로 EAX의 값과 0을 비교하는 것 같아요.CMP부분에 BP를 걸고 실행시켜봅시다. EAX가 1 이네요. 0으로 바꿔서 실행시켜보면, 이렇게 시리얼이 맞다고 ..