이번에는 개인적으로 유용하게 쓰고 있는 무료 오픈소스 닷넷 디컴파일러 겸 디버거인 dnSpy를 소개해보고자 합니다.

 

C나 C++같은 언어로 작성되서 빌드된 ELF나 PE 파일같은 네이티브 바이너리 파일들은 IDA Pro나 ghidra같은 툴로 pseudo code 디컴파일 및 정적 분석이 가능합니다. 물론 100% 복구가 안되기 때문에 적당한 휴리스틱 알고리즘을 이용해서 pseudo code 수준으로 보여줍니다.

 

하지만 중간 언어가 있는 닷넷이나 자바로 작성된 프로그램의 경우 훨씬 쉽게 디컴파일이 됩니다. 자바의 경우 jd-gui, 안드로이드의 경우 JEB를 많이 쓰는데 .NET으로 작성된 프로그램의 경우는 어떤걸 쓰면 좋을지 모르실 분들도 있을 것 같습니다.

 

닷넷 프로그램의 경우 오픈소스 SW인 dnSpy를 사용하면 매우 편리합니다.

 

심지어 개인이 만든것으로 보입니다. 

github.com/dnSpy/dnSpy

 

dnSpy/dnSpy

.NET debugger and assembly editor. Contribute to dnSpy/dnSpy development by creating an account on GitHub.

github.com

깃허브 URL은 위와 같고요, 우측 탭에 있는 release로 가서 다운받으시면 됩니다.

릴리즈를 누르면 아래와 같은 화면이 나타나게 됩니다.

dnSpy는 자체도 C#, 닷넷으로 개발되어서 윈도우에서만 구동이 가능합니다.

32bit 닷넷 바이너리를 디컴파일, 디버깅 하고자 한다면 dnSpy win32를 다운받으시면 되고,

64bit 닷넷 바이너리를 디컴파일, 디버깅 하고자 한다면 dnSpy win64를 다운받으시면 됩니다.

 

다운받은 뒤 압축만 풀면 쉽게 사용할 수 있습니다.

 

.NET으로 작성된 윈도우 앱과, Unity 앱도 디버깅이 가능합니다.

 

일단 디컴파일을 통한 닷넷 앱 분석뿐만 아니라, 동적 디버깅도 가능하며, 디버깅 중 인자값을 변경하거나 하는 기능들도 가능한 것으로 알고 있습니다.

 

간혹 닷넷 앱을 분석할 일이 있을 때 사용을 하는데, 생각보다 기능이 더 많을것으로 보이며, 추후에 닷넷 앱 분석을 더 하게 될 일이 있으면 글에 내용을 추가하여 작성하도록 하겠습니다.

 

더 읽어보기

jaeseokim.tistory.com/84

+ Recent posts