sh在线shell脚本解密!

查看: 1109|回复: 7
求解密一个shell脚本
阅读权限10
本帖最后由 2205 于
18:14 编辑
/s/1o8hELMq
源脚本是没动过的。
提取源脚本建立的临时脚本(2)是我参照一个教程解密的,但是解密后还是乱码,而且无法在centos里执行了。
前面44行是没加密的
case `echo X | tail -n +1 2&/dev/null` in
X) tail_n=-n;;
*) tail_n=;;
if tail $tail_n +$skip &&$0& | gzip -cd & &$gztmp&; then
&&umask $umask
&&chmod 700 &$gztmp&
&&(sleep 5; rm -fr &$gztmpdir&) 2&/dev/null &
&&&$gztmp& ${1+&$@&}; res=$?
&&echo &&2 &Cannot decompress $0&
&&(exit 127); res=127
========================
&&(sleep 5; rm -fr &$gztmpdir&) 2&/dev/null &
通过修改&&(sleep 5; rp -fr &$gztmpdir&) 2&/dev/null &可以将脚本的删除命令替换成复制命令,从而达到脚本执行后,暂时不删除临时文件。
重新执行bash -x 源脚本(1).sh
程序运行后生成的临时文件,且不被删除。
就可以提取出来临时的脚本文件(关闭程序后临时文件夹即被删除)。
提取出来还是乱码。这是什么情况?
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
这单我接了&&楼下止步
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
这单我接了&&楼下止步
对了,是CENTOS7.0 64位的环境。
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
这单我接了&&楼下止步
哈哈哈 楼主 解密了也发我一个呗
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
对了,是CENTOS7.0 64位的环境。
其他的还可以&&但是你这SBW的我就不给你了
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
其他的还可以&&但是你这SBW的我就不给你了
为什么啊?搞这么神秘
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
楼主还需要解密吗?
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
你 这个解密出来了吗。
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
免责声明:吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
( 京ICP备号 | 京公网安备 87号 )
Powered by Discuz!
Comsenz Inc.酷勤网 C 程序员的那点事!
浏览次数:次
作者:寂寞烈火
近日论坛总有人问一个问题,如何将脚本加密并能执行,即用户可以执行,但是无法阅读源代码,我想了一个方法,在我的机器里测试通过环境:&Great&GNU/Linux&RedHat9bash版本: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:lockwhile&read&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&$1mv&$1.sh&$1chmod&+x&$1解密脚本如下:#!/bin/bashwhile&read&do&&&&&&&&eval&$(echo&$line|tr&[a-m][n-z][A-M][N-Z]&[n-z][a-m][N-Z][A-M])done&$12,创建文件并将其加密,例如:引用:/root/tools#echo&'#!/bin/bash&&echo&"This&is&A&sample&script"&&uptime&&ps&&'&test.sh/root/tools#cat&test.sh#!/bin/bashecho&"This&is&A&sample&script"uptimeps/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/onfurpub&"Guvf&vf&N&fnzcyr&fpevcg"hcgvzrcf可以看出此脚本已无法阅读3,运行加密脚本用visudo命令,添加此文件"许可"引用:lee&linux=NOPASSWD:&/root/tools/unlock&设定一个alias在/etc/profile里:引用:alias&unlock='sudo&/root/tools/unlock'OK,让我们执行一下:引用:/home/lee#echo&$0bash/home/lee#echo&$USERlee/home/lee#echo&$UID500/home/lee#cat&test.sh#!/ova/onfurpub&"Guvf&vf&N&fnzcyr&fpevcg"hcgvzrcf/home/lee#unlock&test.sh&#执行!!!&,祝我好运吧!This&is&A&sample&script03:59:33&up&2:59,&4&users,&load&average:&0.08,&0.17,&0.17PID&TTY&TIME&CMD4163&pts/2&00:00:00&unlock4177&pts/2&00:00:00&ps/home/lee#由此看出,此脚本无法阅读但是能正确无误的被解释!&^_^那么,我可不可以看lock和unlock的源代码呢?试试看引用:/home/lee#cat&/root/tools/lockcat:&/root/tools/lock:&权限不够/home/lee#cat&/root/tools/unlockcat:&/root/tools/unlock:&权限不够/home/lee#呵呵,神奇吧~~~~&^^^O^^^,这样,我们就达到了我们的初衷![&本帖最后由&寂寞烈火&于&&04:23&编辑&]
&大蚂蚁 回复于: 06:11:42
go&to&bed&now!&:mrgreen:
&mocou 回复于: 09:18:49
ROT13的原理是用字母表里a-m的字符来代替n-z,用n-z的字符来代替a-m字符。移了13位。字母对应关系:A&b&c&d&e&f&g&h&I&…&x&y&zN&o&p&q&r&s&t&u&v&…&k&l&m也很容易破密哦&:mrgreen:这么说前提是不让别人知道自己的加密方法
&西门子 回复于: 10:52:16
呵呵,有点意思!&我正在试验中!!!!
&寂寞烈火 回复于: 12:32:33
引用:原帖由&mocou&于&&09:18&发表ROT13的原理是用字母表里a-m的字符来代替n-z,用n-z的字符来代替a-m字符。移了13位。字母对应关系:A&b&c&d&e&f&g&h&I&…&x&y&zN&o&p&q&r&s&t&u&v&…&k&l&m也很容易破密哦&:mrgreen:这么说前&...&没错,&版主高见&:mrgreen:
&dbcat 回复于: 12:36:48
引用:原帖由&寂寞烈火&于&&12:32&发表没错,&版主高见&:mrgreen:&一般置换类型的加密&,用字母频率分析法即能破解.......&:mrgreen:
&r2007 回复于: 13:05:26
原创!建议使用read&-r&line否则&\&字符会被解释为转义符如明文中有echo&"\q"lock&后&\&会丢失unlock后再运行会变为echo&"q"
&寂寞烈火 回复于: 13:10:16
引用:原帖由&r2007&于&&13:05&发表原创!建议使用read&-r&line否则&\&字符会被解释为转义符如明文中有echo&"\q"lock&后&\&会丢失unlock后再运行会变为echo&"q"&多谢版主指点&:oops:&BTW:其实这个东西我写的不过想给大家提供一个思路而已!&因为毕竟,加密/解密不可能是几句接能解决的&:-}
&wayy2008 回复于: 14:23:06
引用:原帖由&mocou&于&&09:18&发表ROT13的原理是用字母表里a-m的字符来代替n-z,用n-z的字符来代替a-m字符。移了13位。字母对应关系:A&b&c&d&e&f&g&h&I&…&x&y&zN&o&p&q&r&s&t&u&v&…&k&l&m也很容易破密哦&:mrgreen:这么说前&...&版主老大,这些都是做给那些不太懂的人看的,要是真厉害的人,什么样的破不出来呀,对吧火兄?火兄的思路不错,我也想试一下。
&寂寞烈火 回复于: 14:56:02
引用:原帖由&wayy2008&于&&14:23&发表版主老大,这些都是做给那些不太懂的人看的,要是真厉害的人,什么样的破不出来呀,对吧火兄?火兄的思路不错,我也想试一下。&那当然!&:em11:&咱不是探讨探讨,学习学习嘛~~&:mrgreen:
&wayy2008 回复于: 16:06:42
试了一下,还行,只不过是不是有汉字的程序这样不行呀?
&panlm 回复于: 21:06:43
悲哀,&寂寞兄怎么研究这个了.&呵呵.
&寂寞烈火 回复于: 23:43:29
引用:原帖由&panlm&于&&21:06&发表悲哀,&寂寞兄怎么研究这个了.&呵呵.&呵呵,这有什么悲哀的,&:mrgreen:&最近不是总有人问这方面的嘛,,,,
&jkit 回复于: 11:22:52
将&#!/root/tools/unlock&手动写到加密后的文件的第一行,不就可以直接执行加密文件了吗。
&unitedboy 回复于: 10:00:31
很容易破解
&风流涕淌 回复于: 02:31:30
其实好多命令用gzexe命令压一下,一般人还不会解开呢,这样也可以骗过好多人,这个主要看楼主防小人还是君子了
&寂寞烈火 回复于: 03:00:04
引用:原帖由&风流涕淌&于&&02:31&发表其实好多命令用gzexe命令压一下,一般人还不会解开呢,这样也可以骗过好多人,这个主要看楼主防小人还是君子了&谁也不防,就是一个练习而已,&^_^
&xiaomage276518 回复于: 17:06:56
要是里面包含数字呢??
& 相关主题:sh 脚本与pbs脚本的区别
全部答案(共1个回答)
(sh一般指系统默认shell,比如 bash, ksh, Csh 等都有可能) 来解释和运行 xxx 这个脚本。xxx 文件不必具有可执行属性(chmod +x)./xxx
xxx必须具备可执行属性,如果此时的 xxx 是一个文本文件(脚本),那么按照 xxx 的第一行所指定的命令来解释和执行 xxx, 如果xxx 文件中没有指定,默认按照 /bin/sh 来解释和执行。
xxx 需要在第一行用#!/path/to/mmm
的方法来说明要用 mmm 命令来解释和执行 自身。比如如果是 bash 脚本,为
#!/bin/bashperl脚本,
#!/usr/bin/perlpython脚本,
#!/usr/bin/python
'有多种方法可以实现这个需求,下面提供一种方法,供参考:
Option Explicit
Private Const WAIT_INFINITE = -1&...
起 声明 或者 执行某操作的作用
比方 经典的hello world的shell版本
#!/bin/bash
echo "hello world"
其中 第...
你可以直接编辑相应的源码文件,不用逐个去录制
知道对应录制的操作就行了
TC 是一款模拟鼠标键盘操作的脚本开发工具.TC软件由雷霆工作组开发完成,主要致力于鼠标键盘的模拟操作. 提供相应的游戏辅助功能,帮助玩家实现人性化的游戏操作,...
建议LZ以后不要在爱问提问这样的问题。说实话这里的水平只能告诉你安装升级杀毒软件和用软件优化系统。。。还是告诉你把
原理rasdial /disconnect...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区您的浏览器已经禁用了脚本,这可能会影响您正常使用本站的功能。
用shell脚本防止暴力破解SSH服务
近来无意发现有许多人在尝试暴力破解我VPS服务器的服务,因此,根据/var/log/secure日志显示情况,查找一些资料,自己动手写了个脚本来防止SSH的暴力破解。
使用命令查看据/var/log/secure
/var/log/secure| '/Failed/{print $(NF-3)}'|| -c|awk '{print $2&=&$1;}'
<span style="color: #4.160.192.241=8
125.222.191.77=264
174.139.85.146=68
184.107.179.50=132
202.75.218.139=405
206.246.141.118=1
213.229.124.66=707
218.80.254.242=3
222.82.245.146=7
64.120.15.156=1
64.34.218.142=2
70.38.31.38=2119
88.190.21.124=30
95.130.170.231=2
这条命令是统计访问失败的和次数,很显然,有很多恶意IP。所以根据这些信息可以写一个shell脚本来过滤这些IP:
#! /bin/bash
cat /var/log/secure|awk &#39;/Failed/{print $(NF-3)}&#39;|sort|uniq -c|awk &#39;{print $2&=&$1;}&#39; & /root/satools/black.txt
DEFINE=&100&
for i in `cat /root/satools/black.txt`
IP=` $i |awk -F= &#39;{print $1}&#39;`
NUM=`echo $i|awk -F= &#39;{print $2}&#39;`
if [ $NUM -gt $DEFINE ]; then
$IP /etc/hosts.deny & /dev/null
if [ $? -gt 0 ]; then
echo &:$IP& && /etc/hosts.deny
该脚本的思路:
由于/var/log/secure是以星期为轮询的,所以我们每次可以查看这个文件,利用shell脚本统计出其中访问失败比较频繁的IP,并定义一个阀值为100,如果大于100的话就将其放进/etc/hosts.deny文件,阻止其继续访问vsftpd和然后将其写进计划列表里,每隔一段时间进行一次排查,如果下次排查的某IP次数又大于100,首先检查它在不在我们的黑名单,如果在的话就无视过去;如果不在,就继续添加进/etc/hosts.deny文件。
该脚本也可以解决其他服务遭受暴力破解,比如 VSFTP。方法如下:
在脚本中第二个 if 中写入:
echo &vsftpd:$IP& && /etc/hosts.deny
最后使用crontab定时执行这个脚本。即每隔1小时就重复执行一次这个脚本,这里也有一个情况要说明下,/var/log/secure是每隔一个星期轮询一次的,所以我们这里可以根据服务器的具体情况来配置多少时间执行一次此脚本,暴力破解频繁的机器可适当缩小这个周期。
0 */1 * * * root sh /root/satools/hosts_deny.sh
我们可以先手动执行一下该脚本,看一下效果:
./hosts_deny.sh
# cat /etc/hosts.deny
# hosts.deny This
describes the names of the hosts
# *not* allowed to use the local INET services,
# by the &#39;/usr/sbin/tcpd&#39; server.
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
sshd:125.222.191.77
sshd:184.107.179.50
sshd:202.75.218.139
sshd:213.229.124.66
sshd:70.38.31.38
可以看到访问失败次数大于预设值的IP已经写入到了hosts.deny文件中。
抱歉,暂无相关内容!
收藏Ctrl+D
关注Linux/Unix应用技术、业界新闻,同时也发布开源、移动互联网等新鲜资讯!
—— Powered ——运行在最近项目中有个小的需求,配置文件中配置有DB密码,客户担心xml文件被非法窃取,所以要求配置文件中的密码是经过加密的。这就有个问题,常用的MD5加密,理论上是不可逆的。所以简单写了一个加密解密方法。
加密是使用的shell脚本,当然使用java代码也可以。作用就是运维人员输入原密码,生成加密后的密文。然后配置即可,程序中根据约定的解密方式去解读密文,还原为可用密码。这样即使配置文件被盗用也无法获知原密码。
解密方法如下:
* @param param
public static String AsciiToStr(String param) {
String str = &&;
String asciiPsw=//字符串
if (asciiPsw.length() & 10) {
asciiPsw = asciiPsw.substring(10) + asciiPsw.substring(0, 10);
System.out.println(&\n恢复原密码\n----------------------&);
// 密码位数
Integer pswLength = asciiPsw.length()/3;
for (int i = 0;i & pswLi++) {
// 三位拆分、分别减101
Integer intPsw = Integer.valueOf(asciiPsw.substring(3*i, 3*(i+1))) - 101;
str = str + (char)Integer.parseInt(String.valueOf(intPsw));
加密 shell脚本如下
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5705次
排名:千里之外
原创:16篇

我要回帖

更多关于 传奇脚本加密解密工具 的文章

 

随机推荐