Frida는 Android 이외에도 IOS, Windows 등등을 Hooking할 수 있는 강력한 툴이다. 그러나 해당 포스팅에서는 Android에 한해서 Hooking하는 방법에 대해서 다루겠다. ( 물론 아주 기초적인 내용이며 이를 응용하는건 본인의 몫... ) 우선 들어가기 앞서 다양한 frida 코드들이 공유되는 사이트를 소개한다. https://codeshare.frida.re/browse Frida CodeShare 19 | 39K Android SSL Re-Pinning, more information can be found here https://techblog.mediaservice.net/2017/07/universal-android-ssl-pinning-bypass-with-frida..
Frida 설치 1. 파이썬 다운로드 ( 이왕이면 Python3로 설치하자 ) 2. pip install frida==12.7.11 - 예전에는 frida에 전부 포함되어 있었지만 최신 버전에서는 frida-tools로 분리되어 추가로 다운로드해야 frida 및 frida-ps 등의 기능을 이용할 수 있다. ( frida.exe, frida-ps.exe 등이 포함되어 있다. ) 3. pip install frida-tools 4. https://github.com/frida/frida/releases 에서 frida-server 다운로드 받기. - 핸드폰의 아키텍쳐를 확인하여 다운로드 받는다. - 확인법 : Bit : adb shell getprop ro.product.cpu.abi Type : adb ..
이 포스트를 읽기전 반드시 이전 포스트 "패키지와 프로세스"를 읽길 바란다. https://ch4njun.tistory.com/100 [Android] Android에서 프로젝트와 프로세스 ★★★ ch4njun.tistory.com 앞서 설명했던 Service중에서 마지막으로 Remote Bound Service에 대해 설명하겠다. 기존에 내가 계속계속 이해가 안됐던 부분은, Remote Bound Service는 서로 다른 Process에서 동작하는 Service에 Component가 Bound 되어서 해당 Service의 기능을 사용한다는 것인데, 그러면 하나의 Package에는 Activity, 또 다른 Package에는 Service를 구현한 상태로 진행이 가능하다는 뜻인건데 왜 도대체 예제가 하..
우리는 안드로이드 프로그램을 제작할 때 안드로이드 스튜디오에서 프로젝트를 생성한 후 프로젝트 단위로 프로그램을 제작하게 된다. 그러면 여기서 궁금증이 생기는데, 과연 하나의 Package 내부의 코드는 하나의 Process로써 동작할까 ? 답은 "별 다른 설정이 없다면 그렇다 !!" 이다. 그러면 어느경우에 위에서 말한 별 다른 설정을 해줄까? 그리고 하나의 Process로써 동작하게되면 발생할 수 있는 문제에는 어떤 것이 있을까? * 만약에 하나의 패키지에 Activity, Receiver, Service를 모두 구현했다면 ? 1. Background에서 Service가 계속 실행되고, Activity는 Foreground에서 실행된다. 이 때 Activity에서 Exception이 발생하게 된다면 해..
이번 포스팅에서는 Bound Service 를 이용해서 Local Service를 구현하는 방법에 대해 설명한다. Local Bound Service에 대한 설명에 앞서 Bound Service의 특징에 대해서 먼저 설명하겠다. 기존에 Stared Service에서는 서비스의 시작이라는 표현을 사용했지만 Bound Service는 라이브러리와 같은 동작방식을 갖기 때문에 서비스 연결 시작(Import의 개념..?) 이라는 표현을 사용한다. Bound Service의 특징 1. Started Service와 다르게 Service를 실행시킨 Component와 Bound된 Service 사이에 상호작용할수있는 인터페이스가 제공된다. Started Service는 Component가 Service를 실행시키고..
이전 포스팅에서 startService에 대해 설명했는데, startService에는 동기화 문제가 있다고 설명했다. 때문에 이를 대체할 IntentService라는 놈을 소개하겠다. 장점 1. 애초에 Sub Thread로 동작하기 때문에 별다른 Thread작업을 해주지 않아도 된다. (ANR 걱정 X) 2. 동기화 문제에 대해서 내부적으로 처리가 되어있어 신경쓰지 않아도 된다. (동기화 걱정 X) 여러 클라이언트에서 해당 Service를 시작시켜도, 순차적으로 동작하게끔 내부적으로 동기화 처리가 되어있다. 3. 구성이 간단하다. → Overriding해야하는 Method가 한개이다. 기존에 startService에서 onStartCommand에 Service에서 할 작업에 대해 작성했다면, Intent..