-
안드로이드 실행 파일 포맷 - 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...
-
우리도 스웩 (Swagger를 이용한 REST API 설계 및 검증)
REST API 개발로 전환하게 된 배경 누리랩은 주로 보안 관련 라이브러리를 개발해 판매하고 있다. 그러다보니 윈도우용 dll, 리눅스용 so 뿐만 아니라 업체 요구사항에 때문에 자바 연동을 위해 JNI를 개발해야 하는 경우도 많다. 심지어 업체 제품 운영환경까지 고려하다보면 솔라리스, AIX로 보안 라이브러리를 포팅하기도 한다. 그러다보니 라이브러리 개발에 있어 업체 운영환경에 영향을 최소화할 방법이 필요했다. 이후 누리랩 대다수 보안 라이브러리는 REST API 방식을 채택하게 되었고 필요에 따라 도커를 통해 업체 장비에 임베딩하는 형태로 개발되기도 한다. REST API...
-
파이썬을 이용하여 파일 업로드/다운로드 자동화하기
개요 누리랩에서는 악성코드를 수집하고 이를 분석한 뒤 유사도를 이용한 악성코드 탐지 정보를 아마존 EC2에 업로드한다. 누리랩의 주요 제품들은 이 정보를 다운로드 하여 악성코드 차단을 수행하게 된다. 악성코드는 아래 그림에서 보듯이 고객 또는 누리랩의 제품 서비스 그리고 허니팟등을 이용해 수집 서버에 파일을 모아두게 되는데 이는 FTP 접속을 통해 악성코드를 내려 받을 수 있다. 하지만 아마존 EC2는 SFTP를 통해 악성코드 유사도 정보를 업로드해야 한다. 여기에서는 파이썬을 이용해 FTP 서버에서 파일을 업로드/다운로드 방법과 아마존 EC2 인스턴스에 SFTP 접속하여...
-
디스크 이미지 파일 포맷 - ISO
개요 ISO 이미지(ISO image)는 국제 표준화 기구(ISO)가 제정한 광학 디스크의 압축 파일(디스크 이미지)이다1. 최근 이메일을 이용한 첨부 파일 형태의 공격 중 iso를 이용한 형태가 급증하고 있다. 결국 ISO 파일 내부에 존재하는 별도의 파일을 추출해야지만 악성코드를 탐지할 수 있다. ISO 구조 ISO 파일은 디스크 이미지인 만큼 섹터 단위로 구성되어 있다. 하나의 섹터의 크기는 2048(0x800) Byte이다2. ISO 구조를 해석하기 위해서는 볼륨 디스크립터부터 해석을 해야 하며 16 섹터에 위치하고 있다. 볼륨 디스크립터 구조 볼륨 디스크립터에서 볼 수 있듯이...