.Net 디컴파일 도구 dotPeek을 사용해 보세요
개요
JetBrains 사의 .Net 언어 디컴파일 툴 dotPeek 를 시험해 본 메모입니다.
업데이트 내역
날짜
내용
2021/04/01
디 컴파일 결과에 대한 설명을 수정.
환경
Windows10
VisualStudio2017
JetBrains dotPeek 2019.1.2
참고
설치
다운로드 및 설치
JetBrains의 사이트에서 다운로드합니다.
htps //w w. 지 tb 라이언 s. 코 m / 데코 m 피 r /
설치 프로그램 exe 파일을 시작합니다.
우선 dotPeek를 Install로 만듭니다.
화면 하단의 라이센스 동의를 체크하고 Next를 클릭하여 설치를 시작합니다.
완료, 특히 문제가되지 않았습니다.
시작
dotPeek를 시작해보십시오.
시작 화면
기동 직후는 다음과 같습니다.
exe나 dll을 드래그&드롭하면 아래와 같은 화면이 됩니다.
pdb를 사용할 수 있으면 디 컴파일 결과가 아닌 소스 파일이 표시됩니다.
표시는 C#만 같지만 원본 소스가 VB라면 어떻게 되는지는 시도하지 않습니다.
조작 메모
몇 가지 조작을 시도한 메모입니다.
파일 구조
[windows] -> [File Structure]
에서 현재 열려 있는 파일의 변수 목록을 볼 수 있습니다.
속성
마우스 오른쪽 버튼을 클릭 -> 속성에서 어셈블리 정보를 볼 수 있습니다.
Find Usages
Assembly Explorer 트리에서 마우스 오른쪽 버튼을 클릭 -> Find Usages를 선택하면 사용되는 위치가 표시됩니다.
IL Viewer
[windows] -> [IL Viewer]에서 중간 언어를 볼 수 있습니다.
Show Compiler-generated Code
이것을 유효하게 하면(자), 컴파일러가 생성한 코드를 볼 수 있는 것 같습니다.
원래 소스namespace ConsoleApp1
{
class Program
{
// ラムダ式
static public Func<int, int> func = x => x * 10;
static void Main(string[] args)
{
Console.WriteLine("Result : {0}", func(5));
}
}
}
<.cctor>b__3_0(int x):int 는 원래 소스의 람다 식에서 생성된 코드와 같습니다.
요약
드래그&드롭으로 간편하게 디컴파일 할 수 있었으므로, 대단한 툴이라고 생각합니다.
릴리즈 노트를 보면 미세하게 업데이트된 것 같습니다.
디컴파일한 후의 표시는 C#만 같지만 F# 등의 함수 언어 코드는 어떤 느낌으로 표시되는지 신경이 쓰입니다.
Reference
이 문제에 관하여(.Net 디컴파일 도구 dotPeek을 사용해 보세요), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/unknown_ds/items/87212139e40d11008645
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다운로드 및 설치
JetBrains의 사이트에서 다운로드합니다.
htps //w w. 지 tb 라이언 s. 코 m / 데코 m 피 r /
설치 프로그램 exe 파일을 시작합니다.
우선 dotPeek를 Install로 만듭니다.
화면 하단의 라이센스 동의를 체크하고 Next를 클릭하여 설치를 시작합니다.
완료, 특히 문제가되지 않았습니다.
시작
dotPeek를 시작해보십시오.
시작 화면
기동 직후는 다음과 같습니다.
exe나 dll을 드래그&드롭하면 아래와 같은 화면이 됩니다.
pdb를 사용할 수 있으면 디 컴파일 결과가 아닌 소스 파일이 표시됩니다.
표시는 C#만 같지만 원본 소스가 VB라면 어떻게 되는지는 시도하지 않습니다.
조작 메모
몇 가지 조작을 시도한 메모입니다.
파일 구조
[windows] -> [File Structure]
에서 현재 열려 있는 파일의 변수 목록을 볼 수 있습니다.
속성
마우스 오른쪽 버튼을 클릭 -> 속성에서 어셈블리 정보를 볼 수 있습니다.
Find Usages
Assembly Explorer 트리에서 마우스 오른쪽 버튼을 클릭 -> Find Usages를 선택하면 사용되는 위치가 표시됩니다.
IL Viewer
[windows] -> [IL Viewer]에서 중간 언어를 볼 수 있습니다.
Show Compiler-generated Code
이것을 유효하게 하면(자), 컴파일러가 생성한 코드를 볼 수 있는 것 같습니다.
원래 소스namespace ConsoleApp1
{
class Program
{
// ラムダ式
static public Func<int, int> func = x => x * 10;
static void Main(string[] args)
{
Console.WriteLine("Result : {0}", func(5));
}
}
}
<.cctor>b__3_0(int x):int 는 원래 소스의 람다 식에서 생성된 코드와 같습니다.
요약
드래그&드롭으로 간편하게 디컴파일 할 수 있었으므로, 대단한 툴이라고 생각합니다.
릴리즈 노트를 보면 미세하게 업데이트된 것 같습니다.
디컴파일한 후의 표시는 C#만 같지만 F# 등의 함수 언어 코드는 어떤 느낌으로 표시되는지 신경이 쓰입니다.
Reference
이 문제에 관하여(.Net 디컴파일 도구 dotPeek을 사용해 보세요), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/unknown_ds/items/87212139e40d11008645
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
namespace ConsoleApp1
{
class Program
{
// ラムダ式
static public Func<int, int> func = x => x * 10;
static void Main(string[] args)
{
Console.WriteLine("Result : {0}", func(5));
}
}
}
드래그&드롭으로 간편하게 디컴파일 할 수 있었으므로, 대단한 툴이라고 생각합니다.
릴리즈 노트를 보면 미세하게 업데이트된 것 같습니다.
디컴파일한 후의 표시는 C#만 같지만 F# 등의 함수 언어 코드는 어떤 느낌으로 표시되는지 신경이 쓰입니다.
Reference
이 문제에 관하여(.Net 디컴파일 도구 dotPeek을 사용해 보세요), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/unknown_ds/items/87212139e40d11008645텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)