-->

[reversing.kr] CSHOP 풀이

CHSOP은 닷넷 디컴파일툴을 사용해서 풀어야 하는 문제이고 나같은 경우 정적분석만으로는 문자열 배합 방법을 모르겠어서 소스 수정이 불가피했다.

 

 

 

reversing.kr CSHOP 풀이

CSHOP.exe를 실행시켜보면, 아래와 같이 빈 창이 뜬다.

 

 

 

일단, CSHOP은 닷넷 프로그램이기 때문에 IDA로는 분석이 불가하고 닷넷 디컴파일 툴이 필요하다.

 

 

 

CodeEngn을 풀 때, 닷넷 프로그램이 한번 문제로 나온적이 있어서 그때 사용했던 dotPeek을 사용하기로 했다. 먼저 FrmMain을 살펴보면, 첫번째로 눈에 띄는 것은 _Click 함수에 특정 문자열이 저장되어 있다는 것이다. 정답값은 아니었다. 그리고 바로 위에 Form1_Load 함수가 있는데 문자값들이 비어있다. 폼로드라는 함수이름 특성 상, 어떤 버튼을 클릭했을 때 그 이후에 오는 폼에관련한 기능을 수행하지 않을까 (이벤트 핸들러)정도 유추할 수 있다.

 

 

그 아래에 InitializeComponet() 함수를 보면, 먼저 새로운 Label 객체를 계속 새로 선언하고 있는데 C#에서 Label은 static 문자열을 화면에 표시하는 역할을 하는 객체라고 한다. 아마 문자열을 한꺼번에 다루고있는 것이 아니라 한바이트씩 다루고 있어서 정답 문자열 길이만큼 Label 객체를 선언하고 있는 것으로 보인다. 그리고 Label보다 먼저 Button 객체가 만들어지고 있는데 딱히 this 뒤에 이름이 없다(?) 이름없는 객체와 관련한 아래쪽 코드를 보면, Loacation으로 위치를 지정하는 것 같고 Name은 btnStart이고 Size가 현재 0,0이고 Button에 대한 이벤트핸들러 함수로 아까 보았던 _Click 함수가 등록되어있다. 사이즈가 0,0이었기 때문에 CSHOP.exe 실행 시 아무런 버튼이 보이지 않았던 것이다.

 

 

 

Point만 봐보면 위치가 (43,123) (90,123), (135,123) 등으로 y좌표는 전부 똑같은데 x좌표만 다르다. 근데 사실 전부 lbl이라서 위 _Click함수에 있던 문자가 어떤 순서대로 배열될지는 알기가 힘들었다.

 

 

 

정적분석만으로는 힘든 상황에서 떠오르는 방법은 아무래도 직접 버튼을 클릭하는 것 뿐이다. 위 코드에서 본대로 버튼의 Size가 0,0으로 지정되어있었기 때문에 이 부분을 수정하는 방법이 있는데 dotPeek으로는 소스 수정이 안돼서 비쥬얼 스튜디오 프로젝트 파일로 export 시킨 후 비쥬얼 스튜디오로 열어서 소스 수정후 재빌드하려는데 버전차이가 있는지 에러가 뜨면서 빌드가 안됐다.

 

다른 방법을 찾던 중, 닷넷 디컴파일 툴 중 하나인 .Net Reflector에 reflexil 툴이 있다는 것을 알았다. reflexil 툴 추가 방법은 아래 포스팅에 따로 정리하였다.

 


닷넷 디컴파일 툴 .Net Reflector, reflexil 추가 및 사용법

 

닷넷 디컴파일 툴 .Net Reflector, reflexil 추가 및 사용법

닷넷 디컴파일 툴로는 dotpeek 밖에 사용해보지 않았는데, 소스 수정이 안된다는 단점이 있었다. 물론 dotpeek에서 export를 시키면 비쥬얼 스튜디오 프로젝트 파일로 저장이 되고 여기서 소스 수정 후 빌드를 다..

liveyourit.tistory.com

 

 

0,0인 변수를 찾아서 대충 10정도로 변경해준 후 패치파일을 저장해주었다.

 

 

 

그리고 실행시키면 조그맣게 버튼이 생긴 것을 볼 수 있고 해당 버튼을 클릭하면 정답값을 볼 수 있다.

 

 

 

 

 

'리버싱 > reversing.kr' 카테고리의 다른 글

[reversing.kr] HateIntel 풀이  (0) 2020.03.20
[reversing.kr] PEPassword 풀이  (0) 2020.03.19
[reversing.kr] AutoHotkey1 풀이  (2) 2020.03.17
[reversing.kr] WindowsKernel 풀이  (0) 2020.03.15
[reversing.kr] Easy ELF 풀이  (0) 2020.03.15

댓글

Designed by JB FACTORY