본문 바로가기

프로그래밍/BCI

[Java] ASM을 이용한 .class 파일 파싱

.class 파일의 내용을 javap 로 확인한 것과 비슷하게 보여주기로 하자.


첫번째 할 일은 .class 파일의 내용을 보여주는 ClassVisitor 클래스의 자식 클래스를 만드는 것이다.


간략한 코드는 다음과 같다.


두번째로 ClassPrinter 클래스와 ClassReader 요소를 연결하여 ClassReader 에서 발생하는 이벤트를 사용할 수 있도록 한다.


두번째 줄은 HelloWorld.class를 파싱하는 ClassReader를 만든다. 마지막 줄의 accept 메소드는 HelloWorld.class를 파싱하고 cp 에 구현된 해당 ClassVisitor 메소드를 호출한다.


완성된 ClassView



결과


ASM 에는 Textifier라는 이미 잘 만들어진 툴이 있다. 사용법은 이 글을 참고.

참고 : ASM User Guide