仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2378|回复: 7
打印 上一主题 下一主题

[shell编程] 带来一篇shc gzexe 将shell剧本转换为二进制的可实行文件

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!第一种***(gzexe):
这类加密体例不长短常保险的***,可是可以满意一样平常的加密用处,能够潜伏剧本中的暗码等信息。
它是利用体系自带的gzexe步伐,它不仅加密,同时紧缩文件。
利用***:
gzexefile.sh
它会把本来没有加密的文件备份为file.sh~,同时file.sh即被酿成加密文件;

第二种***(shc):
利用shc对Linuxshell剧本加密.
shc是一个专业的加密shell剧本的工具.它的感化是把shell剧本转换为一个可实行的二进制文件,这个举措很好的办理了剧本中含有IP、暗码等不但愿公然的成绩.
shc的下载地点:
http://download.chinaunix.net/download/0010000/9479.shtml
装置:
tarzxvfshc-3.8.tgz
cdshc-3.8
maketest
make
maketest
makestrings
makeinstall
利用***:
shc-r-fscript-name
运行后会天生两个文件,script-name.x和script-name.x.c.个中script-name.x是加密后的可实行的二进制文件;用./script-name便可运转,script-name.x.c是天生script-name.x的原文件(c言语).



-----------------------------------------------------------------------

假如你的shell剧本包括了敏感的口令大概别的主要信息,并且你不但愿用户经由过程ps-ef(检察体系每一个历程的形态)捕捉敏感信息.你可使用shc工具来给shell剧本增添一层分外的宁静回护.shc是一个剧本编译工具,利用RC4加密算法,它可以把shell步伐转换成二进制可实行文件(撑持静态链接和静态链接).该工具可以很好的撑持:必要加密,解密,大概经由过程下令参数传送口令的情况.
shc主页:
http://www.ckuyun.com/%7Efrosal/
如今的版本是3.8.6(shc-3.8.6.tgz),以此为例先容shc的装置及使用:
筹办:
起首你必要反省体系是不是装置了gcc编译器,以FedoraCore6为例先容gcc的反省和装置:
#rpm-qa|grepcompat-gcc
compat-gcc-34-3.4.6-4
假如没有装置,按上面步调装置gcc
#wgetftp://mirrors.kernel.org/fedora/core/6/i386/os/Fedora/RPMS/compat-gcc-34-3.4.6-4.i386.rpm
然后
#ln-s/usr/bin/gcc34/usr/bin/cc
装置:
#wgethttp://www.ckuyun.com/%7Efrosal/sources/shc-3.8.6.tgz
#tarvxfshc-3.8.6.tgz
#cdshc-3.8.6
#maketest
#makestrings
#makeinstall
使用:
上面以mysql数据库备份(备份文件经由过程ftp上传到一台近程的办事器)剧本为例:
###############################mysql_backup.sh##############################
#!/bin/sh
newtime=`date+%m-%d-%y_%I%M%p`
mysqldump-u******-p******dbname|gzip>/Users/****/Documents/dbName_$newtime.sql.gz
echo“backupofdbname”
curlCupload-filedbname$newtime.sql.gzCurl“ftp://*****:*****@host/”
echo“ftpofdbnamedone”
###############################mysql_backup.sh##############################
1).加密剧本.
#shc-v-fmysql_backup.sh
-v:是verbose形式,输入更具体编译日记.-f:指定剧本的称号.
下面下令在屏幕上的输入:
shcshll=sh
shc[-i]=-c
shc[-x]=exec‘%s’“$@”
shc[-l]=
shcopts=
shc:ccmysql_backup.sh.x.c-omysql_backup.sh.x
shc:stripmysql_backup.sh.x
shc:chmodgo-rmysql_backup.sh.x
我们能够看到天生了静态链接可实行二进制文件mysql_back.sh.x和C源文件mysql_backup.sh.x.c,注重天生的二进制文件由于是静态链接情势,以是在别的平台上不克不及运转:
mysql_backup.sh.x:ELF32-bitLSBexecutable,Intel80386,version1(SYSV),
dynamicallylinked(usessharedlibs),forGNU/Linux2.6.9,stripped
2).天生静态链接的二进制可实行文件.
不外,我们能够经由过程上面的***天生一个静态链接的二进制可实行文件:
#CFLAGS=-staticshc-r-fmysql_backup.sh
#filemysql_backup.sh.x
mysql_backup.sh.x:ELF32-bitLSBexecutable,Intel80386,version1(SYSV),
staticallylinked,forGNU/Linux2.6.9,stripped
提醒:经由过程sch加密后的剧本文件很宁静吗?
一样平常来讲是宁静的,不外可使用gdb和别的的调试工具取得最后的源代码.假如你必要加倍宁静的***,能够思索利用wzshSDK.
别的,sch还能够设置剧本的运转刻日和自界说前往信息:
shc-e03/31/2007-m“themysqlbackupscriptisnowoutofdate.”-fmysql_back.sh
-e暗示剧本将在2007年3月31日前生效,并依据-m界说的信息前往给终端用户.
3).二进制文件的分析
有乐趣的伴侣能够参阅上面的文章:
ParanoidPenguin-Limitationsofshc,aShellEncryptionUtility
你好shc能不克不及在64位的机子上运转我有台64位的办事器OS为64位的rhel4up2实行加密后的剧本堕落
test.sh.x:hasexpired!
Pleasecontactyourprovider
是甚么成绩估量在运转下令的时分-e选项指定的日期已生效,注重看一下办事器的工夫是不是准确.
在64(OS为64位)位的机子加-e和不加-e仍是报那样的毛病,办事器的工夫没有成绩,我在32位的机子上测试完整一般,你能够在64位测试以下



上面就申明一下shc的装置,参数,和利用示例:
下载装置:
(官网下载地点:http://www.ckuyun.com/~frosal/sources/)
#wgethttp://www.ckuyun.com/~frosal/sources/shc-3.8.7.tgz
#cdshc-3.8.7
#make
#makeinstall
(仅用make就能够完成装置,运转shc时要指出相对路径;用makeinstall,将shc装置到/usr/local/bin下,能够间接运转)

经常使用参数:
-edate
Expirationdateindd/mm/yyyyformat[none](指定过时日期)

-mmessage
messagetodisplayuponexpiration["Pleasecontactyourprovider"](指定过时提醒的信息)

-fscript_name
Filenameofthescripttocompile(指定要编译的shell的路径及文件名)

-rRelaxsecurity.
Makearedistributablebinarywhichexecutesondifferentsystemsrunningthesameoperat-ingsystem.(能够不异操纵体系的分歧体系中实行)

-vVerbosecompilation(编译的具体情形)

利用示例:
[root@centos54tmp]#/usr/local/src/shc-3.8.7/shc-e20/10/2010-m"contact***@163.com"-v-r-f./ex.sh
-e:指定过时工夫为2010年10月20日
-m:过时后打印出的信息;
-v:verbose
-r:可在不异操纵体系的分歧主机上实行
-f:指定源shell



如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
不帅 该用户已被删除
沙发
发表于 2015-1-25 07:48:50 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-2-2 21:42:13 | 只看该作者
另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。
因胸联盟 该用户已被删除
地板
发表于 2015-2-8 08:27:56 | 只看该作者
熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:
蒙在股里 该用户已被删除
5#
发表于 2015-2-25 11:34:28 | 只看该作者
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
变相怪杰 该用户已被删除
6#
发表于 2015-3-7 22:54:42 | 只看该作者
众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。
若天明 该用户已被删除
7#
发表于 2015-3-15 22:26:41 | 只看该作者
熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:
透明 该用户已被删除
8#
 楼主| 发表于 2015-3-22 17:51:58 | 只看该作者
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-12 10:03

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表