선 밖에 선 자유인

바이트 코드 혼란 기법 대응 본문

IT/Security

바이트 코드 혼란 기법 대응

Hotman 2013. 9. 16. 17:58

쉽게 디컴파일 되는 자바 바이트 코드를 해석하기 어렵게 하기 위한 방법으로 다음과 같은 방법이 있다.


- 의미 있는 클래스, 메소드, 멤버 변수명을 a,b,c, 등 의미없는 표현으로 치환

- 아이템의 이름을 new 나 int 와 같은 자바 키워드로 치환

- 디버깅 정보, 메타 정보들을 바이트코드에서 제거

- 여러 종류의 불필요한 코드 첨가

- 스택 추적을 사용하여 코드를 통해 수행되는 경로가 매우 꼬여있게 만든다. 

- 접근할 수 있는 문장이나 반환문이 없는 코드 경로 등 허용되지 않는 프로그래밍 방식 사용



위와 같은 기법에 대한 대응 기법


- 공용 메소드를 위한 애플릿은 소스를 완전히 이해햐지 않고도 검토 가능.

  자바스크립트에서 직접 호출할 수 있는 메소드가 무엇인지, 특성은 무엇인지를 통해 여러가지 입력 값을 제시해서     이들 메소드의 행동을 살펴본다

- 클래스, 메소드와 멤버 변수명이 의미없는 표현으로 치환된 경우 많은 IDE 도구에 내장되어 있는 요소 재구성

   (refactoring) 기능을 사용해 코드의 이해를 도울 수 있음.

   (rename 도구 등)

- 변형된 바이트코드를 변형 도구로 적절한 옵션 값ㅇ르 줘서 다시 처리하면 많은 변형 내용이 제거될 수 있음

   -> jode 




Comments