[해킹보안] 창과 방패 끝없는 전쟁

CrackMe.apk
1.25MB

 

NOX에서 CrackMe.apk 파일을 설치하고 앱을 실행 했는데, 계속 앱 중지가 되었다.

그래서 Android Studio에서 앱을 실행 했더니 정상적으로 실행이 되었다. 앱을 실행 시키면 로그인 화면이 뜨는데, 문자와 숫자를 입력해도 incorrect란 팝업 창만 뜨면서 로그인을 할 수 없어서 다른 방법을 강구했다.

디컴파일(JEB) 툴로 apk파일을 열어 onCreate메소드가 있는 곳을 분석했는데, flag로 보이는 flagging{It_cannot_be_easier_than_this}란 문자가 나와서 flag인 줄 알았는데 확인해 보니 flag가 아니었다.

 

디컴파일 툴로 소스코드 내 flag 확인

 

 

소스코드 내에서 Toast 메소드가 있었는데 어떤 메소드인지 알아내기 위해 계속 분석을 진행 했다. 

Toast 메소드가 true로 반환되므로 함수가 반환되는 것과 동일하게 String(사용자 입력 값)이 필요 했다.

True 로 반환되는 Toast메소드 발견

 

 

if(arg4.equals(c.a(b.a(b.b(b.c(b.d(b.g(b.h(b.e(b.f(b.i(c.c(c.b(c.d(this.getString(2131492920)

 

그 다음에 디컴파일 툴(jadx)res 경로 밑에 values 경로 밑에 strings.xml 소스코드 내에서 의심되는 문자열을 찾았다.

Strings.xml  소스코드 내 의심스런 문자열 발견

 

 

 [[c%l][c{g}[%{%Mc%spdgj=]T%aat%=O%bRu%sc]c%ti[o%n=Wcs%=No[t=T][hct%=buga[d=As%=W]e=T%ho[u%[%g]h%t[%}%

 

 

 

다음으로 c클래스와 b클래스를 분석 했는데, 전체 및 일부 문자열을 치환하는 것을 확인했다.

C 클래스 String 함수에서 문자 치환

 

 

B 클래스 String 함수에서 문자 치환

 

 

C클래스와 B클래스의 메소드를 문자열 값에 적용 시키기 위해 파이썬 스크립트를 만들어 실행 했다.

그러자 아래와 같이 콘솔 창에 flag가 출력 되었다.

 

파이썬 스크립트 실행 후 Flag 획득

 

 

 

-         -