一句话描述:通过 shc 和交叉编译链把脚本编译为可执行文件,在 arm 设备不能正常运行
楼主想要:解决这个问题,或者有其他的把 sh 脚本加密成二进制或其它方式可以在 arm 设备运行的方法
楼主写了一个.sh 脚本文件在某 arm 设备运行正常,需要共享出去使用,但涉及设备的某些私有接口因此需要加密,使用 shc 加密为.c 格式文件,在 x86 电脑使用交叉编译链编译为 arm 平台的可执行文件,在 arm 设备运行提示:./xxxx: APh4FkK,
为了验证是交叉编译链的问题,还是脚本的问题,或者又是 shc 这个工具对 ARM 平台的兼容问题,做了以下验证:
1 ,写了一个最简易的 c 文件,只包含显示 hello world 。在 x86 电脑直接使用 gcc 编译,在 x86 设备可以正常运行;在 x86 电脑交叉编译后,在 arm 设备也可以正常运行;说明交叉编译链没问题
2 ,写了一个最简易的脚本 testsh.sh ,只包含显示 hello world ,使用 shc 加密为.c 文件和编译,在 x86 设备可以正常运行;使用交叉编译链编译.c 文件,在 arm 设备运行会报错:./testsh: {-0M:1t(说明脚本也没问题,是 shc 对 ARM 平台的兼容问题
楼主想要:解决这个问题,或者有其他的把 sh 脚本加密成二进制或其它方式可以在 arm 设备运行的方法
楼主写了一个.sh 脚本文件在某 arm 设备运行正常,需要共享出去使用,但涉及设备的某些私有接口因此需要加密,使用 shc 加密为.c 格式文件,在 x86 电脑使用交叉编译链编译为 arm 平台的可执行文件,在 arm 设备运行提示:./xxxx: APh4FkK,
为了验证是交叉编译链的问题,还是脚本的问题,或者又是 shc 这个工具对 ARM 平台的兼容问题,做了以下验证:
1 ,写了一个最简易的 c 文件,只包含显示 hello world 。在 x86 电脑直接使用 gcc 编译,在 x86 设备可以正常运行;在 x86 电脑交叉编译后,在 arm 设备也可以正常运行;说明交叉编译链没问题
2 ,写了一个最简易的脚本 testsh.sh ,只包含显示 hello world ,使用 shc 加密为.c 文件和编译,在 x86 设备可以正常运行;使用交叉编译链编译.c 文件,在 arm 设备运行会报错:./testsh: {-0M:1t(说明脚本也没问题,是 shc 对 ARM 平台的兼容问题
