CSHOP

A .NET binary that no debugger would open, read instead as IL through a .NET decompiler.

2026.08.18 Reversing original post

Figure 1

실행 불가. 파일을 다운로드하고 실행해보았는데 아무것도 나오지 않는다. 디버거도 안통하고 아이다에서 디컴파일도 불가하다. Exeinfo PE는 파일의 헤더 정보를 분석해 어떤 언어로 만들어졌는지 알려주는 아주 유용한 도구이다. 난 없으니까 일단 다운로드 먼저 해주겠다.

Figure 2

만약 UPX나 Themida 같은 문구가 보인다면 코드가 압축/보호되어 있다는 뜻이지만, 이미지에는 Not packed 혹은 관련 정보가 없는 것으로 보아 패킹은 되있지 않은 상태이다. 넷 파일이고, 하단에 Exeinfo는 친절하게도 ”.NET Reflector로 분석하라”는 팁까지 준다. 디버거 사용이 안되는 이유는 .NET 프로그램은 기계어가 아닌 **IL(Intermediate Language)**이라는 중간 단계의 코 드로 실행된다. 일반 디버거로 열면 윈도우가 .NET 환경을 로드하는 과정만 보이고, 정작 중요한 실제 소스 코드는 찾기가 매우 힘들기때문이다. 그래서 .NET 전용 분석 도구가 필요한 것이다. 나는 유료인 넷 리플렉터 대신 dnSpy 을 사용하겠 다.

Figure 3

드래그해서 파일을 넣으면 된다 F5 으로는 파일을 실행시킬수있다. 파일을 실행시키고 이것저것 만져보다 스페이스바를 쳤는데, 플래그가 나왔다.. 아마 너무 싱겁게 끝나서 정석적인 방법은 아닌것 같지만 일단 플래그는:

Figure 4

더 둘러보니 메인 펑션에서 풀 수 있는 다른 방법도 있었다. btnstart 라는, 플래그를 볼 수 있는 시작 버튼이 있는데 사이즈가 0,0 이라 화면에 보이지 않는다. 버튼 사이즈를 바꾸고 패칭하는 것도 또 다른 방법이 될 것 같다. .NET Reflector 는 안되지만, dnSpy 는 에디트한후 실행시키는게 가능하다!

Figure 5