-
안드로이드 실행 파일 포맷 - dex (3)
연재 순서 첫번째 글: classes.dex 파일 포맷 (Header, String IDs) 두번째 글: classes.dex 파일 포맷 (Type IDs, Proto IDs) 세번째 글: classes.dex 파일 포맷 (Field IDs, Method IDs) 네번째 글: classes.dex 파일 포맷 (Class Defs, Map List) 1. classes.dex 추가 파일 포맷 이전 글에 이어 계속 설명을 이어갑니다. (5) Field IDs Field 정보 역시 헤더에 시작 위치와 개수가 저장되어 있다. print hdr['field_ids_size'] # 전체 Field 정보 개수 print hex(hdr['field_ids_off']) # 전체 Field 정보 시작 위치...
-
안드로이드 실행 파일 포맷 - dex (2)
연재 순서 첫번째 글: classes.dex 파일 포맷 (Header, String IDs) 두번째 글: classes.dex 파일 포맷 (Type IDs, Proto IDs) 세번째 글: classes.dex 파일 포맷 (Field IDs, Method IDs) 네번째 글: classes.dex 파일 포맷 (Class Defs, Map List) 1. classes.dex 추가 파일 포맷 이전 글에 이어 계속 설명을 이어갑니다. (3) Type IDs 다음은 classes.dex가 보유하고 있는 type들이다. 이 역시 헤더에 type 정보의 시작 위치와 개수가 저장되어 있다. print hdr['type_ids_size'] # 전체 Type 정보 개수 print hex(hdr['type_ids_off'])...
-
안드로이드 실행 파일 포맷 - dex (1)
연재 순서 첫번째 글: classes.dex 파일 포맷 (Header, String IDs) 두번째 글: classes.dex 파일 포맷 (Type IDs, Proto IDs) 세번째 글: classes.dex 파일 포맷 (Field IDs, Method IDs) 네번째 글: classes.dex 파일 포맷 (Class Defs, Map List) 1. classes.dex 파일 (1) APK 내부에는 classes.dex 파일명으로 Dalvik Executable File1이 존재한다. 이는 안드로이드에서는 실행 파일에 속하는 파일이다. import mmap fp = open('classes.dex', 'rb') mm = mmap.mmap(fp.fileno(), 0, access=mmap.ACCESS_READ) #--------------------------------------------------------------------- # TEST #--------------------------------------------------------------------- print mm [실행결과] <mmap.mmap object...