그동안 디버깅해온 방법으로 디버깅하려했더니 제대로 디버깅이 되지 않았다.
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 |