Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103677643
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-18 23:21:57

作者:寂寞烈火   
近日论坛总有人问一个问题,如何将脚本加密并能执行,即用户可以执行,但是无法阅读源代码,我想了一个方法,在我的机器里测试通过
环境: Great GNU/Linux RedHat9
bash版本:GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu)
tr版本:tr (coreutils) 4.5.3

原理很简单,就是利用著名的rot13密码加密
操作过程:
1,建立加密脚本和解密脚本:
在root下创建一个目录:

 
mkdir /root/tools
chmod +s /root/tools
修改$PATH,即在/etc/profile里加入:

 
export PATH=$PATH:/root/tools
用dot命令执行/etc/profile让其立即生效.
加密脚本如下:

 
#!/bin/bash
#name:lock
while read line;do
        echo $line|tr [a-m][n-z][A-M][N-Z] [n-z][a-m][N-Z][A-M]
done<$1>$1.sh
rm -rf $1
mv $1.sh $1
chmod +x $1
解密脚本如下:

 
#!/bin/bash
while read line;do
        eval $(echo $line|tr [a-m][n-z][A-M][N-Z] [n-z][a-m][N-Z][A-M])
done<$1
2,创建文件并将其加密,例如:

 
/root/tools#echo '#!/bin/bash
> echo "This is A sample script"
> uptime
> ps
> '>test.sh
/root/tools#cat test.sh
#!/bin/bash
echo "This is A sample script"
uptime
ps

/root/tools#lock test.sh #加密脚本
/root/tools#mv test.sh /home/lee #mv到我这个扑通用户下
/root/tools#ls /home/lee/test.sh
/home/lee/test.sh
/root/tools#cat /home/lee/test.sh #我cat一下 ~_~
#!/ova/onfu
rpub "Guvf vf N fnzcyr fpevcg"
hcgvzr
cf
可以看出此脚本已无法阅读
3,运行加密脚本
用visudo命令,添加此文件"许可"

 
lee linux=NOPASSWD: /root/tools/unlock
设定一个alias在/etc/profile里:

 
alias unlock='sudo /root/tools/unlock'
OK,让我们执行一下:

 
/home/lee#echo $0
bash
/home/lee#echo $USER
lee
/home/lee#echo $UID
500
/home/lee#cat test.sh
#!/ova/onfu
rpub "Guvf vf N fnzcyr fpevcg"
hcgvzr
cf

/home/lee#unlock test.sh #执行!!! ,祝我好运吧!
This is A sample script
03:59:33 up 2:59, 4 users, load average: 0.08, 0.17, 0.17
PID TTY TIME CMD
4163 pts/2 00:00:00 unlock
4177 pts/2 00:00:00 ps
/home/lee#
由此看出,此脚本无法阅读但是能正确无误的被解释! ^_^
那么,我可不可以看lock和unlock的源代码呢?试试看

 
/home/lee#cat /root/tools/lock
cat: /root/tools/lock: 权限不够
/home/lee#cat /root/tools/unlock
cat: /root/tools/unlock: 权限不够
/home/lee#
呵呵,神奇吧~~~~ ^^^O^^^,这样,我们就达到了我们的初衷!
阅读(389) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~