반응형
반응형

 

01.7z
0.21MB
key.keystore
0.00MB
SmartAppL01_repack.apk
0.21MB

 

 

반디집, jdk(version 8), apktool이 설치되어 있어야 하며, 진행은 모두 Windows에서 진행했다.

 

jdk가 설치되지 않으면 후에 서명 key를 만들고 apk 파일에 서명할 때 사용하는 keytool과 jarsigner 툴들을 사용할 수 없다.

 

apktool.jar
19.06MB
apktool.bat
0.00MB

 


분석

 

 

압축 해제 하면 위와 같이 SmartApp L01 파일이 있다.

 

 

해당 파일을 반디집으로 열어보면 위와 같이 lib, res, AndroidManIfests.xml, class.dex, resource.arsc 폴더와 파일들이 있다.

 

 

SmartApp L01.apk 파일을 Nox player에 Drag & Drop 해봤지만 어플 설치에 실패했다.

 

그렇다면 현재 SmartApp L01.apk 파일은 정상적인 파일이 아니라는 것이다.

 

정상적인 파일로 만들어줘야 하는데 보통의 apk 파일에서는 

 

AndroidManIfests.xml이 아니라 AndroidManifest.xml 파일이다.

 

class.dex이 아니라 classes.dex이다.

 

resource.arsc가 아니라 resources.arsc이다.

 


풀이

 

파일 이름들을 올바르게 변경

 

 

반디집에서 해당 파일을 우클릭하면 이름 바꾸기가 있다.

 

 

 

각 파일들을 우클릭하여 이름을 바꿔준다.

 

이름을 바꾸고 nox player에 앱을 Drag & Drop 하면 여전히 어플 설치가 되지 않는다.

 

이유는 재서명을 해줘야 하기 때문이다.

 

 

apk 파일 디컴파일 및 새로운 이름의 apk 파일로 리패키징

apktool d '.\SmartApp L01.apk'

 

powershell에서 압축 해제한 폴더까지 이동 후 위의 명령어를 입력하여 apk 파일을 디컴파일한다.

 

 

 

그러면 위와 같이 apk 파일과 동일한 이름의 폴더가 생성되었을 것이다.

 

 

SmartApp L01 폴더 내에 위와 같이 apktool이라는 .yml 확장자 파일이 있어야 리패키징이 가능하다.

 

apktool b '.\SmartApp L01' -o SmartAppL01_repack.apk

 

위의 명령어를 입력해 SmartAppL01_repack.apk 파일로 리패키징 해준다.

 

 

그러면 새로운 apk 파일이 생성되었다.

 

새로 생성된 apk 파일에 서명을 해주어야 한다.

 

 

keytool로 서명키 생성

 

keytool -genkey -v -keystore key.keystore -alias key -keyalg RSA -keysize 2048

 

위의 명령어를 입력해 새 키를 생성해주는데, 키 파일의 비밀번호 6자리를 지정해주고 Enter를 쭉 입력한 뒤 마지막에 입력한 값들이 맞는지 묻는 질문에 yes라고 입력해주면 된다.

 

 

그러면 위와 같이 서명 key 파일이 생성되었을 것이다.

 

 

새로 만든 apk 파일에 서명하기

 

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore .\SmartAppL01_repack.apk key

 

위의 명령어를 입력해 apk 파일에 서명한다.

 

비밀번호 입력 부분은 이전에 서명 key 생성 시 입력했던 비밀번호를 입력하면 된다.

 

 

nox player에 서명한 apk 파일 설치 및 실행

 

 

SmartAppL01_repack.apk 파일을 nox player에 Drag & Drop 하면 위와 같이 FindKey1 이라는 어플이 생긴다.

 

 

FindKey1 어플을 실행하면 위와 같이 나오는데, Key 버튼을 누르면

 

 

위와 같이 key 값이 나온다.

 

 

반응형

+ Recent posts