.Net Framework/.NET2009. 11. 16. 09:42
 
  1. 시작->프로그램->VS2005-> VS Tools -> 명령 프롬프트 실행
  2. 역어셈블리 툴인 ildasm.exe 실행
  3. 아래와 같이 프로그램 실행
  4. 파일 -> 열기 클릭
  5. 역어셈블 하고자 하는 *.dll 선택 열기
  6. 아래와 같이 *.dll 파일이 열림.
  7. 파일->덤프 메뉴 클릭
  8. 아래와 같은 덤프 옵션창에서 원하는 형식으로 설정 확인
  9. 확인 버튼을 눌리면 *.dll 파일이 위치한 경로에 *.txt / *.res 파일 생성
  10. *.txt 파일의 경우 원래의 코드 형태는 아니지만 클래스, 메소드, 프라퍼티 정보가 아래와 같이 생성.
  11. *.res 파일의 경우 열기 하였을 경우 아래와 같은 결과를 보여줌
  12. 파일->트리 덤프 클릭 *.dll 파일을 열면
  13. 아래와 같이 *.txt 파일 생성
  14. 파일을 열어 보면 아래와 같이 트리형태로 클래스, 메소드, 프라퍼티 등을 볼수 있음.
  15. ILDASM.exe 실행시 심볼 형태로, 덤프한 결과일 경우 축약형으로 참고하여 보면 도움이 될듯..
  16. ( 인포북 C# .NET플랫폼 참고)

    ILDASM.EXE 심볼

    축약형

    설명

    .(DOT)

    아이콘은 주어진 타입에서 많은 세부 정보를 찾아 있음을 의미한다.

    더블클릭할 경우에는 아이템은 트리에서 관련된 노드로 점프하게 된다.

    [NSP]

    네임스페이스를 의미한다.

    [CLS]

    클래스를 의미한다. 중첩된 클래스의 경우에는 <outer 클래스>

    $<inner 클래스> 방식으로 표현한다.

    [VCL]

    구조체를 의미한다.

    [INT]

    인터페이스 타입을 의미한다.

    [FLD]

    주어진 타입에서 정의된 필드를 의미한다.(public 데이터).

    [STF]

    주어진 타입에서 정의된 정적(static) 필드를 의미한다.(클래스 차원에서).

    [MET]

    주어진 타입의 메소드를 의미한다.

    [STM]

    주어진 타입의 정적메소드를 의미한다.

    [PTY]

    주어진 타입의 프로퍼티를 의미한다.

    []

     


Posted by Tiwaz