2012-04-01 2 views
3

그래서 복사 방지를 제거하기 위해 앱의 Dalvik 캐시를 패치하는 도구가 있습니다. 실제로 dalvik 캐시를 확인하는 방법이 있습니까?Dalvik 캐시가 수정되었는지 확인하는 방법

복사 된 DEX 파일일까요? 그렇다면 여전히 동일한 체크섬을 갖고 있습니까? 그리고 루트가 아닌 앱이 체크섬을 얻는 것이 실제로 가능합니까?

답변

4

dalvik 캐시의 파일은 원본 dex 파일이 아니며 odex (최적화 된 dex) 파일입니다. 응용 프로그램이 설치되면 해당 dex 파일이 추출 된 다음 dalvik이 최적화 통과를 실행하고 그 결과를 dalvik 캐시에 저장합니다.

dalvik 캐시 디렉토리에 대한 디렉토리 권한은 비 시스템 응용 프로그램이 디렉토리 내용을 나열하지 못하게하지만 실행 권한이 설정되고 odex 파일 자체는 세계에서 읽을 수 있으므로 응용 프로그램은 파일을 알고 있으면 액세스 할 수 있습니다 이름.

그러나 모든 장치에서 잠재적으로 다를 수 있으므로 odex 파일의 무결성을 검사하는 것은 어려울 수 있습니다. 따라서 간단한 체크섬 검사를 수행 할 수 없습니다.

당신은 dex 파일 구조를 깊이 비교하고 원래의 dex 파일과 비교해야한다고 생각합니다. 확실하게 알고 싶다면 odex 파일을 먼저 de-odex해야하고 그 결과를 원본 dex 파일과 비교해야합니다.

+0

통찰력을 주셔서 감사합니다 :) – Force

1

나는 (장치에 직접) dexopt 프로세스를 호출하고 dalvik 캐시의 프로세스와 새로 생성 된 dex를 비교할 수 있다고 생각합니다. 캐시 된 dex가 수정되면 변경 사항 자체가 검사를 비활성화 할 수 있습니다. 행운의 patcher의 저자는 자산에서 외부 코드를로드하고 그 자리에서 실행하도록 제안했지만, 이것은 쉽지 않을거야 100 % 효과

관련 문제