CSHOP
A .NET binary that no debugger would open, read instead as IL through a .NET decompiler.
실행 불가. 파일을 다운로드하고 실행해보았는데 아무것도 나오지 않는다. 디버거도 안 통하고 아이다에서 디컴파일도 불가하다.
Exeinfo PE 는 파일의 헤더 정보를 분석해 어떤 언어로 만들어졌는지 알려주는 아주 유용한 도구이다. 난 없으니까 일단 다운로드 먼저 해주겠다.
만약 UPX 나 Themida 같은 문구가 보인다면 코드가 압축/보호되어 있다는 뜻이지만, 이미지에는 Not packed 혹은 관련 정보가 없는 것으로 보아 패킹은 되어 있지 않은 상태이다. .NET 파일이고, 하단에 Exeinfo 는 친절하게도 ”.NET Reflector 로 분석하라”는 팁까지 준다.
디버거 사용이 안 되는 이유는, .NET 프로그램은 기계어가 아닌 IL(Intermediate Language) 이라는 중간 단계의 코드로 실행되기 때문이다. 일반 디버거로 열면 윈도우가 .NET 환경을 로드하는 과정만 보이고, 정작 중요한 실제 소스 코드는 찾기가 매우 힘들다. 그래서 .NET 전용 분석 도구가 필요한 것이다. 나는 유료인 .NET Reflector 대신 dnSpy 를 사용하겠다.
드래그해서 파일을 넣으면 된다. F5 으로는 파일을 실행시킬 수 있다. 파일을 실행시키고 이것저것 만져보다 스페이스바를 쳤는데, 플래그가 나왔다.. 아마 너무 싱겁게 끝나서 정석적인 방법은 아닌 것 같지만 일단 플래그는:
더 둘러보니 메인 함수에서 풀 수 있는 다른 방법도 있었다. btnstart 라는, 플래그를 볼 수 있는 시작 버튼이 있는데 사이즈가 0,0 이라 화면에 보이지 않는다. 버튼 사이즈를 바꾸고 패칭하는 것도 또 다른 방법이 될 것 같다. .NET Reflector 는 안 되지만, dnSpy 는 에디트한 후 실행시키는 게 가능하다!




