본문 바로가기

Reversing/Code_Engn(Basic)

Code Engn - Basic 13 RCE




그동안 디버깅해온 방법으로 디버깅하려했더니 제대로 디버깅이 되지 않았다.

Microsoft Visual C# / Basic .Net -> C# 으로 되어있는데, C#은 컴파일시 IL(Intermediate Language)이라는 중간 형태의 코드로 변환하고

실행시 이를 다시 CLR(.Net 플랫폼)을 통해 기계어로 변환된다고 한다.


일단 .Net 디컴파일러가 많은것같길래 ILSpy라는 프로그램을 통해서 디컴파일해보았다.



디컴파일해서 코드의 내용은 알 수 있었지만, 디버깅을 하지 못해 정확한 "text"의 값은 알 수 없었다.

여기서 한참 헤맸는데, 풀이를 찾아보니 F12("pause") 이후 Execute till return 을 통해 접근하는 방법이 있었다.


일단 프로그램을 실행시킨후 해당 PID에 attach해서 디버깅 시작 -> F12("pause") -> Execute till return 이후 진행하다보니 기계어로 변환된 부분을 찾을 수 있었다.

"text"와 입력받은 값을 비교하는 부분을 찾아 key값을 얻어냄







'Reversing > Code_Engn(Basic)' 카테고리의 다른 글

Code Engn - Basic 15 RCE  (0) 2015.06.04
Code Engn - Basic 14 RCE  (0) 2015.05.30
Code Engn - Basic 12 RCE  (0) 2015.05.26
Code Engn - Basic 11 RCE  (0) 2015.05.26
Code Engn - Basic 10 RCE  (0) 2015.05.14