[CTF]Mobile_AOS_"freeflag"_writeup

Jongmin Park·2022년 12월 1일
0

"2022 squarectf" 출제된 모바일 리버싱 문제이다. 문제파일을 다운받아 실행시켜 보면 flag일부분만 보인다. 화면을 잡아끌어도 소용 없다...
화면에 출력되는 글자 크기를 줄이면 되지 않을가?
Jadx로 앱 파일 분석 ㄱㄱ~

앱 실행 시 처음 시작되는 "MainActivity"를 살펴보면 flag 값에 사용될 거 같은 배열 외에는 특이한 점은 눈에 띄지 않앗다.

처음 생각이 들었던 화면에 출력되는 글자크기와 관련된 코드 1줄이 눈에 들어왓다.

textView.setTextSize(0, Integer.max(displayMetrics.heightPixels, widthPixels) / 3);
(*TextView.setTextSize(int unit, int size))

해당 함수를 구글링한 결과 화면에 출력되는 글자크기와 관련된 함수였고, 2번째 인자가 "widthPixels/3"으로 3에서 더 큰 값으로 나누면 화면에 이는 글자 크기가 줄어들어 flag 값이 전부 보여질 것으로 예상하였다.

변조하기 위해 apktool로 디컴파일하여 해당 코드가 담겨있는 "MainActivity.smail" 파일을 수정

invoke-virtual {v1, v0}, Landroid/view/Display;->getMetrics(Landroid/util/DisplayMetrics;)V

    iget v1, v0, Landroid/util/DisplayMetrics;->heightPixels:I

    iget v0, v0, Landroid/util/DisplayMetrics;->widthPixels:I

    invoke-static {v1, v0}, Ljava/lang/Integer;->max(II)I

    move-result v0

    div-int/lit8 v0, v0, 0x3 <--- 0x9로 수정

    int-to-float v0, v0

    const/4 v1, 0x0

-끝-

profile
i love hacking

0개의 댓글