본문 바로가기

Android16

[Android] frida 환경 구축 1. adb shell (핸드폰 설정 > USB 디버깅 허용해주기) - 삼성폰은 USB 드라이버 설치 필요한 것으로 알고있음 (설치 : http://local.sec.samsung.com/comLocal/support/down/kies_main.do?kind=usb) 2. PC에 python 설치 및 frida 설치 2019/10/07 - [Mobile/iOS] - [iOS] frida 환경 구성 내용과 비슷하다. - python 설치 : https://www.python.org/downloads/ 다운로드하고 설치할 때 add to path 체크해서 하면 편함 - pip 설치 : https://pip.pypa.io/en/latest/installing/#do-i-need-to-install-pip 참고.. 2020. 2. 11.
[Android] apktool을 이용한 디컴파일 및 리패키징 디컴파일 apktool은 apk파일로 압축되어 있는 것을 resources.arsc, classes.dex, XML 파일들을 디버깅(debug)파일 형태로 변환을 해주고 이를 수정한 뒤에 다시 수정된 apk파일로 생성(build)할 수 있는 도구이다. 기본적으로 java 최소 1.8? 이상의 버전이 설치되어 있어야한다. java -version 명령어를 통해 설치여부를 확인할 수 있다. 설치되어 있지않다면 https://java.com/ko/download/win10.jsp 지금 바로 설치!! apktool 다운로드 링크 : https://ibotpeaches.github.io/Apktool/install/ 윈도우 환경 Windows용 wrapper script 을 다운로드 한다. (마우스 우클릭 메뉴 .. 2020. 2. 10.
[Android] SuCTF 2014 Reverse200 2014년 Su (Sharif University) CTF 에서 출제된 Reverse200 문제입니다. apk를 실행해보면 다음과 같은 앱이 동작합니다. 디컴파일을 해봐도 알 수 있지만, 초점은 시리얼 키를 찾아내는 것으로 보입니다. 여러 버튼을 눌러보니, 오른쪽 상단의 설정모양 버튼을 클릭하면 Product Key를 입력하라고 합니다. 아무 문자열이나 넣고 Continue를 눌러보니 다음과 같은 문자열을 출력해 줍니다. 이제 JEB로 디컴파일하여 분석해 봅시다. MainActivity를 보면, if(KeyVerifier.isValidLicenceKey(this.val$userInput.getText().toString(), MainActivity.this.app.getDataHelper().getCon.. 2020. 1. 29.
[Android] OWASP UnCrackable 2 apk는 다음 링크에서 받을 수 있다. https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level_02/UnCrackable-Level2.apk apk를 실행시키면 루팅탐지를 한다. 우회하는 방식은 앞에서 했던 방식과 같다. 루팅탐지를 우회하면 string을 입력하는 화면이 나온다. Nope을 우회하여 Success를 띄우도록 해야한다. Success를 위해서는 this.m.a(v4) 함수를 호출하는데, 그 함수는 다음과 같다. 나는 a 함수의 return 값이 false이길래, 이걸 true로 바꿔주니까 우회가 됐다. 하지만, Success로 가는 문자열을 알아내는 방식이 더 공부가 되는 방법이다. 이 풀이 방법은 아래에 다시 이어서 .. 2020. 1. 20.
[Android] OWASP UnCrackable 1 apk는 다음링크에서 다운받을 수 있다. https://github.com/OWASP/owasp-mstg/tree/master/Crackmes/Android/Level_01 app을 실행하면 루팅탐지 로직이 동작한다. 우선, 루팅탐지를 bypass 하는 방법을 찾아야한다. JEB를 이용하여 MainActivity를 보면 다음과 같이 rooting 탐지하는 곳을 발견할 수 있다. 여기서 if((c.a()) || (c.b()) || (c.c())) 문을 false로 만족시켜 주거나, System.exit(0); 을 실행시키지 않거나 하는 방법이 있다. if문을 false로 맞췄는데 왜인지 되지않아서, System.exit 함수를 실행시키지 않는 방법으로 진행하려고 한다. java에서 system 함수를 사용.. 2020. 1. 17.
[Android] frida hooking 연습 문제 SECCON Quals CTF 2015 APK1 example 문제이다. apk는 여기서 다운로드 받을 수 있다 -> download the apk nox에 frida server 실행하여 풀이를 진행하였다. nox에서 frida를 사용하는 방법은 다음 글에서 확인할 수 있다. 2019/11/13 - [Mobile/Android] - [Android] nox에 frida 설치 앱 apk 설치 후 실행 화면은 다음과 같다. 가위, 바위, 보를 하는 프로그램이다. apk를 JEB로 디컴파일해본다. 다음과 같은 조건을 만족시키면 flag를 획득할 수 있는 것으로 보인다. if(1000 == MainActivity.this.cnt) { ((TextView)v0).setText("SECCON{" + String... 2020. 1. 16.
반응형