crackme

코드엔진 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으로 바꿔서 실행시켜보면, 이렇게 시리얼이 맞다고 ..
코드엔진 베이직 6번 문제 : OEP와 시리얼번호 찾기 먼저 그냥 실행시켜봅시다. 이번 문제도 틀렸을때 문자열을 출력하는 함수를 찾고 살펴보면 되겠네요.디버거로 실행시켜봅시다. 처음 시작이 PUSHAD 네요. 패킹되었는지 확인해봅시다. UPX로 패킹되어있네요. OEP를 구해야하므로 언패킹을 해줍시다. 짠 코드엔진 베이직 5번 문제를 풀때와 똑같은 방법으로 압축을 풀어줍니다. 올리디버거로 열어볼까요? 이제 아까 띄웠던 문자열을 찾아봅시다. [마우스 우클릭]->[Search for]->[All referenced text strings] (프로그램에서 쓰인 문자열만 보여주는 기능) 바로 윗부분에 있네요. 더블 클릭으로 들어가봅시다. 시리얼번호가 보이네요. 그럼 OEP를 구해야겠죠? OEP는 프로그램이 시작되..
코드엔진 베이직 5번 문제 : 프로그램의 등록 키 찾기일단 다운받은 5번 문제를 실행시킵시다. ??-?? 아무것도 모르니 일단 " Register now ! "를 눌러봅시다. 틀렸다는 문자가 뜨네요.ㅜㅡㅜ 등록키를 찾으려면 이 프로그램을 디버거로 열어서 맞았을때 문자열을 출력해주는 함수를 찾으면되겠네요. 올리 디버거로 열어봅시다. 띠용..?? 올리디버거로 열자마자 보이는 명령어가 PUSHAD .. 그러므로 실행파일이 압축되어있나 확인해봅시다. UPX로 압축되어있었네요.먼저 압축을 풀어줍시다. CFF Explorer 를 열고 파일을 불러온 후 UPX Utility 를 눌러준 후, Unpack 을 눌러줍니다. 누른 후 이름을 지정하고 저장하기만 누르면 짠 요롷게 원래 실행파일 밑에 언패킹한파일이 나타납니다...
lim.dev
'crackme' 태그의 글 목록