Hooking
-
FRIDA Hooking (OWASP - UnCrackable2)Mobile/Frida 2019. 12. 22. 01:30
OWASP-mstg : https://github.com/OWASP/owasp-mstg/tree/master/Crackmes OWASP Mobile Crack 트레이닝 중 Level2 문제풀이이다. 문제풀이는 FRIDA를 이용할 것이며, Level1 문제풀이는 여기에서 확인할 수 있다. UnCrackable2_exit( ) Hook adb install을 통해 App을 디바이스에 설치해주고 실행 시켜보도록 하자 루팅된 디바이스일 경우, 위와 같이 "Root Detected!" 경고창이 팝업되면서 [OK]를 누르면 App이 종료된다. 따라서, App이 종료되는 루틴을 먼저 확인하고 루팅된 디바이스에서도 App을 사용할 수 있게끔 해줘야 한다. MainActivity를 보면, b.a( ) / b.b( ) /..
-
Unity Game App Hacking (궁수의 전설)Mobile/Frida 2019. 12. 18. 06:19
페이스북같은 곳에서 궁수가 활을 쏘는 게임 광고 한번씩은 보셨을 것이다. '궁수의 전설'이라는 Unity Engine기반 게임인데 FRIDA를 이용해서 게임해킹을 한번 해볼까한다. 대부분의 게임 해킹은 App을 직접적으로 변조해서 다시 리패키징하는 방식으로 진행된다. 이런 방식을 'Modding'이라고 하는데, 이렇게 하는건 별로 마음이 내키지 않았다. 그래서 App변조가 아닌, FRIDA를 이용해서 동적으로 App을 후킹하는 방식으로 시도해봤다. 우선 시작에 앞서, 궁수의 전설은 싱글 플레이 게임으로 다른 플레이어에게 영향을 끼치지 않는다. 순위나 경쟁 시스템이 없는 오로지 자신만 즐기는 게임이기 때문에 오해 없길 바란다. Method Symbol 궁수의 전설은 il2cpp방식으로 빌드된 게임이다. 따..
-
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'..
-
Frida를 이용한 App DB복호화Key 알아내기(with.TigerText)Mobile/Frida 2019. 7. 5. 10:16
이번에는 Frida를 이용해서 TigerText App의 암호화된 DB를 복호화 해볼 것이다.TigerText App은 카카오톡과 같은 메신저App이며, 텔레그램처럼 보안메시지 기능을 지원하는 App이다.현재는 TigerConnect라는 이름으로 서비스하고 있다.1. Frida란?모바일 환경에서 대표적인 DBI(Dynamic Binary Instrumentation)Tool로 스크립트를 통해서 App을 분석할 수 있다.Frida를 사용하는 목적은 Java Method나 Native함수를 후킹해서 흐름을 조작하려는 것이 가장 크다.대표적인 예로는 SSL Pinning Bypass, Decrypt Key Leak, Method Trace 등이 있다.Frida는 Python이나 C언어등 다양한 언어환경에서 F..