안드로이드 환경에 맞게 제작된 프로그램은 쉽게 디컴파일 되기 때문에 디컴파일 되더라도 프로그램의 기능이나 흐름을 파악하기 힘들도록 패키지나 클래스, 메소드 이름 등을 난독화 한다.
 다른 방법으로 실제 작동을 하는 프로그램은 암호화 하여 저장 한 뒤 랩퍼 프로그램을 통해 실제 동작하는 프로그램을 복호화 하는 방법을 사용한다.

'0x002 OperatingSystem > 04. Android' 카테고리의 다른 글

[Command] nm  (0) 2017.12.29
[Tip] Dex 추출 방법  (0) 2017.12.29
[Command] ADB  (0) 2017.12.29
[Theory] 동적 디버깅  (0) 2017.12.29
[Theory] 안드로이드 필수 구성 요소  (0) 2017.12.29

 ADB를 통해 안드로이드 기기에 접근하는 방법은 다음과 같다.

 1) 장치 -> 로컬
  adb { options } pull [path to copy from] [local path to copy to]
 2) 로컬 -> 장치
  adb {options} push [local path to copy from] [path to copy to on avd]

ADB를 이용한 APK 설치 방법은 다음과 같다.
 adb {option} install [path to apk]

'0x002 OperatingSystem > 04. Android' 카테고리의 다른 글

[Command] nm  (0) 2017.12.29
[Tip] Dex 추출 방법  (0) 2017.12.29
[Tip] 분석 방지 솔루션 우회  (0) 2017.12.29
[Theory] 동적 디버깅  (0) 2017.12.29
[Theory] 안드로이드 필수 구성 요소  (0) 2017.12.29

 안드로이드 앱을 동적으로 디버깅 하기 위한 절차는 다음과 같다.

  1) APK Tools 를 이용해 디버깅 모드로 덤프한다.
  2) APK Tools 를 이용해 디버깅 모드로 덤프한 것을 디버깅 모드로 다시 패키징한다.
  3) 디버깅 모드로 패키징한 apk 파일을 서명해 AVD에서 실행한다.
  4) Netbeans 를 이용해 1) 에서 진행한 코드를 프로젝트에 추가 하고 android.jar 파일을 라이브러리에 추가한다.
  5) DDMS를 이용해 대생 앱에 대한 포트를 확인 및 연결한다.
  6) Netbeans IDE 탭 메뉴에서 Debug > Attach Debugger > Select JPDA를 선택해 Host 와 Port 를 설정함으로써 원격 디버깅을 연결한다.
  7) 분석할 부분에 브레이크 포인트를 설정한다.
  8) 에뮬레이터에서 특정 이벤트를 발생해 브레이크 포인트 설정 부분의 라인을 실행하게 유도한 뒤 동적 디버깅을 시작한다.

출처 : 안드로이드 모바일 악성코드와 모의 해킹 진단

'0x002 OperatingSystem > 04. Android' 카테고리의 다른 글

[Command] nm  (0) 2017.12.29
[Tip] Dex 추출 방법  (0) 2017.12.29
[Tip] 분석 방지 솔루션 우회  (0) 2017.12.29
[Command] ADB  (0) 2017.12.29
[Theory] 안드로이드 필수 구성 요소  (0) 2017.12.29

+ Recent posts