Written by Nyaong



Exif


교환 이미지 파일 형식 (Exif; EXchangable Image File format)은 디지털 카메라에서 이용되는 이미지 파일 포맷이다.


라고 하는데 그냥 간단하게


사진에다가 정보를 태그 해주는 걸 의미



윈도우에서 우클릭 -> 설정으로도 확인 할 수 있다.




해당 방법은 GPS 뿐만 아니라 핸드폰 모델, ISO, 선명도 등을 태그 할 수 있는데 사용 법에 대하여 설명 드릴께요~



우.선!  안드로이드의 경우


Exif 지원 하는 파일명으로는 JPEG, DNG, CR2, NEF, NRW, ARW, RW2, ORF, PEF, SRW, RAF.


인데 뭐.. JPEG를 제외하고는 다들 생소 할 테니 넘어가도록 하자!(파일 압축을 png와 같은 걸로 압축 해놓으면 안되요)






사용법



쓰기



1
2
3
4
5
6
7
public void Exif_Tag(String image_location){
    
    ExifInterface exif = new ExifInterface(image_location);
    exif.setAttribute(ExifInterface.TAG_MAKE,"SAMSUNG");    // 제조사 기입
    exif.setAttribute(ExifInterface.TAG_MODEL,"SHV-E201L");    // 모델명 기입
    exif.saveAttributes();    // 입력한 값 
}
cs


읽기



1
2
3
4
5
6
7
8
public void Show_Exif_Tag(ExifInterface exif){
    
    String Attribut = "Exif";
 
    Attribut += getTagString(ExifInterface.TAG_MAKE, exif);
    Attribut += getTagString(ExifInterface.TAG_MAKE, exif);
    
}
cs



이런 식으로 사용 하시면 됩니다!


단. GPS 위도/경도 입력시 단위 변환 후 기입을 해야되서 참고 하시기 바랍니다 :)


참고 자료 : StackOverflow (Link)

'연구 및 공부 이야기 > C, C++, JAVA' 카테고리의 다른 글

[C] 연산자 우선순위  (0) 2017.05.20
본 내용은 대구가톨릭대학교 컴퓨터공학과 4학년 1학기 수업 컴퓨터 영상신호처리에 기반함
공부한 내용을 복습을 위한 정리
추가 필요 개념 또는 추가 학습내용도 올라감

제1-1장 영상처리의 개요 및 프로그램 작성함수

제1-2장 디지털 영상처리의 기초

제2장 포인트 처리

제3장 영역 처리

제4장 영상 개선과 복원

제5장 디지털 간색

제6장 기하학적 처리

제7장 영상 변환

제8장 영상 압축

Written by 캐슬서클


공간 주파수 해상도

  • 주파수에 따라 물체의 인식 정도가 달라진다.
  • 그림 1에서 왼쪽 사각형과 오른쪽 사각형 선 간격이 다름을 알 수 있다.
  • 왼쪽의 그림은 오른쪽의 그림과 비교 했을 때 대비되는 선의 간격이 넓음을 확인 가능하다.
  • 이에 왼쪽의 그림은 저주파 이미지, 오른쪽 그림은 고주파 이미지라 부를 수 있다.
  • 또한 저주파는 높은 에너지를 가지며, 고주파는 낮은 에너지를 가진다.
  • 저주파 이미지는 멀리서 볼 경우 검은색 이미지로 보인다. 이에 에너지가 낮다고 한다.

<그림 1> (좌) 저주파 이미지 (우) 고주파 이미지


    인간의 시각 시스템

    • 큰 의미가 없기 때문에 스킵함. 필요, 요청에 의하면 업로드 할 예정

    공간해상도

    • 이미지 영상을 구하는 화소의 개수
    • 흔히 자주 듣는 1080p, 720p가 공간 해상도와 같다.
    • 1080, 720은 세로의 픽셀 수를 의미하며 우리는 공간해상도 개념을 자연스럽게 쓰고 있다.
    <그림 2> 공간 해상도 별 레나 이미지
    • 그림 2의 1행 1열은 가장 높은 해상도 256 x 256 이며, 2행 2열은 가장 낮은 해상도 16 x 16 이다.
    • 해상도가 높을 수록 이미지가 표현되는 픽셀블럭이 눈에 안띔을 볼 수 있다.

    밝기 해상도

    <그림 3> 밝기 해상도에 다른 레너 이미지

    • 그림 3은 공간 해상도와 마찬가지로 밝기 해상도 별 레나 이미지이다.

    • 공간 해상도 처럼 높은 밝기 해상도 일 수록 밝기 표현 범위가 넓다




    안드로이드 어플리케이션 리버싱을 처음 시도 할 때 대부분의 유저들이 정적 분석을 시도하게 되는데


    이때 Smali(Dalvik code) 코드로 변환 하여 


    해석 하시는 방법으로 진행 하는 분이 많은데요.


    좀더 쉽게!


    직관적으로!


    얍삽하게




    java 코드를 원시코드에 가깝게 보면서 리버싱을 진행 하시게 되면 쉽게 코드 해석을 할 수 있게되어 빠르게 진행이 가능 한데요.


    해당 툴들을 소개 해드리려고 합니다.






    Dex2jar / JD-GUI


    Dex2jar : .dex 을 smali / .jar 등으로 변환을 시켜주는 프로그램


    JD-GUI : .jar 파일로 압축된 .class 파일들을 java 코드로 보여주는 프로그램




    구동 환경


    Window, linux( + mac)

    /** window 는 .bat   linux 는 .sh 파일로 존재 **/


    으로 다들 가지고 계신 컴퓨터 환경에서는 대부분 돌아가실듯 합니다!



    다운로드


    Dex2jar


    github : https://github.com/pxb1988/dex2jar


    SourceForge : https://sourceforge.net/projects/dex2jar/files/



    JD-GUI


    공식 : http://jd.benow.ca/


    사용 방법


    * 해당 시연은 직접 제작중인 안드로이드 어플리케이션 기반으로 테스트 하였습니다.

    ** java 소스코드 보안기법에 따라 특정 부분이 보이지 않을 수도 있습니다.




    Dex2jar



    1. 역공학을 진행할 어플리케이션을 압축 해제 프로그램을 사용하여 미리보기 한후 


    classes.dex 파일을 다운받은 Dex2jar 폴더에 집어 넣는다





    2. dex2jar 폴더에 넣은 classes.dex 를 drag & drop으로 .jar 파일을 생성 합니다.




    3. 추출한 classes.jar 파일을 JD-GUI 프로그램을 사용하여 열기




    요로코롬 하시면 모든 소스코드가 원시코드에 가깝게 출력되게 됩니다!


    뭐.. 이정도 하셨으면 Dalvik 와 비교하여 쉽게 해석을 하실 수 있습니다 :)





    작성자 : Nyaong

    + Recent posts