cgy12306

[Mobile] 안드로이드 apk Decompile & Recompile & Signing 본문

카테고리 없음

[Mobile] 안드로이드 apk Decompile & Recompile & Signing

cgy12306 2022. 12. 21. 10:27

 

Decompile

apktool d [apk 파일]

※ 난독화가 되어 있으면 에러가 발생할 수 있습니다. -r 옵션으로 리소스 디컴파일링 무시합니다.

 

decompile을 하면 apk파일명으로 폴더가 하나 생성됩니다.

 

디컴파일과 리컴파일을 테스트 하기 위해 FridaLab을 이용합니다.

CHECK 버튼을 누르면 모두 붉은색으로 뜨게 됩니다.

 

코드패치할 부분을 찾습니다.

 

completeArr은 미션을 수행했는지 확인하는 배열입니다. 1로 체크되면 미션이 수행된것으로 판단하여 붉은색을 녹색으로 변환해줍니다.

 

해당 파일을 vscode로 열어 0x0값을 0x1로 변경해줍니다.

 

Recomile

apktool b [수정한 코드가 담긴 폴더] -o [생성할 apk 파일명]

리컴파일이 완료되면 apk가 새로 생성된것을 확인할 수 있습니다.

하지만 리컴파일 된 파일을 실행하려면 서명이 필요합니다.

 

Signing

※ keytool과 jarsigner는 java/jdk/bin 아래에 위치해 있음

keytool -genkey -v -keystore [임의파일명.keysotre] -alias [별칭] -keyalg RSA -keysize 2048

비밀번호, 이름 성, 조직 단위, 조직 이름, 구/군/시, 시/도, 국가 코드를 입력 후 비밀번호를 재입력하게 되면 keystore 파일이 생성되는 것을 확인할 수 있습니다.

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [생성한 keystore 파일] [리패키징한 apk 파일명] [지정한 별칭]

생성한 keystore 파일을 이용해 재서명을 합니다.

서명이 된것을 확인할 수 있습니다.

 

리패키징된 파일을 디컴파일 하면 1로 설정된 것을 확인할 수 있습니다.

 

CHECK 버튼을 누르면 녹색으로 되어 미션 클리어된 것을 확인할 수 있습니다. (5번은 멤버 변수가 항상 frida여야 미션 클리어됨)

Comments