이번에는 DIVA앱의 코드를 수정해서 토스트 메시지를 띄우는 코드를 추가해서 앱의 동작을 변조해 볼 것이다.
우선 자바 코드를 수정하기 위해서 APK Studio를 이용해서 메인 액티비티 코드를 분석해 보자.
액티비티 생명주기에서 가장 먼저 작동하는 함수인 onCreate 함수에 토스트 메시지를 출력하는 코드로 수정을 해보자.
이렇게 코드 수정이 완료됐다면 코드를 다시 빌드하고 설치할 수 있는 APK파일로 만들어야 한다.
상단에 Project를 누르고 build를 눌러주자
빌드가 성공적으로 됐는지 확인하기 위해서는 터미널에서 종료 코드가 0으로 출력됐는지 확인하면 된다.
이제 disk 경로에 파일을 보면
이렇게 APK 파일이 생성됐을 것이다.
생성된 APK 파일은 서명이 되어 있지 않아서 직접 설치할 수 없는 상황이다. 최초 DIVA앱의 서명키는 해당앱의 개발자만 가지고 있기 때문에 재서명이 불가능하다. 그렇기 때문에 직접 서명키를 만들고 서명해야 한다.
설정에 들어가서 서명키를 만들어보자.
저장이 끝났다면 서명해 보자.
이제 Nox에 다시 앱을 설치해 보자
기존에 있던 diva앱을 지우고 윈도우 터미널에서 아래와 같은 명령어를 쳐주면 된다.
그리고 새로 생긴 앱을 실행하면
기존에는 출력되지 않았던 메시지가 이렇게 출력이 된다!
--리패키징 서명키--
취약점을 진단할 때 개발자가 앱을 출시할 때 사용하는 서명키와 공격자가 사용하는 서명키의 목적이 다르다.
개발자 : 공식적으로 발급받은 서명키로 해당앱이 개발자에 의해 만들어졌음을 인증(이것으로 앱스토어 등에 출시)
공격자 : 악성코드를 포함한 앱을 성성하는 데 사용
이렇게 누군가가 만들어둔 앱(여기서는 DIVA)에 임의의 코드를 넣고 앱을 실행시키자마자 작동하도록 만들 수가 있다. 지금은 토스트 메시지를 출력하도록 했지만 악성코드나 특정 프로그램을 실행시키도록 한다면 매우 위험한 일이 발생할 수 있다.
이러한 일이 발생하는 것을 방지하기 위해서 안드로이드에서는 인증서를 이용하여 앱을 서명하는 방법을 사용한다.
그래서 구글 플레이스토어나 앱스토어에서 서명된 설치 파일만을 배포하여 유출을 방지하고 안전하게 관리한다.
'안드로이드 모의해킹 > 동적 분석' 카테고리의 다른 글
프리다를 이용한 후킹2 (1) | 2024.09.13 |
---|---|
프리다를 이용한 후킹 (2) | 2024.09.13 |
TCP 패킷 스니핑 (0) | 2024.09.13 |
통신 취약점 진단 (3) | 2024.09.11 |