首页 > 学技术 > 技术网文 > Linux Shell > 正文

[原创] [原创]执行加密脚本的实现


来源 chinaunix.net 酷勤网整理

近日论坛总有人问一个问题,如何将脚本加密并能执行,即用户可以执行,但是无法阅读源代码,我想了一个方法,在我的机器里测试通过
环境: 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^^^,这样,我们就达到了我们的初衷!

[ 本帖最后由 寂寞烈火 于 2005-12-13 04:23 编辑 ]



 大蚂蚁 回复于:2005-12-13 06:11:42

go to bed now! :mrgreen:


 mocou 回复于:2005-12-13 09:18:49

ROT13的原理是用字母表里a-m的字符来代替n-z,用n-z的字符来代替a-m字符。移了13位。

字母对应关系:

A b c d e f g h I … x y z

N o p q r s t u v … k l m

也很容易破密哦 :mrgreen:这么说前提是不让别人知道自己的加密方法


 西门子 回复于:2005-12-13 10:52:16

呵呵,有点意思! 我正在试验中!!!!


 寂寞烈火 回复于:2005-12-13 12:32:33

引用:原帖由 mocou 于 2005-12-13 09:18 发表
ROT13的原理是用字母表里a-m的字符来代替n-z,用n-z的字符来代替a-m字符。移了13位。

字母对应关系:

A b c d e f g h I … x y z

N o p q r s t u v … k l m

也很容易破密哦 :mrgreen:这么说前 ... 


没错, 版主高见 :mrgreen:


 dbcat 回复于:2005-12-13 12:36:48

引用:原帖由 寂寞烈火 于 2005-12-13 12:32 发表

没错, 版主高见 :mrgreen: 



一般置换类型的加密 ,用字母频率分析法即能破解....... :mrgreen:


 r2007 回复于:2005-12-13 13:05:26

原创!
建议使用read -r line
否则 \ 字符会被解释为转义符
如明文中有
echo "\q"
lock 后 \ 会丢失
unlock后再运行
会变为
echo "q"


 寂寞烈火 回复于:2005-12-13 13:10:16

引用:原帖由 r2007 于 2005-12-13 13:05 发表
原创!
建议使用read -r line
否则 \ 字符会被解释为转义符
如明文中有
echo "\q"
lock 后 \ 会丢失
unlock后再运行
会变为
echo "q" 


多谢版主指点 :oops: 
BTW:其实这个东西我写的不过想给大家提供一个思路而已! 因为毕竟,加密/解密不可能是几句接能解决的 :-}


 wayy2008 回复于:2005-12-13 14:23:06

引用:原帖由 mocou 于 2005-12-13 09:18 发表
ROT13的原理是用字母表里a-m的字符来代替n-z,用n-z的字符来代替a-m字符。移了13位。

字母对应关系:

A b c d e f g h I … x y z

N o p q r s t u v … k l m

也很容易破密哦 :mrgreen:这么说前 ... 



版主老大,这些都是做给那些不太懂的人看的,要是真厉害的人,什么样的破不出来呀,对吧火兄?

火兄的思路不错,我也想试一下。


 寂寞烈火 回复于:2005-12-13 14:56:02

引用:原帖由 wayy2008 于 2005-12-13 14:23 发表


版主老大,这些都是做给那些不太懂的人看的,要是真厉害的人,什么样的破不出来呀,对吧火兄?

火兄的思路不错,我也想试一下。 


那当然! :em11: 咱不是探讨探讨,学习学习嘛~~ :mrgreen:


 wayy2008 回复于:2005-12-13 16:06:42

试了一下,还行,只不过是不是有汉字的程序这样不行呀?


 panlm 回复于:2005-12-13 21:06:43

悲哀, 寂寞兄怎么研究这个了. 呵呵.


 寂寞烈火 回复于:2005-12-13 23:43:29

引用:原帖由 panlm 于 2005-12-13 21:06 发表
悲哀, 寂寞兄怎么研究这个了. 呵呵. 


呵呵,这有什么悲哀的, :mrgreen: 最近不是总有人问这方面的嘛,,,,


 jkit 回复于:2005-12-14 11:22:52

将 #!/root/tools/unlock 手动写到加密后的文件的第一行,不就可以直接执行加密文件了吗。


 unitedboy 回复于:2005-12-25 10:00:31

很容易破解


 风流涕淌 回复于:2006-01-08 02:31:30

其实好多命令用gzexe命令压一下,一般人还不会解开呢,这样也可以骗过好多人,这个主要看楼主防小人还是君子了


 寂寞烈火 回复于:2006-01-08 03:00:04

引用:原帖由 风流涕淌 于 2006-1-8 02:31 发表
其实好多命令用gzexe命令压一下,一般人还不会解开呢,这样也可以骗过好多人,这个主要看楼主防小人还是君子了 


谁也不防,就是一个练习而已, ^_^


 xiaomage276518 回复于:2007-04-03 17:06:56

要是里面包含数字呢??




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=667696
转载请注明作者名及原文出处



收藏本页到: