오늘 소개할 프로그램은 안츠 시리즈로 유명한 레드게이트사에서 만든 닷넷 리플렉터입니다.

아래는 레드게이트사의 홈페이지 입니다.
http://www.red-gate.com/index.htm

닷넷 리플렉터는 닷넷 실행파일을 소스로 풀어주는 프로그램입니다.
저는 닷넷 라이브러리 분석용으로 주로 사용합니다.
사용법은 아주 쉽습니다. 일단 프로그램을 실행하시고 소스를 보고자하는 어플리케이션만 리플렉터로 읽으시면 됩니다.

쉽죠?

아래는 리플렉터로 분석한 WPF 버튼 입니다.
프로그램 상에서 함수를 더블클릭하면 함수 내부 소스 까지도 확인 하실 수 있습니다.

public class Button : ButtonBase
{
    // Fields
    private static DependencyObjectType _dType;
    private static readonly UncommonField<KeyboardFocusChangedEventHandler> FocusChangedEventHandlerField;
    public static readonly DependencyProperty IsCancelProperty;
    public static readonly DependencyProperty IsDefaultedProperty;
    private static readonly DependencyPropertyKey IsDefaultedPropertyKey;
    public static readonly DependencyProperty IsDefaultProperty;
    // Methods
    static Button();
    public Button();
    protected override void OnClick();
    protected override AutomationPeer OnCreateAutomationPeer();
    private void OnFocusChanged(object sender, KeyboardFocusChangedEventArgs e);
    private static void OnIsCancelChanged(DependencyObject d, DependencyPropertyChangedEventArgs e);
    private static void OnIsDefaultChanged(DependencyObject d, DependencyPropertyChangedEventArgs e);
    private static void OnIsEnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e);
    private void UpdateIsDefaulted(IInputElement focus);
    // Properties
    internal override DependencyObjectType DTypeThemeStyleKey { get; }
    internal override int EffectiveValuesInitialSize { get; }
    public bool IsCancel { get; set; }
    public bool IsDefault { get; set; }
    public bool IsDefaulted { get; }
}