본문 바로가기

Frida

(6)
[분석] UnCrackable-Level1.apk - 2 (Secret String) UnCrackable-Level1.apk - 1 (Rooted) OWASP에는 모바일 보안 테스트 할 수 있는 앱을 제공함 분석을 하면서 참고해야하는 부분을 풀이할 예정 진단 환경 단말 : Nexus6P - 7.1.1 jadx-gui : Dex to Java decompiler APK Easy Tool : Decompile, Compile, Signing 등 쉽게해주는 툴 APP : UnCrackable-Level1.apk https://github.com/OWASP/owasp-mstg/tree/master/Crackmes/Android GitHub - OWASP/owasp-mstg: The Mobile Security Testing Guide (MSTG) is a comprehensive manual .. chdwjfdl  2022. 6. 28. 17:55
[분석] UnCrackable-Level1.apk - 1 (Rooted) UnCrackable-Level1.apk - 2 (Secret String) OWASP에는 모바일 보안 테스트 할 수 있는 앱을 제공함 분석을 하면서 참고해야하는 부분을 풀이할 예정 진단 환경 단말 : Nexus6P - 7.1.1 jadx-gui : Dex to Java decompiler APK Easy Tool : Decompile, Compile, Signing 등 쉽게해주는 툴 APP : UnCrackable-Level1.apk https://github.com/OWASP/owasp-mstg/tree/master/Crackmes/Android GitHub - OWASP/owasp-mstg: The Mobile Security Testing Guide (MSTG) is a comprehensive .. chdwjfdl  2022. 6. 28. 17:43
[Frida] Root Check : getpid "getpid"를 통해 루팅 탐지하는 로직이 있음 getpid ? 함수를 호출한 프로세스 ID 리턴 returns the process ID (PID) of the calling process. getppid ? 함수를 호출한 부모 프로세스 ID 리턴 returns the process ID of the parent of the calling process. 실행되는 앱 프로세스 정보는 아래와 같음 만약, 해당 앱이 슈퍼 유저 권한을 부여 받을때 "[App Name]"에 슈퍼유저 권한이 허용됨" 문구를 확인할 수 있으며, 프로세스 정보를 다시 확인해 보면 "su" 프로세스가 생성됨 추측, "getpid"를 통한 로팅 탐지 방법 "getpid" 함수 호출 하여 해당 앱 프로세스 리스트 출력 해당 프로세스 .. chdwjfdl  2022. 6. 22. 17:36
[lldb-10] Anti-Debugging :ptrace (근데 이제 frida를 곁들인) ptrace를 이용한 안티 디버깅은 여러 방법 중 하나임 함수 궁금증이 있어 관련 정보를 찾아 봄 목적 : lldb-10를 이용한 값 변경이기 때문에 디버가 붙기 전 frida를 사용할 예정 사용 lldb-10 명령어 1. proceaa attach -n [AppName] 2. image dump sections [AppName] 3. bs 4. c 5. n 6. register read 7. register write ptrace는 XXXXXXXXXXXXXXXXXXXXX 임 총 4개 인자로 이루어져 있으며, 첫 번째 인자 값으로 안티 디버깅 적용할 수 있음 intptrace(int _request, pid_t _pid, caddr_t _addr, int _data); _request에 사용되는 ptra.. chdwjfdl  2022. 6. 21. 16:08
네임 맹글링 (Name Mangling or Name Decoration) 기본적으로 자바에서 call 하는 함수의 경우에는 Java_com_xxx 이와 같은 형식으로 함수 네이밍이 되어있다. 그런데 C, C++ 내부에서 사용하려고 클래스를 만들거나 그 안의 함수를 후킹할 때 IDA에서 function List로 볼 때는 그냥 개발자가 선언한 함수 이름으로 보이지만 실제 frida 등을 통해서 후킹할 때는 맹글링된 이름을 가져와야한다. 뭐 사실 나도 frida에 대해서 많은 함수를 써본것도 아니니 다른 방법을 통해 후킹이 가능하다면 댓글 부탁드림미다.... ## Name Mangling ?? 우선 Name Mangling이 뭔지 알아보자. 위키에 따르면 컴파일러에서 프로그래밍 entity에 대한 고유한 이름을 해결해야 하는 필요성으로 인해 발생하는 다양한 기술 문제를 해결하기 .. 뚜봄뚜봄  2021. 12. 30. 13:47
Android Native C++ string Frida로 출력 Frida 를 사용하다 보면 심심치 않게 Native Method를 후킹해야할 때가 많다. 그러다 보면 각 argu에 따라서 캐스팅을 해줘야 정상적으로 출력이 가능하다. 그 중에 한가지 C++ 에서 사용하는 Std::String 자료형을 Frida에서 문자열로 출력하고 싶을 때 아래의 방법을 사용한다. function readStdString (str) { const isTiny = (str.readU8() & 1) === 0; if (isTiny) { return str.add(1).readUtf8String(); } return str.add(2 * Process.pointerSize).readPointer().readUtf8String(); } readU8 &1 을 통해 해당 문자열이 long St.. 뚜봄뚜봄  2021. 12. 17. 10:17