내가 더 아래 솔루션을 알고 싶었던 Decomplile수정을 .class 파일
- 합니다. 클래스 파일을 수정하고 마지막으로 다시 컴파일하십시오. -
- 16 진수 편집기로 직접 수정하십시오.
덕분에 두 잘못된 선택의
내가 더 아래 솔루션을 알고 싶었던 Decomplile수정을 .class 파일
덕분에 두 잘못된 선택의
, 디 컴파일, 수정하고 재 컴파일이 더 좋다. 바이너리에서 무엇이든 변경하면 다른 것들의 오프셋과 훨씬 더 오류가 발생하기 쉽습니다.
.class 파일에는 바이트 코드 유효성 검사가 필요하지만 알고있는 한 체크섬이나 오류 검사가 없습니다. 그렇더라도 컴파일러의 출력은 더 안전합니다.
어쩌면 OP는 클래스를 확장하여 수정하지 않아도됩니다. 하지만 OP가 실제 문제를 설명 할 때까지는 확신 할 수 없습니다. –
@evil otto가 더 나은 선택입니까? – developer
거의 확실합니다. Luiggi가 묻는 것처럼, 그것은 당신이하려고하는 것이 무엇인지에 달려 있습니다. 말로 표현할 수없는 문제에 대한 해결책이 좋은지 묻는 중입니다. 실제로 직면하고있는 문제에 대해 묻는 것은 훨씬 생산적 일 것입니다. –
옵션 # 3 - 만약 당신이 바이트 코드로 어지럽게 될 경우, 당신이 할 수있는 일은 휠을 다시 발명하는 것을 피하기 위해 그것을 위해 고안된 라이브러리를 사용하는 것입니다. 소스 코드가없는 경우 예를
에 대한 asm을보고, 당신은 내가를 검사 (Java Decomiler와 조합 (바이트 코드 수정을 위해) Javassist 라이브러리를 사용하여 recomment, 당신은 .class
파일을 수정 하시겠습니까 출처).
JSP 소스를 클래스에 사용할 수 있다는 것이 밝혀졌습니다. 따라서 더 나은 접근 방법은 을 JSP 소스에서 수정 한 다음 JSP 컴파일러 (예 : this one)를 사용하는 것입니다.
Soot를 사용해야하고 JSP로 작동하지 않기 때문에 이것이 적합하지 않을 수도 있습니다. 수정하기 전에 Soot를 사용하여 어디에서 수정해야하는지 확인해야합니다. – developer
정확히 무엇을 달성하기를 원하는지 아직 명확하지 않습니다. 생성 된 코드를 수동으로 수정하는 것은 유지 보수의 악몽입니다. – Henry
수정이 필요한 부분을 식별하려면 Soot를 사용해야합니다. (Soot는 필수적입니다.) 따라서 Soot는 java 및 클래스 파일을 입력으로 가져 오기 때문에 JSP를 사용할 수 없습니다. – developer
옵션 # 1입니다. JAD 또는 다른 디 컴파일러를 사용하여 .java를 만들고, 변경하고, 컴파일하고, 이전 .class를 새 버전으로 바꿉니다.
감사합니다. @Evgeniy Dorofeev. 이 솔루션이 다른 사람들이 제안한 것처럼이 솔루션이 가장 좋은 것처럼 보입니다. – developer
바이트 코드 파일을 어지럽히는 해결책은 없습니다. 소스 코드의
가져 오기 보류하고 소스 코드에 필요한 변경 :
좋은 솔루션입니다. 그런 다음 다시 컴파일하고, 단위 테스트를 실행하고, WAR를 작성하고, 재배포하는 등의 작업을 수행합니다.
소스 코드를 얻을 수없는 경우 소스 코드를 작성한 사람에게 문제를 해결하십시오.
무료로 문제를 해결할 수없는 경우 지불하십시오.
돈을 지불하더라도 해결하지 못하면 제품을 버리고 대안을 찾으십시오. 위의의 것도 실행 가능한 옵션이없는 경우
솔직히 말해서 나는 나쁜 해결책 중 최고라고 말할 수 없습니다.이에 따라 달라 리버스 엔지니어링 바이트 코드에서
저는 cavaj, JAD 및 JD-GUI를 사용했으며 꽤 동일한 디 컴파일 결과를 제공했습니다. 그러나 JD-GUI는 다른 두 제품과 비교했을 때 더 나은 결과를 보여 주었기 때문에 나에게 더 나은 선택이었습니다. 누군가가 디 컴파일러를 선택할 때를 대비해서 이것을 공유하고 싶었습니다.
이것에 대한 동기는 무엇입니까, 일부 해킹 - 놀이터 또는 이것을 사용하는 실제 사용 사례는 무엇입니까? –
아니 실제 사용, 나는 약간의 수정을해야하고 어떤 고려하는 것이 더 좋은지 알고 싶었어요. – developer
사람들이 당신에게 손을 댈 수 있도록 문제를 설명하면 더 좋을 것입니다. 우리는 마법의 수정 구슬이있는 마법사가 아니므로 요구 사항을 추측하거나 마음을 읽을 수 있습니다. –