[byuctf2025] Baby Android 1

Posted by : on

Category : reversing   learning


배경

BYUCTF 2025 리버싱 Baby Android 1 문제 풀이입니다.

요약

  • 디컴파일은 압축 해제 된 dex파일을 기드라에 넣어서 가능, 혹은 apktool로 디컴파일 후 smail2java등의 툴을 이용해 가능

문제 상황

apk 파일 내부 구조

주어진 apk파일 내부 구조는 위와 같았습니다.

점수 - 241점, 푼 팀 - 191/894팀

분석 과정

classes.dexclasses2.dex의 파일 크기가 너무 커 안드로이드 기본 클래스코틀린 기본 클래스라고 생각하고 classes3.dex를 보았습니다.

기드라로 연 내용

기드라로 디컴파일 후 export 혹은 classes, namespace를 통해 사용자가 작성한 코드를 볼 수 있습니다.

Main 컴포넌트 동작

cleanup 코드

각각 메인 동작 코드와 cleanup 코드입니다.

cleanup코드에서 내부 텍스트를 전부 지우는것으로 보이는데, 어떤 텍스트인지는 보이지 않습니다. xml파일에 기본으로 있을 것으로 예상됩니다.

resources.arsc 파일 복호화가 필요해 apktool을 사용해 다시 디컴파일한 뒤 grep -rnw . -e "flagPart1"을 통해 컴포넌트 xml을 찾았습니다.

grep 실행 내용

xml 파일 내부

xml 파일을 열고 순서대로 입력해보았으나 틀렸습니다. 레이아웃을 이용해 정렬해야 할 듯합니다.

결과

여러가지 온라인 툴을 찾아보았으나 없었고, 계산하기 귀찮아 안드로이드 스튜디오로 직접 그려보았습니다.

작성자의 글

  • 기드라는 압축파일 내부 dex파일을 인식하지 못했습니다.
  • Baby Android 2문제보다 푼 사람이 적어서 의외였습니다. 안드로이드 스튜디오 설치하기가 귀찮았나봅니다.

참조

  • .

About 영원염원영웅
영원염원영웅

공부하는것을 좋아합니다.

Email : xhve00000@gmail.com

Website : http://eveheeero.com

Useful Links