System 문제로 파일을 받고 시작합니다.


파일을 받으시면 확장자가 없으니 HxD로 확인 해보시면 zip파일 인걸 알 수 있습니다.



압축을 풀어보기 전에 내용을 확인 해보면 "AndroidManifest.xml" 이 있는 걸보니 apk로 되어있다고 판단할 수 있습니다.

(apk도 일종의 압축이니..)



처음에는 zip파일로 인지하고 "android studio"로 보일꺼라고 생각했지만 전혀 안보여서 검색을 해보니

"apktool"로 apk파일을 디컴파일하여 분석할 수 있다고 합니다.


사용법은 java -jar [apktool 파일 경로] d [디컴파일할 파일명] 입니다.



수행하고나면 폴더가 생성되고 안에 내용은 다음과 같습니다.

그냥 zip파일을 열었을 때와는 좀 다른 파일들이 보입니다.



다양한 파일들이 있어 "Visual Code"로 해당 폴더를 열어 파일을 하나씩 봤습니다.

그 중 Suninatas$1.smali 파일에 내용을 보니 "key" 값도 있으며 다양한 내용이 있습니다.


해당 key 값으로 인증을 시도하면 인증이 되지 않습니다.



그 중에 ".line 41"에 내용에 주목 해야합니다.

suninatas URL로 id,pw,key 값을 get방식으로 전송하는 코드가 있습니다


key 값은 위 사진 v4에 저장되어 있습니다.

id/pw는 사용자의 계정을 입력하면 됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.line 41
    new-instance v9, Ljava/lang/StringBuilder;
    const-string v10, "http://www.suninatas.com/Part_one/web24/chk_key.asp?id="
    invoke-direct {v9, v10}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    invoke-interface {v1}, Landroid/text/Editable;->toString()Ljava/lang/String;
    move-result-object v10
    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v9
 
    const-string v10, "&pw="
    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v9
    invoke-interface {v6}, Landroid/text/Editable;->toString()Ljava/lang/String;
    move-result-object v10
    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v9
 
    const-string v10, "&key="
    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v9
    invoke-interface {v4}, Landroid/text/Editable;->toString()Ljava/lang/String;
    move-result-object v10
    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v9
 
    invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v9
    invoke-static {v9}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
    move-result-object v8
cs

사용하고 있던 chrome URL창에 

http://www.suninatas.com/Part_one/web24/chk_key.asp?id=□□□□&pw=□□□□&key=□□□□□□

이런 식으로 입력해보니 Wrong!Wrong! 이라는 메시지가 나올 뿐 해결되지 않았습니다.


알고보니 android 휴대폰을 이용해서 해당 URL로 접근하면 인증 키를 띄워주었습니다.

하지만 저는 아이폰이기에.. 핸드폰으로는 못해보고


User-Agent Switcher for Chrome 을 이용해서 브라우져를 Android로 변경해서 해결 했습니다.







[참고]

Apktool을 이용한 APK 디컴파일: http://vzio.tistory.com/20

[Android] APKTool 사용법: http://choboitstory.tistory.com/151


smali 코드 배우기: https://i2sec.github.io/files/2017-10-20/study_dalvik_smali.pdf

smali 코드 관련: http://egloos.zum.com/playgame/v/2189805

[Android] smali 코드 분석 연습: http://tribal1012.tistory.com/170



'WarGame > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS_23 [WEB]  (0) 2018.10.03
SuNiNaTaS_22 [WEB]  (0) 2018.10.01
SuNiNaTaS_12 [MISC]  (0) 2018.09.19
SuNiNaTaS_29 [FORENSIC]  (0) 2018.09.15
SuNiNaTaS_16 [SYSTEM]  (0) 2018.09.14

+ Recent posts