본문 바로가기

모바일

[NOOBHACK] apk파일 리패키징 하는 방법

오늘은 apk 파일을 리패키징 하는 방법을 알아보자 먼저 apk_tool를 깔아야 한다.

 

https://bitbucket.org/iBotPeaches/apktool/downloads/

 

iBotPeaches / Apktool / Downloads — Bitbucket

For large uploads, we recommend using the API. Get instructions

bitbucket.org

 

그리고 디컴파일을 할 apk 파일을 준비한다.

다음과 같이 디컴파일 명령어를 내릴 수 있다.

 

apktool d 디컴파일할apk.apk

이렇게 하면 디컴파일 된 apk 파일이 폴더 형태로 출려된다.

디컴파일 된 apk 파일을 수정 할 수 있다. 

디컴파일 된 파일은 smail 언어로 디컴파일 되어 있으므로, 코드 수정을 위해선 smail 언어에 대한 지식이 필요하다.

 

그리고 우린 폴더를 다시 apk 파일로 만드는 명령어를 알아야 한다.

apktool b 디컴파일폴더 -o 출력이름.apk

 

이런 명령어로 apk 파일로 다시 만들 수 있다. 이 과정을 리패키징이라고 하며 악의적인 용도로 코드, 파일을 수정하는 것 또한 포함되는 과정이다.

 

하지만 이 apk 파일을 그대로 안드로이드에 설치 할 수 없다.

이 apk 파일에 디지털 서명이 없다면 안드로이드에서는 이 apk 파일을 거부한다.

 

우리는 또 apk 파일에 디지털 서명을 써보자

먼저 keytool이 필요한데 자바가 있으며 자동으로 설치되니, 없다면 자바를 설치해 주자

https://www.java.com/ko/download/ie_manual.jsp?locale=ko 

 

Windows용 Java 다운로드

 

www.java.com

 

그리고 keytool를 통해 키를 생성해 주자

 

keytool -genkey -v -keystore my-release-key.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias

이 명령어를 실행하면 기본적으로 서명 이름, 비밀번호 등 여러 정보를 작성 해주어야 한다

이 명령어는 기본 적인 키를 생성해 주는 예제다 이에 해설은 아래에 있다.

 

keytool -genkey -v -keystore 키저장소.keystore -keyalg 암호화_방식 -keysize 키_사이즈 -validity 유효기간 -alias 키이름

 

이제 생성된 키를 apk에 서명해 주자.

그러기 위해선 jarsigner가 필요한데 자바 깔면 자동으로 깔리는거다.

 

jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore my-release-key.keystore YourApp.apk my-alias

이 명령어는 원하는 apk 파일에 디지털 서명을 해준다. 해설은 아래와 같다

 

jarsigner -verbose -sigalg 서명_알고리즘 -digestalg 암호화_방식 -keystore 키_저장소.keystore 서명하려는_apk.apk 서명_할_키

 

이렇게 하면 apk 파일은 안드로이드에 설치 할 수 있다!

 

이제 apk 파일을 안드로이드에 설치하는 방법은 간단하다

나는 NOX를 예시로 설치하는 명령어는 adb로 할 것이다.

 

adb란 안드로이드에서 원격으로 쉘을 실행하게 도와주는 도구다.

 

adb shell // 원격 쉘 접속
adb install 설치할apk.apk // apk 설치

솔직히 좀 쉬운듯 하다

'모바일' 카테고리의 다른 글

[NOOBHACK] APK 파일 분석하는 방법  (0) 2022.10.07
[NOOBHACK] apk 파일 이란?  (1) 2022.10.07
[NOOBHACK] 안드로이드 컴포넌트  (1) 2022.10.05
[NOOBHACK] 안드로이드란?  (0) 2022.10.04