Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

kaka09

code engn basic 13 본문

Reversing

code engn basic 13

kaka09 2017. 8. 2. 14:53

[사진]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