Java로 작성하는 난독 화 프로그램의 경우 특정 주소에서 값을 가져 오는 방법을 찾아야합니다. 예를 들어, 16 진수 편집기에서 연 프로그램에서 주소 0000001F는 16 진수 값 "00"입니다. 또한 특정 메모리 주소에 쓸 수 있습니까? 예를 들어 0000001F에 쓰고 "00"에서 "FF"로 변경하면Java를 사용하여 주소에서 값을 얻으려면 어떻게해야합니까?
0
A
답변
1
첫 번째 질문에 대답하려면 파일을 이진 스트림으로 열고 원하는 파일을 읽을 수 있습니다. 클래스 로더 방식에서는 그다지 효과가 없을 것입니다.하지만 파일을 조작하고 런타임에 JVM에서 유효하고로드되는 클래스로 변환하는 사용자 정의 클래스 로더가 있다면 이론적으로 가능합니다. 클래스 로더 자체가 이런 방식으로 난독 화되지 않기 때문에 요점은 무엇인지 궁금해 할 것입니다.
두 번째 질문에 답하려면 Java로 메모리 주소에 직접 쓸 수 없습니다. JNI를 통해 함수를 호출 할 수 있습니다 (JVM 메모리 할당 외).
당신이하고 싶은 일에 대해 잘못된 언어를 사용하고있는 것처럼 들립니다.
1
잘못된 언어를 사용하고 있습니다. C 또는 C++은 (대부분의 시스템에서) 운영 체제 라이브러리를 쉽게 호출하고 특정 위치의 메모리에 액세스하려고하기 때문에 더 나은 선택입니다.
대부분의 POSIX 호환 운영 체제는 현재 프로세스 주소 공간의 특정 위치에 메모리를 매핑 할 수있는 mmap을 구현합니다.
관련 문제
- 1. java를 사용하여 네트워크 사용률을 얻으려면
- 2. json에서 값을 얻으려면 어떻게해야합니까?
- 3. 트랙바 값을 얻으려면 어떻게해야합니까?
- 4. Nokogiri에서이 값을 얻으려면 어떻게해야합니까?
- 5. MemberInfo 값을 얻으려면 어떻게해야합니까?
- 6. Boost.Regex를 사용하여 정규식 일치 값을 얻으려면 어떻게해야합니까?
- 7. Java를 통해 시스템/하드웨어 정보를 얻으려면 어떻게해야합니까?
- 8. 익명 식에서 값을 얻으려면 어떻게해야합니까?
- 9. $ _POST에서 키 값을 얻으려면 어떻게해야합니까?
- 10. YUI Autocomplete에서 값을 얻으려면 어떻게해야합니까?
- 11. Gridview 셀의 값을 얻으려면 어떻게해야합니까?
- 12. Java를 사용하여 BIOS 정보를 얻으려면 어떻게합니까?
- 13. Java를 사용하여 javadoc을 생성하려면 어떻게해야합니까?
- 14. ColorDialog에서 사용되는 기본 색상 값을 얻으려면 어떻게해야합니까?
- 15. Silverlight에서 <PasswordBox> 값을 얻으려면 어떻게해야합니까?
- 16. AsyncTask에서 Main Activity로 반환 값을 얻으려면 어떻게해야합니까?
- 17. 레일즈 3의 컨트롤러에서 before_save 값을 얻으려면 어떻게해야합니까?
- 18. 선택 레일 3에서 선택한 값을 얻으려면 어떻게해야합니까?
- 19. Request.Form을 사용하여 선택 상자에서 선택된 값을 얻으려면 어떻게해야합니까?
- 20. Gridview 숨겨진 필드 - JavaScript를 사용하여 숨겨진 필드 값을 얻으려면 어떻게해야합니까?
- 21. jQuery를 사용하여 요소의 테두리 색 값을 얻으려면 어떻게해야합니까?
- 22. PHP를 사용하여 MySQL의 'ft_min_word_len'구성 변수 값을 얻으려면 어떻게해야합니까?
- 23. jQuery를 사용하여 테이블 행의 특정 셀에서 확인란 값을 얻으려면 어떻게해야합니까?
- 24. boost.thread와 함께 boost.lambda를 사용하여 스레드의 반환 값을 얻으려면 어떻게해야합니까?
- 25. MySQL 커넥터를 사용하여 C#에서 NOW() 값을 얻으려면 어떻게해야합니까?
- 26. PHP를 사용하여 정보를 얻으려면 어떻게해야합니까?
- 27. Java를 사용하여 XML 속성 값을 읽는 방법
- 28. C에서 JSObject 속성 값을 얻으려면 어떻게해야합니까?
- 29. SQLAlchemy InstrumentedAttribute에 해당하는 속성 값을 얻으려면 어떻게해야합니까?
- 30. nsdictionary 객체에서 이름과 URL의 값을 얻으려면 어떻게해야합니까?
특정 메모리 주소에 쓰기를 할 때, 실행중인 프로세스를 의미합니까? 코드가 VM에서 실행되도록 제한되므로 Java에서이 작업을 수행 할 수 없습니다. 오히려 이미 알고 있다는 확신이 들기 때문에 질문을 잘못 이해했을 수도 있습니다. – Gangadhar
네이티브 코드없이 직접 메모리 액세스를 사용할 수 없다는 것을 충분히 알지 못하는 언어로 난독 화기를 작성하고 있습니까? 흥미 롭 군. –