kaka09
code engn basic 13 본문
[사진]1-1
정답은 무엇인가라는 심플한 메세지만 주어졌다. 심플하게 올리 디버거로 까보자
[사진]1-2
응?? 올리디버거로 열 수 없다는 에러메세지를 보여준다.. 뭐지 싶어서 혹시 이상한 종류의 패킹인가 싶어 PEID로 확인해 보았다.
[사진]1-3
PEID로 확인해본 결과 C#으로 만들어진 프로그램임을 확인 할수 있었다. 구글링을 찾아보니 C# 같은 경우는 일반 PE 파일구조와는 달라 올리 디버거로 실행시키기 어렵다고 한다. 따라서 C#전용 디컴파일러를 사용해야 한다는데, C#도 자버처럼 중간언어로 변환 시키는 과정이 존재해 디컴파일로 원본 소스에 가깝게 복원이 가능하다고 한다. jetbrain 의 dotpeek을 이용하여 디컴파일을 시도하였다.
[사진]1-4
디컴파일로 원본 소스코드를 복원한 결과이다. 아무래도 정답은 str에 저장되어 있는것 같으니 소스코드를 그대로 export 하여 visual studio에서 실행을시켜 보았다.
[사진]1-5
[사진]1-6
dotpeek으로 해당 프로그램을 open 시키면 왼쪽에 ConsoleApplication3 라는 항목이 생긴다 여기서 [사진]1-5처럼 클릭 한 다음 open project in Visual Studio를 클릭하면 원본소스를 비쥬얼 스튜디오로 옮겨지면서 수정/실행작업을 이어갈 수 있게 된다.
[사진]1-7
정답은 strdp 담겨져 있다고 한다. 해당 프로그램은 콘솔기반으로 실행이 되니 str을 콘솔 화면에 뿌려주기 위해 Console.WriteLine(str)을 반복문 이전에 입력하면 str의 값을 확인 할 수 있다.
[사진]1-8
str값이 출력된 것을 확인 할 수 있다.
'Reversing' 카테고리의 다른 글
code engn basic 15 (0) | 2017.08.02 |
---|---|
code engn basic 14 (0) | 2017.08.02 |
code engn basic 12 (0) | 2017.08.02 |
code engn basic 11 (0) | 2017.08.01 |
code engn basic 10 (0) | 2017.08.01 |