역어셈블러
javap -c HelloWorld1 > HelloWorld1.txt -> 역어셈블한 결과를 text File에 기록
javap -private HelloWorld1 -> All Class&Member
역컴파일러
jad -r -8 -d ./src -s java /home/*.class
http://blog.naver.com/ddoll22/10015500677
역컴파일은 클래스 파일을 가지고 원래 소스로 변환하는 것을 말하지만, 역어셈블은 클래스 파일의 내부의 기본 구조와 역어셈블코드(JVM의 바이너리 코드)만을 나오게 됩니다.
특정 클래스의 내부 전체를 보고 싶은 경우는 역컴파일러를 이용하셔야 하고, 클래스 내부의 상수/함수들의 목록을 간단히 보고자 할때는 javap를 이용하는 것이 대부분입니다
javap -c HelloWorld1 > HelloWorld1.txt -> 역어셈블한 결과를 text File에 기록
javap -private HelloWorld1 -> All Class&Member
역컴파일러
jad -r -8 -d ./src -s java /home/*.class
-r : 해당 패키지 형태로 디렉토리 구조를 만듬( restore package directory structure)
-d : 디컴파일될 디렉토리(-d <dir> - directory for output files)
-s java : 디컴파일된 파일의 확장자를 java로 하라
-8 : 유니코드를 ascii 코드로 변환하는것이다.
/home/*.class : /home 디렉토리 아래의 모든 클래스들 지정
* jad 실행파일
[Java] Java Decompiler (역컴파일러, 디컴파일러)
- 2008/05/16 13:24
- Computer & Program
- entireboy.egloos.com/3745250
- 2 comments
출처 -
http://blog.naver.com/hazard11?Redirect=Log&logNo=80028989392
이클립스에서 자바 클래스 decompile 결과 보기
1. Help -> Install New Software... 를 누릅니다
Add 버튼을 눌러 Location에 http://jadclipse.sf.net/update 을 적고 OK를 누릅니다.
밑 플러그인 목록에 JDT Decompiler Features를 체크 하여 설치합니다.
이클립스를 재시작합니다.
2. Window -> Preferences
General -> Editors -> File Associations 에서
*.class를 선택하고 밑에서 편집기를 Decompiled Class File Viewer를 선택하여 Default 로 지정합니다.
Java -> Decompilers 에서
Decompiler를 Jad를 선택합니다.
3. http://www.varaneckas.com/jad 에서 jad를 다운받습니다.
압축을 풀어 이클립스 실행파일이 있는 폴더에 복사합니다.
4. 이제 편집기에서 소스가 궁금한 클래스명을 선택하고 F3을 누르면..
디컴파일된 소스가 보이게 됩니다.. 클래스에 따라서.. 결과가 제대로 나오지 않을 수도있습니다..
참고로 실제 소스와 완전히 같지 않기 때문에 디버깅시에 전혀 엉뚱한 라인을 가리킵니다..ㄱ-
출처 - http://zsoo.net/68
'Development > Java' 카테고리의 다른 글
엔디언(endian) 그리고 UTF-8에서 illegal character: \65279 에러 (0) | 2012.01.27 |
---|---|
JNDI와DBCP/DataSource의 사용법 (0) | 2012.01.25 |
자바 네트워크 구동 프로토콜(JNLP)과 참조 구현, 자바 웹 스타트 (0) | 2012.01.18 |
자바 데몬(daemon) 만들기 (0) | 2012.01.18 |
Hotspot JVM의 Garbage Collector (0) | 2012.01.18 |