728x90

리플렉터가 좋긴한데 유료화가 되면서 매번 PC 변경시 Crack 하여 써왔다

귀찮기도 하고 파일을 구하기도 힘들고.. 자꾸 Windows Defender 가 crack 파일을 자워버린다.;;

그리고 언제부턴가 이런 저런 crack 구하느라 시간 보내느니

적당한 가격이면 그냥 사서 쓰는게 마음이 편해서 원만하면 사서 쓰려고한다.

리플렉터도 그리 비싸진 않아 사려고 알아보다가.. 리플렉터 외에도 다른 좋은 툴들이 있다는걸 알고 살필요가 없어졌다.

여기서 소개할 디컴파일러는 두가지로 모두 무료다.

( 누군가는 GitHub에도 소스까지 공개하며 디컴파일러를 만들어 놨다..;;  https://github.com/0xd4d/dnSpy)

 

1. dotPeek (닷픽)

JET BRAINS 에서 만들어진 것으로 이 제품 외에도 여러 제품들이 있다.

(언젠가 나도 이렇게 여러 제품을 만들날이 올까..)

http://www.jetbrains.com/decompiler/download/

설치하면 아래와 같은 화면이 나타난다.

리플렉터도 그랬지만 이제품도 Visual Studio 에 add in 하여 사용할수 있다.

ReSharper 가 그것으로 개인적으로 추천하지는 않는다. (지극히 개인적임)

이전에 리플렉터를 그렇게 써봤는데 너무 느려서 지웠다.

실행해보니 디자인도 깔끔하다 Visual Studio 인줄...

역시 코드 난독화가 되어있다. ㅋ

 

2. JustDecompile

Telerik 에서 만든것으로 이회사는 처음에 피들러 때문에 알게된 회사인데 현재는 정말 많이 커졌다.

특히나 Xamarin 공부하면서 이쪽 컨트롤들을 많이 추천하고 있고 그만큼 사용도 많이하고 있는것 같다.

http://www.telerik.com/products/decompiler.aspx

설치를 해보자.

Telerik 에서 제공되는 많은 제품들도 동시에 설치가 가능하도록 되어있다.

그런데 쓸만한 것들?은 모두 유료고 비싸다.. 다행히 디컴파일러는 무료.

제품을 설치하려면 계정을 만들어야한다..;;

아래는 실행화면..

 

두개 동시에 써보니 dotPeek 이 더 기능도 많고 좋은것 같다. 디자인도 깔끔하고.. 계정도 안만들어도 되고..

무엇보다도 아래 코드처럼 if 문 디컴파일이 dotPeek 좀더 고급스럽게? 디컴파일이 된다.

dotPeek

    private void method_0()
    {
      int r = (int) this.BackColor.R;
      int red = r - this.int_1 < 0 ? 0 : r - this.int_1;
      int g = (int) this.BackColor.G;
      int green = g - this.int_1 < 0 ? 0 : g - this.int_1;
      int b = (int) this.BackColor.B;
      int blue = b - this.int_1 < 0 ? 0 : b - this.int_1;
      this.BottomLine.BackColor = Color.FromArgb(red, green, blue);
    }

JustDecompile

        private void method_0()
        {
            int r = this.BackColor.R;
            if (r - this.int_1 < 0)
            {
                r = 0;
            }
            else
            {
                r -= this.int_1;
            }
            int g = this.BackColor.G;
            if (g - this.int_1 < 0)
            {
                g = 0;
            }
            else
            {
                g -= this.int_1;
            }
            int b = this.BackColor.B;
            if (b - this.int_1 < 0)
            {
                b = 0;
            }
            else
            {
                b -= this.int_1;
            }
            this.BottomLine.BackColor = Color.FromArgb(r, g, b);
        }

역시 둘다 난독화는 어쩔수 없다. ^^

 

 

728x90
Posted by kjun.kr
,