본문 바로가기

ios5

[iOS] Frida에서 Fat Binary File Offset 잡기 먼저 Fat Binary란 하나의 실행 파일이 여러 아키텍처에서 적용될 수 있도록 구성된 파일이며, 아래의 그림과 같이 Fat Binary는 Fat Header와 Fat Architecture로 구성되어 있습니다. 각각의 Architecture는 각각의 실행 코드를 가르키고 있으며, OS에서 로드 시 해당 Architecture에 맞는 Mach-O Format이 로딩됩니다. IDA에서 Fat Binary인 IPA를 실행할 경우 아래 그림과 같이 어떤 Architecture를 이용할 것인지 묻는 알림 창이 뜹니다. 현재 실행되고 있는 Architecture를 클릭한 뒤, 분석이 마무리될 때까지 기다립니다. (여기선 ARM64) 아이폰에서 Frida를 이용하여 Hooking을 하기 위해서는 Offset을 구.. 2022. 4. 24.
iOS Application Life Cycle iOS APP 동작 과정 APP Touch main() 함수에서 UIApplicationMain() 함수 호출 및 UIApplication 객체 생성 UIApplication 객체에서 info.plist에 존재하는 앱에 필요한 데이터 및 객체 로드 Custom Code를 처리하기 위한 AppDelegate 생성 후 UIApplication 객체와 연결 실행 준비 후 application(_:willFinishLaunchingWithOptions:) 호출 실행이 완료 된 후 화면에 노출되기 직전에 application(_:didFinishLaunchingWithOptions:) 호출 Main run loop 실행 및 이벤트 큐를 이용해 이벤트 순차 처리 앱을 더이상 사용하지 않을 경우 iOS System에.. 2022. 3. 18.
[iOS] frida-ios-dump for Windows dump.py code for Windows 1. Use 7z (must include 7z.exe and 7z.dll in directory) # zip_args = ('zip', '-qr', os.path.join(os.getcwd(), ipa_filename), target_dir) zip_args = (os.getcwd() + '\\7z.exe', 'a', '-r', os.path.join(os.getcwd(), ipa_filename), target_dir) 2. Change chmod command import stat chmod_dir = os.path.join(PAYLOAD_PATH, os.path.basename(dump_path)) # chmod_args = ('chmod', '655'.. 2022. 3. 17.
[iOS] Burp Suite SSL Network Connection Loss Solution 증상 (issue) 구글 검색은 정상적으로 가능하였으나 네이버 또는 하이브리드 앱 실행 시 네트워크 연결이 중간에 유실되었음. (Google Search worked normally. But, When Running Hybrid App is loss network connection.) 해결 방법 (solution) 1. Proxy Listeners 버튼 클릭 (In Burp, go to the Proxy > Options tab and Select the proxy listener that you use for your mobile device and click Edit.) 2. TLS Protocols 탭 선택 > Use custom Protocols 선택 > TLSv1.3 해제 (In the Edi.. 2021. 10. 14.
Frida Cheat Sheet 공통 Frida attach Code import frida, sys def on_message(message, data): if message['type'] == 'send': payload = message['payload'] print(payload) print("") else: print(message) jscode = """ """ try: target = "" process = frida.get_usb_device(timeout=5).attach(target) script = process.create_script(jscode) script.on("message", on_message) script.load() sys.stdin.read() except Exception as e: print(.. 2020. 9. 21.