执行加密脚本的实现

王朝other·作者佚名  2008-05-18
宽屏版  字体: |||超大  

近日论坛总有人问一个问题,如何将脚本加密并能执行,即用户可以执行,但是无法阅读源代码,我想了一个方法,在我的机器里测试通过

环境: 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

/root/tools#ls /home/lee/test.sh

/home/lee/test.sh

/root/tools#cat /home/lee/test.sh

#!/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^^^

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有