본문 바로가기

CTF

[Codegate 2018] Welcome to droid


해당 파일 다운받아보면 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