본문 바로가기

진리는어디에/C#

[C#] IL 디스어셈블러(ildasm.exe) 유틸리티

ildasm.exe란?

IL 디스어셈블러(ildasm.exe)는 IL 어셈블러(ilasm.exe)의 자매도구로써 IL코드를 포함하고 있는 포터블 실행 파일(PE)을 이용해 ilasm.exe의 입력에 적합한 텍스트 파일을 생성한다. 다시 말하면, ildasm.exe는 실행 파일 내부의 .NET 기계어 코드(CIL)을 분석해서 클래스 내용을 보여 주는 유틸리티다.

설치

ildasm.exe는 C#을 개발하기 위해 비주얼 스튜디오와 함께 설치 된다. 제대로 설치 되었다면 "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools"에서 확인 할 수 있다(비주얼 스튜디오 2019 기준, 버젼마다 경로가 약간 다를 수 있다).

실행

ildasm을 실행하기 위해서는 "비주얼 스튜디오 개발자 명령 프롬프트" 또는 "비주얼 스튜디오 개발자 PowerShell"을 사용 해야 한다. 개발자 명령 프롬프트는 2015버전 부터 사용 가능하고, PowerShell은 2019 버전 부터 지원되고 있다.

두 가지 모두 사용가능하지만 이 포스트는 2019 버전을 기준으로 작성 되었으므로, 보다 기능이 더 강력한 PowerShell을 사용하도록 하겠다.

"시작" 메뉴를 통해 실행

시작 메뉴의 검색 창에서 "Developer PowerShell for VS 2019"를 검색한다. 간단하게 "VS 2019"만 검색해도 충분하다.

그럼 아래와 같은 콘솔 창이 뜰 것이다. 

**********************************************************************
** Visual Studio 2019 Developer PowerShell v16.10.1
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
PS C:\Users\Administrator\source\repos> ildasm Program.exe

비주얼 스튜디오 터미널을 통해 실행

"보기 > 터미널(ctrl + `)" 메뉴를 실행하면 비주얼 스튜디오 에디터에 아래와 같은 PowerShell 콘솔창이 추가 된다.

직접 실행

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools 에서 ildasm.exe를 실행한다.

구문

ildasm [options] [PEfilename] [options]

※ 매개 변수 옵션(options) 확인은 [여기]

예를 들어 IL 코드로 되어 있는 실행 파일이 Program.exe라고 가정하면

ildasm Program.exe

와 같이 명령어를 입력하면 다음과 같은 프로그램이 실행되어 실행 파일 안의 클래스와 함수를 보여 준다. 

그리고 더블 클릭을 통해 바이트 코드 까지 확인 할 수 있다.

Tip. exe 뿐만 아니라 dll, obj, lib, winmd 확장자를 가진 파일들도 사용 가능하다.

 

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!