Everything is hacked.

There is no 100 % security.

Tools/Frida

Tool Objection USB Error Resolution

Kai_HT 2025. 2. 19. 13:45

python frida pacakge 'obejction'

모바일 진단 시, Frida 는 후킹 또는 데이터 변조 등을 수행하기 위해 무조건이라고 해도 좋을 정도로 자주 사용되는 툴이다. Frida 를 기반으로 보다 사용하기 편하게 만든 툴이 있는대 바로 'objection'.

해당 툴에 대한 설명은 이후 시간이 될 때 작성할 예정이다.


OS 진단을 위해 오랜만에 objection 을 수행하였으나... 'frida.TransportError: failed to open USB device: Input/Output Error' 라는 에러와 함께 objection 에 대한 수행이 불가하였다.

objection -d --gadget "[PackageName]" explore

objection 실행 결과, 파이썬 에러가 노출되며, 맨 마지막 줄에서 Frida 오류코드로 'frida.TransportError: failed to open USB device: Input/Output Error' 메시지가 출력된다. Frida 와 관련하여 에러코드를 찾아보면 frida 삭제 이후 PC 내 파이썬 재설치하여 Respring 등의 방법들이 있었으나, 그럼에도 불구하고 해당 오류는 고쳐지지 않았다.

objection -d --gadget "[PackageName]" explore

에러가 발생한 상단을 확인하면 Frida 출력으로 ' Using USB device `` ' 라는 문구가 확인된다. 본래 프리다 수행 시, Using USB device 'Device-Name' 형식으로 출력되어야 하나, 아무런 값이 출력되는 것을 확인할 수 있다.

Frida 로 iOS 점검 수행 시, 동일한 증상이 여러 건 존재하였는지, Github 에서 해결 방안 등을 어렵지 않게 찾아볼 수 있었다. 

해당 문제 파악을 위해 frida-ls-device 명령을 입력하면 다음과 같은 화면이 출력된다.

frida-ls-devices

분명 usb에 해당하는 디바이스는 1건만 출력되어야하나 Id, Name, OS 값이 존재하지 않은 Type-usb 항목이 하나 확인된다. 해당 문제는 Frida 와 iOS 간 문제인 것으로 확인되나 확실한 해결책은 찾지 못했다...
- 찾으신 분은 댓글로 작성해주세요. 한번 연구해보겠습니다. (시스템 환경변수를 아예 세팅하는거 이외...)

Frida 버전 자체를 16.5.2 이전 버전으로 설치하면 문제가 해결될 코멘트가 많았으나, 최신버전으로 해야 이후 타 점검 진행 시 헷갈리지 않기 떄문에 본인은 최신버전으로 사용하고자 했고, 본인이 생각한 해결책은 Objection 내 옵션 값을 이용하여 사용하는 것이다.

Frida 모듈을 사용하는 툴인 만큼 Objection 도 동일한 기능을 하는 옵션을 제공하는데, 여기에서 사용할 옵션은 `-S` 옵션이다.

objection -d -S [DeviceName] -g [PackageName] explore

Objection 실행 시, 옵션 값으로 -S 을 넣고 그 뒤에 Frida 에서 확인한 디바이스 명을 넣어주면 정상적으로 Objection 수행이 가능하다. Frida 에서도 동일하게 수행 가능할 것으로 보고 있다.

필자 본인은 매번 옵션을 넣고 디바이스 명을 넣는게 보기도 좋지 않고, 꽤나 번거롭기 때문에 다음과 같은 배치파일 구문을 작성하여 Objection 을 사용하였다.

@echo off
title Objection SimpleUseingTools
echo.
echo "         ___.         __                   __   .__ "
echo "   ____  \_ |__      |__|  ____    ____  _/  |_ |__|  ____    ____ "
echo "  /  _ \  | __ \     |  |_/ __ \ _/ ___\ \   __\|  | /  _ \  /    \ "
echo " (  <_> ) | \_\ \    |  |\  ___/ \  \___  |  |  |  |(  <_> )|   |  \ "
echo "  \____/  |___  //\__|  | \___  > \___  > |__|  |__| \____/ |___|  / "
echo "              \/ \______|     \/      \/                         \/ "
echo "                                                     - Code By Kai_HT"
echo.
set DEVICE_ID=[Device-ID]
set /p PackageName=Input Package Name: 

objection -d -S %DEVICE_ID% -g %PackageName% explore

해당 코드 내에서 '[Device-ID]' 에 해당하는 값만 넣어주고 사용하면 된다.

'Tools > Frida' 카테고리의 다른 글

FridaLab - Challenge  (0) 2023.08.30
Frida SSL Pinning  (0) 2023.08.24
Frida - Application Dump  (0) 2023.08.22
Frida-iOS-DUMP IPA  (0) 2023.08.22
Frida BASIC  (0) 2023.08.22