Android
-
Runtime Memory PatchMobile/Frida 2019. 12. 17. 07:15
Windows의 CheatEngine처럼 App실행 중에 메모리를 스캔해서 특정 메모리를 패치하는 방법이다. FRIDA의 Process API와 Memory API를 활용하면 된다. Memory Patch Script function memscan() { var patched = false; var scan_result; // 프로세스에서 'rw-'영역 메모리 가져옴 Process.enumerateRanges('rw-', { // 'rw-'영역 Callback함수 정의 onMatch: function(range) { if(!patched) {// pattern: py0zz1 scan_result = Memory.scanSync(range.base, range.size, '70 79 30 7a 7a 31'..
-
Unity기반(il2) 게임 App 분석Mobile/Android 2019. 11. 24. 05:52
요즘 재밌고 인기있는 게임들은 대부분 Unity Engine으로 개발되고 있다. 대표적으로 포켓몬Go, 궁수의전설, 거지키우기 등 이 있다. Unity기반의 게임들은 JVM이 아닌 Native에서 코드가 구현되어 실행된다. JVM단에서는 Native라이브러리를 로드만 해주고, 실질적인 게임기능들은 Native단에 로드된 라이브러리에서 처리된다. 해당 라이브러리들은 '/lib'에 위치하고 있다. Unity게임 개발자들은 컴파일 방식을 'mono'와 'il2cpp' 두 가지 방식 중 선택해서 빌드가 가능한데, 예전에는 대부분 게임들이 Interpreter처리방식으로 속도가 빠른 'mono'를 선호했다. 하지만, 안정성 이슈와 보안적인 부분이 미흡하여 'il2cpp'로 많이 개발되는 추세이다. 따라서, 이번 ..
-
[FRIDA] App String Trace (모든 문자열 출력)Mobile/Frida 2019. 10. 12. 00:44
Java.perform(function () { const StringBuilder = Java.use('java.lang.StringBuilder'); StringBuilder.toString.implementation = function () { var retVal = this.toString(); console.log("StringBuilder.toString(): " + retVal); return retVal; }; }); java.lang.StringBuilder의 toString( )를 후킹해서 App내부에서 생성되는 모든 문자열을 트레이싱 할 수 있다. App내부에서 SecretKey값을 아무리 암호화해도 결국엔 복호화하여 String으로 변환하는 작업이 있기 마련이다. 이런 상황에서 문자..
-
[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 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이 ..