2 个稳定版本
1.0.1 | 2022 年 11 月 29 日 |
---|
#5 在 #turns
11KB
220 行
shelfie 将 shell 脚本转换为 ELF 文件
类似于 shc
,但没有尝试混淆脚本,恰恰相反。结果是文件不是最小化的,并且只在我的 dash 版本上进行了测试。优点在于它是 Rust 编写的,易于检查、验证等... 有关更多信息,请参阅 示例。
用法
使用以下命令在本地安装工具
cargo install shelfie
然后你可以将 sh 转换为 ELF
shelfie your-fav.sh
有帮助可用
shelfie --help
如何
我考虑过精通 ELF-fu,但放弃了。相反,我们只是将脚本附加到 ELF 上并加上标记。在运行时,我们扫描可执行文件以查找标记的迹象,提取脚本并将其传递给 /bin/sh
。
为什么
拥有 ELF 文件对于设置 setuid、setguid、设置功能等根权限魔法很有用,因为你不能使用解释脚本做这些事情。而拥有 shell 脚本对于快速破解很有用,对吧?你可以使用 shc 或类似的工具做这件事。如果你选择了其他工具,请不要介意。这是一个 Rust 练习,使用内存映射文件。
依赖关系
~0.2–1MB
~16K SLoC