사용자 정의 클래스 로더에 의해로드 된 Java 클래스를 리버스 엔지니어링하려고합니다.자바 클래스 객체를 클래스 파일로 직렬화 할 수 있습니까?
바이너리 콘텐츠를 저장하려고했지만 나중에 디 컴파일하려고했지만 디 컴파일러가 일반적인 자바 클래스가 아닌 것으로 불평했다. 클래스가 동적으로로드되었다는 것을 알았다.
이제 런타임에 클래스 개체가 있습니다. Sun Java 클래스와 같은 규약에 따르는 클래스 파일로 직렬화 할 수 있습니까?
추가 : 또는 Java 클래스 개체에서 사용할 수있는 디 컴파일러 API를 사용할 수 있습니까?
디 컴파일러 API는 없지만 바이트 코드를 가져올 수 있습니다. 클래스 객체를 가지고 있다면 JVM 바이트 코드에 의해 처리되고, 바이트 코드 자체는 '일반적으로'사용할 수 없다. – bestsss
질문에 대한 오해가있을 수 있지만 수업의 "바이너리 내용"이있는 경우 저급 [Solum] (https://github.com/TkTech/Solum) 라이브러리가 도움을 줄 수 있습니다. 높은 수준의 디 컴파일러가 실패합니다. 'solum.bytecode.Disassembler'를 사용해, 유효한 클래스를 가지지 않고 바이트 코드를 직접 디 컴파일 할 수 있습니다. – TkTech