해결된 질문
21.04.29 10:07 작성
·
349
0
안녕하세요. 강의 수강중에 arm 관련 환경 문제로
강사님 강의에서는 x86 이 아닌 arm 으로 so 파일 디버깅이 잘 되시는거같은데...
저는 android_server 실행이 잘 안되서 문의 드립니다.
IDA 로 so 파일디버깅 하고자 하는데, 오류가 발생하여 실습 진행이 안되고 있습니다.
저의 실제 안드로이드 기기의 abi 는 armeabi-v7a 입니다.
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abi]: [armeabi-v7a]
실제 기기에서 anroid_server 실행 시 아래와 같은 오류가 발생 합니다.
shell@android:/ $ /data/local/tmp/android_server
/data/local/tmp/android_server
reloc_library[1307]: 14581 cannot locate '__open_2'...
CANNOT LINK EXECUTABLE
255|shell@android:/ $ /data/local/tmp/android_server64
/data/local/tmp/android_server64
/system/bin/sh: /data/local/tmp/android_server64: not executable: magic 7F45
1|shell@android:/ $ /data/local/tmp/armlinux_server
/data/local/tmp/armlinux_server
/system/bin/sh: /data/local/tmp/armlinux_server: No such file or directory
에뮬레이터는 보통 x86 이기때문에 arm 으로 디버깅하기위한 방법을 찾고있습니다.
실제 기기에서 android_server 동작 방법 또는 에뮬레이터에서의 armeabi-v7a 설정 이 되면 될거같은데....
제가 할 수 있는 조치사항 문의 드립니다.
답변 1
0
2021. 04. 29. 14:21
안녕하세요!
android_server 관련해서 [IDA설치경로]-[dbgsrv]내 아키텍쳐 별로 android_server 파일이 있습니다.
android_server(arm), android_server64(arm64)이고, 아키텍쳐 확인하는 건 아래 명령어로 확인이 가능합니다.
adb shell getprop ro.product.cpu.abi
adb shell getprop ro.product.cpu.abi2
다만, 간혹 사용중이신 IDA 버전이 너무 낮은데 비해 안드로이드 기기의 버전이 높다면 실행이 안되는 이슈가 있을 수 있습니다.
제가 주로 사용하는 버전은 IDA 7.0 및 갤럭시S6 Edge(marshmallow) 입니다.
그리고 android_server는 구동 시 root 권한이 필요하기 때문에 루트 권한으로 실행 부탁드립니다.
위 내용으로 확인해보시고 후에도 실행이 되지 않으신다면 다시 한번 질문 혹은 쪽지를 남겨주시면 최대한 지원드리도록 하겠습니다 ^^
감사합니다.