当前位置:网站首页 > 技术博客 > 正文

shellcode加密



shc是shell编译器(Shell Compiler)的缩写, 它可以对shell脚本进行编译和加密。它能够将shell脚本编译为可执行的二进制文件,其中包含了脚本的功能和逻辑,而不暴露源代码。可以说shc就是一个加密shell脚本的工具。shc的官方网址为:http://www.datsi.fi.upm.es/~frosal/sources/。shc在github上没有对应的链接。其实也能理解,不是每一个人都喜欢将自己的项目上传到github上。

官方文档关于shc的描述说明如下:

sqc的安装有多种方式,可以根据适合自己的方式来安装,因为各自环境不一样,可能选择的安装方式不一样。

不过有些Linux版本的yum源可能没有shc包,所以这种方式只适用yum源有shc包的环境。

根据对应的Linux发行版本,从https://pkgs.org/ 搜索shc对应平台的rpm包,如下所示,当前测试环境的rpm包下载

源码下载地址http://www.datsi.fi.upm.es/~frosal/sources/

下面是shc比较常用的参数说明,更多参数说明请参考man手册或官方文档。

加密shell脚本的例子

如下所示,脚本执行后生成了两个文件,其中monitor_long_trx.sh.x是加密过后的可执行的二进制文件。monitor_long_trx.sh.x.c是生成monitor_long_trx.sh.x的原文件(C语言),也就是说编译这个C源代码文件可以创建上面加密的monitor_long_trx.sh.x文件。

不过这个C源代码文件,跟你想象的C语言源代码文件可能有点不一样。如下所示,

shc还提供了一种设定有效执行期限的方法,编译生成的可执行二进制文件在过了这个有效性后,就不能执行。

一些简单常用的例子

shc编译出来的二进制可执行文件,可能比原shell脚本在文件大小上稍微大上一些,相比gzexe和Bashfuscator等工具,它要可靠很多(Bashfuscator就非常不可靠,有些混淆出来的脚本执行会报错)。从个人简单的测试和实践来看,这个工具非常好用,而且用途非常广泛。

那么shc加密过后的可执行二进制文件,能否被解密呢? 答案是低版本sqc生成的加密二进制可执行文件可以被解密,可以被工具解密。而高版本shc(4.x)生成加密文件越来越难解密(暂时不能解密,不代表不能被后续的工具或方法解密)。

下面是UnSHc中的介绍说明,有兴趣可以看看了解一下

版权声明


相关文章:

  • 自定义拦截器类包括哪3个方法2025-03-07 22:29:59
  • ipad当安卓手机显示器2025-03-07 22:29:59
  • mq消息队列底层原理2025-03-07 22:29:59
  • 01背包问题动态规划详解2025-03-07 22:29:59
  • “[黑夜汉化组]”2025-03-07 22:29:59
  • mfcc matlab2025-03-07 22:29:59
  • 2021免费dns2025-03-07 22:29:59
  • 全能鼠标键盘记录器破解版2025-03-07 22:29:59
  • java最简单的测试代码怎么写2025-03-07 22:29:59
  • java中hashcode的用法2025-03-07 22:29:59