블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2025/5 »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

 
 


* 하기 명령어로 하려고 했으나 물리적인 인식이 잘 안됨 ( 윈도우에서도 마찬가지 )


* 아래 사이트에서 복구 프로그램 다운로드

  - recovering-deleted-files.net/android-data-recovery


* 안드로이드 폰에 설치해서 파일 복구하는 App : Diskdigger

  - http://androidcritics.com/how-to-recover-deleted-photos-videos-files-using-diskdigger/


* 이걸 한번 활용해 보면 어떨가.. ( 내일 해보는걸로.. )

  - https://santoku-linux.com/howto/mobile-forensics/how-to-brute-force-android-encryption


* dcfldd 활용하기



* busybox 활용 하기 ( 루팅 필요 )

: download( busybox-armv4tl : android) => http://www.busybox.net/downloads/binaries/   


'보안 > Forensics' 카테고리의 다른 글

[Forensics] Smartphone Forensics  (0) 2014.11.17
:

 

안드로이드 맵 v2 실행 요약 링크 : http://www.androidpub.com/2398318

 

마커 설정 링크 ; http://pppdwer.tistory.com/entry/GoogleMap-API-V2-2%EA%B5%AC%EA%B8%80%EB%A7%B5%EC%97%90-%EB%A7%88%EC%BB%A4-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-1

 

마커 링크 : http://www.iconarchive.com/show/vista-map-markers-icons-by-icons-land/Map-Marker-Flag-1-Right-Azure-icon.html

 

 

 

'클라이언트 > Android' 카테고리의 다른 글

termux에서 ubuntu 환경 만들기  (0) 2022.07.01
[Android] UI Code Eaxple  (0) 2015.11.12
Practice Diary  (0) 2014.08.27
[GoogleMap] code Google API 정리  (0) 2013.10.11
[Fragment] Fragment정보 갈무리  (0) 2013.09.13
:

안드로이드 포렌식

원제 Android forensics : investigation, analysis, and mobile security for google android.
페이지 480|ISBN ISBN 안내 레이어 보기 9788960774032|판형 B5, 188*257mm|책정보더보기 도서관 소장 정보 국립중앙도서관



@ ADB 사용 준비

 - VMware, VBOX로 USB 연결하기, 연결 시 쓰기방지 할것. ( 자동마운트 대신 수동 마운트로 할것 )

 - ADB 사용법 추가 확인 주소 : http://developer.android.com/guide/developing/tools/adb.html#commandsummary


@ 안드로이드 파일시스템과 데이터 구조

 :  물리 메모리와 파일시스템과 데이터 구조는 안드로이드 기기의 데이터 저장소를 위한 기본요소다. 그러한 요소들을 깊이 있게 이해하게 되면 안드로이드 기기를 잘 이해할 수 있을 뿐만 아니라 새롱누 파일시스템과 데이터 구조를 보게 되더라도 스스로  조사할수 있게 된다.

  - yaffs2.tar.gz 를 다운 받아서 설치한 뒤 디바이스에 마운트해서 해당 값을 확인할 수 있다.

  - Shared Preferences

    -- boolean, float, int, long, strings 에 대한 값이 저장된다.

    -- 경로 : /data/data/apk_pkg_name/shared_prefs

  - SQLite 정보 위치 ( /data/data/com.android.webkit )

    -- app_icons, app_cache, app_geolocation : 아이콘 DB 1개 , 웹 어플 데이터 캐시 1개, GPS 위치와 권한과 관련된 DB 2개

    -- app_databases 웹사이트 지원을 위한 로컬 데이터 베이스 저장소를 제공하는 21개의 데이터 베이스

    -- databases : 브라우저와 브라우저 캐시를 위한 데이터 베이스 3개

  - db 보는 명령어

    -- sqlite3 db.db


@ 안드로이드 포렌식 기술

 : 안드로이드 기기에서 포렌식 이미지를 획득하기 위한 기술을 여러가지가 있다. 만약 분석 대상 기기가 패스코드로 보호돼 있다면 그것을 회피하거나 우회해서 데이터를 추출해야만 한다. 패스코드를 회피하기 위한 기술을 여러가지가 있지만 어느 상황에서나 항상 패스코드를 회피하는 것은 불가능하다. 일단 기기에 접근 가능하면 포렌식 분석가는 삭제되지 않은 데이터에 초점이 맞춰진 콘텐트 프로바이더를 통한 논리적인 데이터 획득이나 물리적인 데이터 획득 방법 중에서 어느 기술을 사요할 것인지 선택할 수 있다. 물리적 데이터 획득 기술은 이용하면 더 많은 데이터를 얻을 수 있지만 일반적으로 더 복잡한 분석 기술을 필요로 한다.

 - APK 보안 검토 툴 : http://viaforensics.com/appwatchdog/

 - AFLogical : 콘텐트 프로바이더로 접근할 수 있는 정보를 추출한다. viaForensics에서 무료 배포.

  -- 결과물은 CSV로 출력



 - 포렌식에 사용될 수 있는 상업용 제품

  -- Cellebrite UFED

  -- Compelson MOBILedit!

  -- EnCase Neutrino

  -- Micro Systemation XRY

  -- Paraben Device Seizure

  -- viaForensics의 viaExtract

  ( more. Oxygen Forensic Suite, Logicube's CellDEK )


 - 기기의 루트 권한 획득

  -- [ $ adb shell su ] 명령어로 루트 권한 획득이 가능한지 확인 ( 루팅 확인 )

  -- 복구 모드를 이용하여 루팅( 일시적/영구적 ) 하거나 취약점을 사용해서 루팅한다.

  -- 권한 획득 : 부트로더, RSD Lite, sbf_flash, fastboot, AFPhysical


@ 안드로이드 애플리케이션과 포렌식 분석

 : 조사할 안드로이드 기기를 획득하는 것은 연구나 개발, 논의 에 있어서 매우 주요한 부분이지만 안드로이드 포렌식에서는 단지 시작일 뿐이다. 분석을 위해서는 논리적 물리적 기술이 모두 필요하다. 하지만, 물리적 데이터 획득 이후에 더 많은 양의 분석이 요구 된다. 이 부분에서 목적은 포렌식 분석가나 보안 엔지니어가 안드로이드 기기를 조사할 수 있는 기술, 심지어 포렌식 툴이 제대로 지원하지 못하는 파일시스템이라고 하더라도 그것을 조사할 수 있는 기술을 제공하는 것이다. 기존의 포렌식 툴과 리눅스 명령. 그리고 경우에 따라서는 헥스 분석을 사용하면 조사가 필요한 데이터 대부분을 분석할 수 있다.

 - Hex : 포렌식 분석가의 좋은 친구

  -- $ sudo apt-get install ncurses-hexedit // 매우 빠른 터미널 기반의 헥스 에디터; 다른 것을 써도 된다.

 - strings 를 활용해서 정보의 갯수를 알 수 있다; 정보의 유/무

  -- $ strings --all --radix=x mmssms.db | grep 312123123 | wc -l // 해당 정보 312123123가 몇 개 존재하는 지 알수 있다.

 - FAT 포렌식 분석

  -- log2timeline을 이용한다. 그 전에 앞에서 활용했던 SD 카드 이미지 만들기, TSK의 mmls로 이미지를 조사하고, 이미지를 마운트해야 한다. ( 기타 추가 설명은 p 384에 있다. )

- YAFFS2( http://yaffs.net/yaffs-debugging ) : $ scalpel -c ~/scalpel-android.conf ~/xxx-datadata.dd -o ~/xxx-scalpel-test

- 법 집행기관이나 포렌식 분석가를 위한 리눅스를 아주 잘 설명한 웹사이트 ( Linux LEO : The Law Enforcement and Forensic Examiner's Introduction to Linux ) : http://www.linuxleo.com



# 책을 다 보고 나니, 이렇게 간단히 정리되었다. 정보 파일에 접근하기 위해 복구 및 권한을 가진 후 기기에 손상이 가지 않도록 복사한다. 그 다음에 해당 정보에서 필요한 정보를 추출한다.

# 여기서 들어가는 기술을 분리하자면 권한 획득, 복구 기술, 접근 기술, 추출 기술로 나뉘어지는 것 같다.














:

[Fragment] Fragment정보 갈무리

클라이언트/Android | 2013. 9. 13. 14:21 | Posted by youGom


Fragment 와 activity 차이점 알아보기 위해 검색하다가 찾은 정보.

* Fragment(프래그먼트) for Honeycomb



* 프래그먼트에 대해서



'클라이언트 > Android' 카테고리의 다른 글

termux에서 ubuntu 환경 만들기  (0) 2022.07.01
[Android] UI Code Eaxple  (0) 2015.11.12
Practice Diary  (0) 2014.08.27
[GoogleMap] code Google API 정리  (0) 2013.10.11
[GoogleMap] 개발 관련 이미지 자료  (0) 2013.10.03
:

[리버싱] 심볼제거 정보

보안/리버싱 | 2013. 9. 9. 12:43 | Posted by youGom

 

출처 ;

http://verysimple.org/wiki/moin.cgi/HideDebugSymbol#fndef-789cb63c063e4d9502bddcaf0d2e4ecef8e9de1b-0

 

 

JNI native 프로젝트인 경우

  • Java로만 구성된 프로젝트와는 달리 <<JNI>> native 가 추가되면 <<ProGuard>>에서 Java와 동시에 Native쪽까지 처리해주지 못한다.

  • JNI 쪽에 등록된 함수명을 ProGuard가 임의로 바꾸면 안된다. --> ProGuard 측에서 특정 함수명을 바꾸는 것을 금지하도록 설정할 수 있다.

Native 측의 디버깅 심볼 숨기기

  • so 파일에 심볼이 존재하는 지 확인하는 방법
    1. apk은 zip 압축방식과 동일하므로 zip프로그램으로 압축을 푼다.
    2. 압축 푼 lib/armeabi 폴더 밑에 *.so 파일을 확인한다.
    3. objdump.exe1 나 readelf.exe1 를 이용해서 so 파일 안에 심볼이 존재하는지 확인

      • objdump -S *.so
        혹은
        readelf -Wa *.so
  • so 파일의 심볼을 지우기
    1. gcc 컴파일 옵션 추가
      • Android.mk 파일에 디버깅 심볼을 지우는 옵션 추가
        LOCAL_CFLAGS    := -fvisibility=hidden

        어떤 PC에서는 되고2 어떤 PC에서는 심볼이 모두 통체로 사라진다. --> NDK 버전 문제로 추측된다.

    2. strip1 파일로 so 파일에서 직접 심볼을 지우기

iPhone

어뷰징 이슈

  • 탈옥된 폰에서 아래와 같은 방법으로 어뷰징을 할 수 있음
    • 공격방법 : 탈옥된 디바이스에서 gdb를 이용한 디버깅, jump 명령어로 내부함수를 직접호출하면 인터럽트가 발생할 때까지 해당 함수가 반복되어 곧바로 최고 레벨을 달성할 수 있습니다.
      (gdb) info functions
      ... (생략) ...
      0x00023ebc LevelUp
      0x000d3a08 GetItem
      ...(생략) ...
      (gdb) call LevelUp
      $1 = {<text variable, no debug info>} 0x23ebc <LevelUp>
      (gdb) jump LevelUp --> LevelUp() 함수 반복 수행으로 레벨200 달성
      Continuing at 0x23ecc.
      
      (gdb) p (int) GetItem(20) --> 아이템 생성
      $1 = 1
      (gdb) p (int) GetItem(21)
      $2 = 1
      (gdb) p (int) GetItem(22)
      $3 = 1

원인

  • 실행 바이너리 파일에 심볼 정보가 남아있어서 발생하는 문제.
:

테마 사이트 : http://www.android-themes.com/
 

'재밌는 흔적 > 즐겨찾기 - 사이트' 카테고리의 다른 글

슈퍼 패미 콤 ( SFC ) 게임  (0) 2011.05.19
쇼핑 관련 사이트  (0) 2011.04.29
여행 관련 사이트  (0) 2011.04.29
관공소 사이트  (0) 2011.04.19
부동산 관련 즐겨찾기 사이트  (0) 2011.04.15
: