Запуск собственного исполняемого файла в Android

Когда я устанавливаю FaceNiff на Bluestack и пытаюсь запустить исполняемый файл из оболочки adb с помощью

./FaceNiff

Я получаю сообщение об ошибке:

/system/bin/sh: ./FaceNiff: не исполняемый файл: magic 7F45

Я рутировал телефон, su adb. Я думаю, мне нужны правильные su и busybox. Я пытался, но потерпел неудачу.

и откуда вы взяли этот исполняемый файл FaceNiff? Если он был скомпилирован для GNU/Linux, он не будет работать на Android.
Почему вы пытаетесь запустить его из оболочки? Разве это не обычный APK?
Я скачал его с сайта faceniff.ponury.net; У faceniff.apk есть бинарный файл в папке с активами. пытаясь выполнить реверс-инжиниринг, чтобы понять, как ELF вызывается на Android.
Я использую Блюстак. Я получаю ту же ошибку, даже когда пытаюсь запустить IDA android_server {рутированный, обновленный su-x86, busybox-i686}
реверс-инженер, не понимающий разницы между ARM и x86 ABI? тебе нужно многому научиться
пытающийся человек ... может быть, указание правильного направления будет более полезным
Наконец я понял. Bluestacks основан на Android-x86, а файл основан на ARM; поэтому ошибка. Танки в любом случае

Ответы (1)

7F45 — это первые два байта заголовка ELF \x7FELF. Android также использует ELF, поэтому сообщение об ошибке, с которым вы сталкиваетесь, означает, что двоичный файл FaceNiff не распознается как исполняемый вашим ядром (маловероятно, если вы не забыли об этом chmod +x), не для вашей архитектуры (например, x86 вместо ARM) или использует динамический линкер не включен (например, glibc или µClibc вместо Bionic).

Если вам нужно запустить исполняемый файл Android-ARM на Android-x86, вы должны перекомпилировать его для x86 (и также искать правильную разрядность, 32-битная и 64-битная версии также отличаются).

Отказ от ответственности: я mkshсопровождающий.