免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9292 | 回复: 8
打印 上一主题 下一主题

[文本处理] 怎样还原shc加密的脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-13 15:03 |只看该作者 |倒序浏览
本帖最后由 hyh717 于 2014-10-13 15:13 编辑

如题,想知道怎样还原shc加密或的脚本,有人试过吗?

网上有人写一个解密脚本,执行后出现出错:skip flag not found。附上脚本:
  1. #!/bin/sh
  2. ##############################################################
  3. # Used to unzip script files generated by shc                #
  4. # Modified by cuterhei at 2014-02-26: 目录遍历               #
  5. # Created by cuterhei at 2014-02-25 : 创建                   #
  6. ##############################################################

  7. shcd_help()
  8. {
  9.     echo "  Used to unzip script file generated by shc."
  10.     echo "  Usage:"
  11.     echo "    0. shcd -h|?|-help       ---- Current you see"
  12.     echo "    1. shcd inputfile        ---- 解压单个文件(输出文件inpfile.bat)"
  13.     echo "    2. shcd inpfile outpfile ---- 解压单个文件(输出文件outpfile)"
  14.     echo "    3. shcd -d               ---- 深层目录遍历解压(输出文件*.bat)"
  15.     echo "    4. shcd -a               ---- 当前目录遍历解压(输出文件*.bat)"
  16.     exit 0
  17. }

  18. get_skip()
  19. {
  20.     skip=0
  21.     while read skip_line
  22.     do
  23.         let "skip -= 1"
  24.         skl_f="none"
  25.         skipstrlist=$(echo $skip_line|tr "=" "\n")
  26.         for xs in $skipstrlist; do
  27.             if [ "$skl_f" = "none" ]; then
  28.                 if [ "$xs" = "skip" ]; then
  29.                     skl_f="found"
  30.                 else
  31.                     break;
  32.                 fi
  33.             elif [ "$skl_f" = "found" ]; then
  34.                skip=$xs;
  35.                break
  36.             else
  37.                break
  38.             fi
  39.         done
  40.         if [ "$skl_f" = "found" ] || [ $skip -le -2 ]; then
  41.             break
  42.         fi
  43.     done < "$1"
  44.     echo $skip
  45. }

  46. ucount=0

  47. uncomp_shc()
  48. {
  49.     skipline=$(get_skip $1)
  50.     if [ "$skipline" = "" ] || [ $skipline -le 1 ]; then
  51.         echo "%>_<% Skip flag not found: $1"
  52.     else
  53.         if tail -n +"$skipline" "$1" | gzip -cd > "$2"; then
  54.             let "ucount += 1"
  55.             echo "^_^ $ucount. Unzip $1<skip=$skipline> to $2"
  56.         else
  57.             echo "%>_<% Unzip $1<skip=$skipline> failed"
  58.         fi
  59.     fi
  60. }

  61. uncshc_dir()
  62. {
  63.     echo "......Enter dir '$1' ......"
  64.     for file in $1/*
  65.     do
  66.         if [ -f $file ]; then
  67.             uncomp_shc "$file" "$file.bat"
  68.         elif [ -d $file ] && [ "$2" = "-d" ]; then
  69.             uncshc_dir "$file" "$2"
  70.         fi
  71.     done
  72.     echo "......Leave dir '$1' ......"
  73. }

  74. # now start to work

  75. if [ "$#" = "0" ] || [ "$1" = "-?" ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
  76.     shcd_help
  77. elif [ -f $1 ]; then
  78.     if [ "$#" = "2" ]; then
  79.         uncomp_shc "$1" "$2"
  80.     else
  81.         uncomp_shc "$1" "$1.bat"
  82.     fi
  83. elif [ "$1" = "-d" ] || [ "$1" = "-a" ]; then
  84.     uncshc_dir . $1
  85. else
  86.     echo "File $1 is not exist."
  87. fi

  88. echo "$ucount files are unzipped."

  89. exit

  90. # end of job
复制代码

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
2 [报告]
发表于 2014-10-13 17:22 |只看该作者
回复 1# hyh717


    这种问题咋回答?你是想大家都装一遍这个脚本,帮你测试么。。。

   你用sh -x跟踪一下执行过程,看看为啥if [ "$skipline" = "" ] || [ $skipline -le 1 ]; then这个条件未通过,先把异常的具体地方找出来再说

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
3 [报告]
发表于 2014-10-13 17:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
3
丑牛
日期:2014-09-13 18:19:22摩羯座
日期:2014-10-10 17:43:02水瓶座
日期:2014-10-16 01:00:22
4 [报告]
发表于 2014-10-13 18:06 |只看该作者
学生党:飘过~要不要py来一发
skipline=$(get_skip $1)
|
if [ "$skipline" = "" ] || [ $skipline -le 1 ]; then
|
echo "%>_<% Skip flag not found: $1"
|_/bin/bash -x 调试吧.....目测是文件有问题吧.get_skip处理文件的函数仔细看看~你这样贴实在不想看啊

论坛徽章:
0
5 [报告]
发表于 2014-10-14 02:37 |只看该作者
问题已解决,感谢回复···

论坛徽章:
0
6 [报告]
发表于 2014-12-02 09:44 |只看该作者
怎么解决的   ?  楼主分享一下啊...   回复 5# hyh717


   

论坛徽章:
0
7 [报告]
发表于 2015-07-18 08:38 |只看该作者
如何解决的,谢谢

论坛徽章:
0
8 [报告]
发表于 2015-07-29 10:43 |只看该作者
怎么解决的,谢谢

论坛徽章:
0
9 [报告]
发表于 2016-04-24 23:13 |只看该作者
回复 5# hyh717

怎么解决的??????
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP