You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SM-A500FU执行afl-fuzz报错:64位ELF文件不可执行

解决afl-fuzz在SM-A500FU上“64-bit ELF file”无法执行问题

核心原因

SM-A500FU(Galaxy A5 2015)是32位ARMv7架构设备,无法运行你编译的64位ARM64(arm64-v8a)版本afl-fuzz,这就是报错的根本原因。

解决步骤

1. 确认设备架构

在设备终端执行:

uname -m

输出应为armv7l,验证设备确实是32位ARM架构。

2. 正确编译32位ARM(armeabi-v7a)版afl-fuzz

  • 配置Android NDK交叉编译工具链:
    确保你已安装对应版本的Android NDK,然后设置环境变量(替换为你的NDK实际路径):
    export NDK_PATH=/path/to/your/android-ndk
    export TOOLCHAIN=$NDK_PATH/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
    export PATH=$TOOLCHAIN/bin:$PATH
    export CC=arm-linux-androideabi-gcc
    export CXX=arm-linux-androideabi-g++
    export CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=softfp -pie -fPIE"
    export LDFLAGS="-pie -fPIE"
    
  • 清理之前的编译缓存:
    make clean
    
  • 针对Frida模式编译afl-fuzz:
    按照指南中的编译步骤,确保编译脚本针对32位ARM架构生成二进制文件。如果Makefile中有架构选项,明确指定armv7。

3. 排查编译异常

如果编译armeabi-v7a时仍报错,按以下方向排查:

  • 检查NDK版本兼容性:避免使用过高版本的NDK,建议用NDK r16b及以下版本(旧版工具链对ARMv7支持更稳定)。
  • 确认依赖项:确保编译环境中安装了必要的依赖(如build-essential、libssl-dev等,针对Linux编译环境)。
  • 查看具体错误日志:把编译时的错误信息复制出来,定位是工具链路径错误、语法兼容问题还是依赖缺失。

4. 验证并运行

编译完成后,在本地用file命令检查二进制文件:

file afl-fuzz

输出应包含ELF 32-bit LSB pie executable, ARM字样。将文件推送到设备,确保权限为rwxrwxrwx,再次执行./afl-fuzz即可正常运行。

内容的提问来源于stack exchange,提问作者slsanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:42:48