목록Study/Reversing (22)
촉촉한초코칩
보호되어 있는 글입니다.

15번 프로그램을 실행하면 이름과 Serial을 입력하라는 창이 나온다. 디버거에서 Strings를 보면 맞았을 때, 틀렸을 때 나오는 메시지가 나온다. 여기에 Breakpoint를 걸어둔 뒤 F9로 바로 실행한다. 이름에는 CodeEngn을 입력하고 Serial에는 아무 값이나 입력한다. CMP에서 내가 입력한 값과 Serial값을 비교한다. 값은 Hex Dump의 45B844에 저장되어 있는 것 같았다. 그래서 Hex Dump에서 45B844로 이동했다. 우리가 입력하는 값은 10진수이기 때문에 16진수인 6160을 10진수로 변환해줘야 한다. → 24928

언패킹한 후 OllyDbg로 열어준다. 그리고 파일을 실행해보면 이런 화면이 나오는데, Name과 Serial을 입력하라고 한다. Name은 이미 문제에 나와있기 때문에 Serial만 구하면 된다. 먼저 두 개 다 정답으로 입력했을 때 나오는 메세지를 찾아보았다. Name과 Serial을 입력하면 정답과 비교한다. (EAX, ESI) 그러므로 ESP 여기에 정답이 있을 것이라고 생각했다. 그런데 OllyDbg로는 실행이 잘 안되는 것 같아서 Immunity Debugger를 다운받았다. 디버거에서 실행하면 프로그램이 실행되는데, Name으로는 CodeEngn을 넣고 Serial에는 아무 값이나 넣어보았다. 그러면 내가 넣은 값이 보인다. 그리고 CMP를 비교해서 Serial이 맞을 때 / 틀릴 때 비교해..
보호되어 있는 글입니다.

Key 값을 찾아야 하는데 먼저 파일을 OllyDbg에서 열면 성공 메시지가 보인다. 12번은 Key값과 사용자 입력값을 비교해서 맞으면 성공 메시지가 뜨는 것이기 때문에 CMP에서 비교하는 값이 Key값이 된다. 코드에 있는 값은 16진수이고 우리가 입력하는 값은 10진수이기 때문에 변환해서 값을 입력하면 성공메시지가 뜬다. → 7A2896BF, 2049480383 그리고 성공메시지 대신 Key값이 뜨게 하기 위해 HxD에서 파일을 열었다. 성공메시지가 뜨는 곳이고 여기에 10진수로 변환한 Key 값을 Overwrite했다. HexEdit에서 가장 오른쪽에 있는 부분이 주소를 나타내는 영역이다. → 0D30 ~ 0D40 사이에서 Key 값의 범위를 써보면 이렇게 된다 : 0D3B ~ 0D45 정답 : ..

PEiD로 보면 ASPack로 패킹되었다는 것을 알 수 있다. 그래서 ASPack 패킹하는 방법에 대해 찾아보았다. RETN 0C 코드를 찾으면 아래 RETN 코드가 있다. RETN에 Breakpoint를 건 뒤 F9를 눌러 바로 실행시켜본다. 그러면 이런 화면이 나오는데 여기서 Ctrl + A를 누르면 원래 코드가 보이게 된다. (여기가 언패킹된 부분이기 때문에 언패킹 한 후 가장 첫번째 주소인 OEP는 00445834가 된다.) 여기서 오른쪽 마우스를 클릭한 다음 Dump debugged process를 눌러서 덤프한 다음 파일을 저장한다. 저장한 파일을 다시 PEiD에 넣어보면 언패킹 된 것을 확인할 수 있다. 그리고 등록성공으로 가는 분기점을 찾으면 되는데, 언패킹된 파일에서 등록 성공 메시지로 ..