Mobile
-
[FRIDA] App 변수 후킹하는 법Mobile/Frida 2019. 10. 7. 20:17
Frida로 App의 변수값에 접근하여 값을 출력하고 수정하는 법에 다루도록 하겠다. App을 JEB로 열어보면 위 그림처럼 변수들이 사용되고 있는 것을 확인할 수 있다. Frida Javascript API 중 'Java.choose("class",Callback)'API를 이용해서 위 변수들에 접근할 수 있는데, 여기서는 MainActivity에 선언된 lose변수에 접근해서 값을 출력하고 원하는대로 조작하는 것을 목표로 해보겠다. Java.choose("com.example.HOOKAPP.MainActivity", { onMatch: function(instance) { HOOKING CODE~~~ }, onComplete: function() { HOOKING CODE~~~ } }); Java.c..
-
[FRIDA] Android HashMap 오브젝트 출력하는 법Mobile/Frida 2019. 10. 4. 10:59
Frida로 HashMap 오브젝트의 값을 출력해야 할 때가 있다. var HashMapNode = Java.use('java.util.HashMap$Node'); var iterator = hashmap.entrySet().iterator(); while (iterator.hasNext()) { var entry = Java.cast(iterator.next(), HashMapNode); console.log(entry.getKey()); console.log(entry.getValue()); } 그럴 때는 위 코드로 HashMap 오브젝트에 접근할 수 있다. 2020.04.03 추가 - java.util.Map 오브젝트도 위와 동일한 방법으로 출력할 수 있다. 출처 - https://github.co..
-
Android App에서 Memory Corruption Exploit이 불가능한 이유Mobile/Android 2019. 9. 21. 21:06
[ 안드로이드 시스템 아키텍처 ] 위 그림은 Android System을 나타낸다.일반적으로 사용하는 App들은 DalvikVM 내부에서 SmaliCode가 해석되어 실행된다. [1] DalvikVM은 Register-based System이라는 특징을 가지고 있다.약 64,000개의 레지스터가 있으며, 이 중 16개 또는 256개만 사용하는게 일반적이다.따라서, DalvikVM에는 Stack이라는 개념이 없고 이 때문에 Stack-based Buffer Overflow가 발생하지 않는다.다르게 해석하면, DalvikVM이 아닌 Native Code(JNI)에서는 Stack-based Buffer Overflow가 발생할 수 있다. [2] Java에는 Array Layout Check기능이 기본으로 적용..
-
Android Hacker's Handbook_2장 [정리 및 번역]Mobile/Android 2019. 9. 21. 20:34
해당 번역글은 개인 공부를 위해 번역한 글로써, 다소 틀린 표현들이 있을 수 있으니 참고할 때 유의해주시길 바랍니다. 원문은 https://www.pdfdrive.com/android-hackers-handbookpdf-e39599871.html 여기에서 받으실 수 있습니다. [2장. 안드로이드 보안 설계 및 아키텍처] 안드로이드는 보안 검사 및 처리를 몇 가지 메커니즘으로 구성하고 있다. 다른 운영 체제와 마찬가지로 이러한 메커니즘(App/User), 객체(App/File,Device) 및 수행할 작업(읽기,쓰기,삭제 등)에 대한 정보를 교환할 수 있다. 대부분의 경우에서는 이러한 과정에서 문제가 발생하지 않지만, 어떠한 균열을 통해 이러한 정보들이 빠져나가 공격자에게 좋은 기회를 제공하기도 한다. 2..
-
Android URL SchemeMobile/Android 2019. 8. 11. 03:50
URL Scheme이란, URL을 통해서 특정 프로그램을 실행하고자 할 때 사용되는 기술이다. 평소에도 자주 볼 수 있는 'http://', 'https://', 'ftp://'과 같은 형식도 URL Scheme에 해당한다. Android에서도 이러한 URL Sheme을 사용하는데, AndroidManifest.xml에 App마다의 Custom URL Scheme을 정의하여 사용한다. [ AndroidManifest.xml ]Custom URL Scheme 선언형식은 위와 같다.intent-filter태그에 실행할 Action을 설정하고 그에 대한 URL Scheme을 정의한다.모바일에서 ridi://download 또는 ridi://showCloud과 같은 URL로 접근하게 되면 정의한 Action이 ..
-
Nexus 6P Rooting [TWRP/Magisk]Mobile/Android 2019. 8. 8. 01:45
분석용 폰으로 Nexus 6P를 구입했다.Nexus폰은 부트로더 잠금을 해제해서 커스텀 롬을 자유롭게 올릴 수 있는 특징이 있다.이 특징 때문에 '넷헌터'와 같은 커스텀 롬을 로드해서 사용하는 사람들도 있다. 해당 글에서는 단순히 루트권한을 얻는 방법에 대해서 기술하도록 하겠다.'XDA'라는 유명한 해외 포럼이 있는데, 여기에서 개발한 Magisk라는 어플이 Rooting Management 역할을 한다.XDA Developers - https://forum.xda-developers.com/ 루팅을 위한 준비물은 아래와 같다.1. TWRP.img 파일2. Magisk Zip 파일 TWRP.img파일은 링크에 들어가서 가장 최신버전으로 받아주면 된다.Magisk.zip파일은 링크에 들어가면 아래와 같은 ..
-
Apktools Gradle로 빌드하기 (.feat Facebook Decompile)Mobile/Android 2019. 7. 30. 13:01
Facebook App을 apktools로 디컴파일 하려고 하면 위와 같은 에러가 발생하면서 디컴파일 되지 않는다.Exception 첫번째 줄을 보면, 'style2'가 없어서 제대로 진행이 안되는 듯하다. [ apktools Facebook Fix ]그래서 apktools 제작팀에서도 Facebook App 디컴파일 에러를 수정한 패치버전을 깃허브에 올려놓았다. [ apktools Build ] https://github.com/thejunkjon/Apktool우선 위 링크에서 프로젝트를 다운 받고, 압축을 해제한다. 압축을 해제하면 [Apktool-master]폴더가 생성되고, 하위폴더에 [brut.apktool]가 존재한다.[brut.apktool] - [apktool-cli]폴더로 이동한 다음 해..
-
Frida zgote에러 발생할 때 (SystemApp Hooking)Mobile/Frida 2019. 7. 8. 12:53
[ Frida zygote Error ]Frida로 App을 실행할 때, 위와 같은 에러가 발생하는 경우가 있다. 에러문을 보면, zygote와 Magisk 라는 단어가 언급된다. zygote는 Android System에서 부모프로세스같은 개념으로 생각하면 된다.Magisk는 디바이스를 루팅할 때, SuperSU처럼 루팅HelperApp이다. 이런 에러를 해결하려면 'Magisk의 Hide옵션이 활성화 된 경우 비활성화 하라' 라는 경고문 대로Magisk Hide옵션을 비활성화를 하면 된다고 한다. 근데 나는 그래도 저 에러가 계속 뜨더라.. 그래서 더 찾아본 결과, frida-server를 /system경로에서 실행하면 된다고 한다. [ /system ]이렇게 frida-server를 /system으..