해당 파일 다운받아보면 apk 파일 하나가 나오는데 설치 도중 패키지가 손상되었다고 나온다.
왜 오류가 나는지 도저히 모르겠어서 대회당일날은 포기했는데 write up 에서 android:testOnly="true" 때문에 설치가 안된거라고 보고 바로 문제 잡고 풀기 시작했다.
먼저 apktool로 해당 apk파일을 분리하고 xml 파일을 수정해줘야 한다.
java -jar apktool_2.3.1.jar d droid.apk
분리 해줬으면 droid 폴더가 생성되고 안에 xml 파일이 있는데 소스는 아래와 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.puing.a2018codegate"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:testOnly="true" android:theme="@style/AppTheme"> <activity android:label="@string/app_name" android:name="com.example.puing.a2018codegate.MainActivity" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:label="@string/title_activity_main2" android:name="com.example.puing.a2018codegate.Main2Activity" android:theme="@style/AppTheme.NoActionBar"/> <activity android:label="@string/title_activity_main3" android:name="com.example.puing.a2018codegate.Main3Activity" android:theme="@style/AppTheme.NoActionBar"/> <activity android:label="@string/title_activity_main4" android:name="com.example.puing.a2018codegate.Main4Activity" android:theme="@style/AppTheme.NoActionBar"/> <meta-data android:name="android.support.VERSION" android:value="26.1.0"/> <meta-data android:name="android.arch.lifecycle.VERSION" android:value="27.0.0-SNAPSHOT"/> </application> </manifest> | cs |
이 부분에서 많이 고생했는데 일단 android:testOnly="true" 을 false로 수정하면 설치는 되지만 열면 바로 중지되거나 프로그램이 바로 종료되는 문제를 겪었다.
어차피 플래그는 com.example.puing.a2018codegate.Main4Activity 에 있기 때문에 다음과 같이 바꿔주었다
[Modify]
1 2 3 4 5 6 7 8 9 10 11 12 | <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.puing.a2018codegate"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:testOnly="false" android:theme="@style/AppTheme"> <activity android:label="@string/title_activity_main4" android:name="com.example.puing.a2018codegate.Main4Activity" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <meta-data android:name="android.support.VERSION" android:value="26.1.0"/> <meta-data android:name="android.arch.lifecycle.VERSION" android:value="27.0.0-SNAPSHOT"/> </application> </manifest> | cs |
xml 파일을 바꿔준후 저장한 뒤에 apktool을 이용해 다시 build 해줘야한다.
java -jar apktool_2.3.1.jar b droid
그 다음 apk 파일에 서명을 해줘야 한다.
java -jar sign.jar droid.apk
그러면 droid.s.apk 파일이 생기는데 나는 nox를 이용해서 해당 파일을 설치 하였다.
'CTF' 카테고리의 다른 글
[Codegate 2014] angry_doraemon (0) | 2018.02.22 |
---|---|
[Plaid 2013] ropasaurusrex (0) | 2018.02.18 |
[Nuit Du Hack 2017] Matriochka Step 2 (0) | 2018.02.08 |
[Nuit Du Hack 2017] Matriochka Step 1 (0) | 2018.02.07 |
[Tokyo Westerns 2017] Rev Rev Rev (0) | 2018.02.07 |