이번에는 개인적으로 유용하게 쓰고 있는 무료 오픈소스 닷넷 디컴파일러 겸 디버거인 dnSpy를 소개해보고자 합니다.
C나 C++같은 언어로 작성되서 빌드된 ELF나 PE 파일같은 네이티브 바이너리 파일들은 IDA Pro나 ghidra같은 툴로 pseudo code 디컴파일 및 정적 분석이 가능합니다. 물론 100% 복구가 안되기 때문에 적당한 휴리스틱 알고리즘을 이용해서 pseudo code 수준으로 보여줍니다.
하지만 중간 언어가 있는 닷넷이나 자바로 작성된 프로그램의 경우 훨씬 쉽게 디컴파일이 됩니다. 자바의 경우 jd-gui, 안드로이드의 경우 JEB를 많이 쓰는데 .NET으로 작성된 프로그램의 경우는 어떤걸 쓰면 좋을지 모르실 분들도 있을 것 같습니다.
닷넷 프로그램의 경우 오픈소스 SW인 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 앱도 디버깅이 가능합니다.
일단 디컴파일을 통한 닷넷 앱 분석뿐만 아니라, 동적 디버깅도 가능하며, 디버깅 중 인자값을 변경하거나 하는 기능들도 가능한 것으로 알고 있습니다.
간혹 닷넷 앱을 분석할 일이 있을 때 사용을 하는데, 생각보다 기능이 더 많을것으로 보이며, 추후에 닷넷 앱 분석을 더 하게 될 일이 있으면 글에 내용을 추가하여 작성하도록 하겠습니다.
더 읽어보기
'해킹 & 보안' 카테고리의 다른 글
Security by obscurity : 모호함, 잊혀짐을 통한 보안 (0) | 2020.07.06 |
---|---|
wechall.net(위첼) 소개 (0) | 2020.06.30 |
Gopher protocol 간단 분석 (0) | 2020.06.20 |
[스크랩] 잘못된 CORS 설정으로 인한 민감정보노출 취약점 (0) | 2020.01.30 |
워게임 사이트 root-me.org (0) | 2019.11.27 |