1

현재 모바일 애플리케이션을 연결하는 기술에 대한 연구를하고 있으며 Xposed (Android), Frida (Android and iOS) 및 Cycript (iOS)와 같은 일부 프레임 워크를 발견했습니다.cycript/substrate는 프로세스에 어떻게 연결 되나요?

Xposed 및 Frida에 대한 문서는 실제로 얼마나 정확하게 설명하는지 잘 설명합니다. Zygote 프로세스를 시작하는 바이너리를 조작하고 메소드를 후킹하는 데 도움이되는 추가 JAR 파일을로드하기위한 Xposed 상태. 프리다 문서에서는 Linux 환경에서 ptrace를 사용하여 프로세스에 연결하고, 올바르게 이해할 수 있으면 간단히 frida 에이전트가 들어있는 .so 파일을 실행하기 위해 스레드를로드하는 부트 스트 래퍼를 할당하고 채우는 방법을 설명합니다.

Cycript가 추구하는 전략에 대한 유용한 문서를 찾을 수 없습니다. 나는 그것이 실제 후킹을하는 Cydia Substrate 위에 만들어 졌음을 안다. 얼마나 정확하게 기질이 이것을 달성하는지에 대한 세부 사항을 찾을 수 없었습니다.

iOS에서 objective-c 런타임은 런타임 지향이므로 런타임 조작을 가능하게합니다.

Cycript/Cydia Substrate가 응용 프로그램에 연결/삽입하는 방법을 정확히 알고 있습니까?

미리 감사드립니다.

답변

2

DYLD_INSERT_LIBRARIES를 프로그램의 launchd 매니페스트에 추가하여 응용 프로그램을 시작할 때마다 동적 라이브러리를로드하여 악의적 인 페이로드를로드하는 것으로 나타났습니다.

여전히 Android 및 iOS에서 런타임 후킹/조작을 수행하는 다른 기술이 있습니까?

+0

이 문제에 대해 정말로 알고 계십니까? AFAIK DYLD_INSERT_LIBRARIES는 iOS 전용이며 Android는 LD_PRELOAD를 사용합니다 – Krypton

+0

Jonathan Zdziarski ("Full Device Infection"섹션의 "Ios Applications 해킹 및 보안") 책에 따르면 Substrate는 iOS에서 그런 식으로 작동합니다. – Phoebus