shell脚本转换为c代码的工具

简介: 将shell脚本转换成代码,并编译成二进制可执行文件,在linux系统下具有防调试跟踪机制

shellc

shell脚本转换为c代码的工具

安装

cc -s shellc.c -O2 -o shellc

编译shell脚本并生成可执行程序

shellc example.sh
cc -s example.sh.c -O2 -o example -lpthread

生成的C代码是 example.sh.c,即原始文件名后加.c
对于生产环境中使用的程序,建议在编译时添加参数-s, 以删除可执行程序中的符号表,增加了反汇编和逆向工程的难度。

本人试用了可以将shell脚本编译成可执行程序的工具shcshellcrypt,存在的主要问题是:

  • shc 实际调用的是sh -c 命令,通过ps -ef 命令就能看到源码。shell脚本长度不能超过ARG_MAX值。
  • shellcrypt不支持外部参数输入,加密算法相对简单。生成的可执行程序可以通过与0x000C进行异或解密来获得源代码。

shellc除了解决上述这两工具存在的问题外,还增加了代码混淆、随机生成有效字符位置计算函数、随机字符加密、反调试等增加反汇编逆向复杂度。
该程序适用于可定义函数语法的shell,如kshbshzsh等,不支持cshcsh不支持函数定义)。
目前,该程序已在AIXUNIXLinux 环境中具有实际应用。建议对编译后的程序进行全面测试,以防止生产故障。

如果shell脚本涉及人机交互,需对原shell脚本做一些修改,read input 需改为 read input </dev/tty

相关文章
|
1天前
|
弹性计算 运维 Shell
基于Shell的灵活配置管理工具
【4月更文挑战第30天】
12 1
|
1天前
|
弹性计算 运维 监控
|
2天前
|
存储 弹性计算 运维
自动化收集员工信息的Shell脚本
【4月更文挑战第30天】
6 0
|
2天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形3
【4月更文挑战第29天】
10 0
|
2天前
|
存储 弹性计算 运维
使用shell 脚本打印图形2
【4月更文挑战第29天】
9 0
|
2天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形1
【4月更文挑战第29天】
9 0
|
2天前
|
存储 弹性计算 运维
调整虚拟机内存参数的shell 脚本
【4月更文挑战第29天】
8 0
|
3天前
|
弹性计算 运维 Shell
一键申请多个证书 shell 脚本
【4月更文挑战第29天】
9 1
|
3天前
|
弹性计算 运维 Shell
从shell脚本发送邮件
【4月更文挑战第29天】
9 0
|
Web App开发 Shell 测试技术