2014. 10. 14. 13:08ㆍSecurity ★ Development/안드로이드 모바일 보안
* 틀린 내용이 있을 시 지적 부탁드립니다.
http://codeengn.com/challenges/smartapp/01
이걸 풀어보겠습니다. 파일을 다운받아 설치하려고하면 설치가 안됩니다.
dex2jar로 jar를 만들어 jd-gui로 소스를 보려고했으나 jd-gui가 jar를 열지 못합니다.
apk를 zip파일로 바꾸어 압축을 풀어줍니다. 이름이 비정상적인 파일이 3가지 있습니다.
AndroidManlfests.xml class.dex resource.arsc
또한 어플리케이션을 서명한 후 생기는 META-INF 폴더가 없습니다.
파일명들을 수정하고 서명을 해줍니다.
서명을 하기위해서 signapk.jar를 이용할건데 개인 키로 서명된 인증서가 필요합니다.
openssl을 이용하여 인증서를 생성하기위해 우분투 환경에서 sudo apt-get install openssl 명령으로 openssl을 설치합니다.
그리고 rsa 1024비트 인증서를 생성합니다.
openssl genrsa -out temp.pem 1024
키를 생성합니다.
openssl req -new -key temp.pem -out temp2.pem
몇가지를 입력해야하는데 적당히 써줍니다.
openssl x509 -req -days 999 -in temp2.pem -signkey temp.pem -out ssos.pem
x509인증서를 쓰며 유효기간은 999일인 인증서를 생성합니다.
ssosj.pk8이라는 이름으로 개인 키를 생성해줍니다.
openssl pkcs8 -topk8 -outform DER -in temp.pem inform PEM -out ssosj.pk8 -nocrypt
ssignapk.jar를 다운받습니다.
http://goo.gl/r7xadP
java -jar signapk.jar ssos.pem ssosj.pk8 SmartAppL01.apk SmartApp-signed.apk
를 실행하면 서명된 apk가 생성됩니다.
이를 설치하고 실행하면 키를 확인할 수 있습니다.
AndroidManifest.xml을 열어서 권한을 보려고 하면 암호화가 된 것처럼 글씨가 깨져서 나옵니다. 이는 AXMLPrinter2.jar를 이용해서 확인할 수 있습니다.
https://cod.google.com/p/android4me 다운로드
java -jar AXMLPrinter2.jar AndroidManifest.xml을 이용해 알아볼 수 없었던 매니피스트 파일을 볼 수 있습니다.
'Security ★ Development > 안드로이드 모바일 보안' 카테고리의 다른 글
smali 로그 코드 추가 (0) | 2014.10.29 |
---|---|
안드로이드 해킹대회 어플 문제 2 (0) | 2014.10.27 |
안드로이드 진단 도구 (0) | 2014.10.05 |
안드로이드 어플 진단 4 (0) | 2014.10.01 |
안드로이드 어플 진단 3 (0) | 2014.09.30 |