求解

@Ta 09-10 16:20 220点击



谁知道这种是属于什么加密?
gzexe输出gz文件 gunzip解压不了
shc?好像不行
回复列表(9)
  • 1
    @Ta / 09-10 17:13
    层主 @老虎會游泳 于 2019-09-10 17:13 删除了该楼层。
  • 2
    @Ta / 09-10 17:23
    哪位大神教两手啊 
  • 3
    @Ta / 09-10 18:29

    3为什么不问问万能的答题机器老虎呢

    我们终究还是活成了自己讨厌的模样
  • 4
    @Ta / 09-11 03:45

    @潜水,用十六进制编缉器把39行改成
    cat "$gztmp"; res=$?
    然后再执行脚本,就可以输出解压后的内容了。
    注意,一定要用十六进制编缉器,不能用文本编辑器,否则文件会损坏。此外,必须保证修改前和修改后字节数相等,否则也无法解压。39行修改后如果内容太空,自己添加一些空格。

  • 5
    @Ta / 09-11 03:47

    还有,使用7zip-full(或者windows版7zip)很可能可以直接解压这个文件。

  • 6
    @Ta / 09-11 04:45



    @老虎会游泳,老虎,Android有什么好用的十六进制编辑器推荐吗?表示国产的那几个都不好用,始终不如eHex,安卓9.0下Mrpoid2运行eHex直接闪退,唉,可惜eleqian不会Java。


    菩提本无树,明镜亦非台。
    本来无一物,何处惹尘埃!

    ฏ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฏ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฏ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้۩͇̿v͇̿i͇̿p͇̿۩
    華為P30 (Pro版)-(金色)

  • 7
    @Ta / 09-11 09:59

    @潜水,来源地址:https://qblog.org/manual/linux-shell-decode.html
    第一种方法:采用gzexe加密,严格来讲,gzexe这种脚本加密方式不是加密,而是把代码进行了压缩,但是这种方式能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。它是使用Liunx系统环境下自带的gzexe程序,它不但加密,同时压缩文件。
    gzexe加密linux脚本的使用方法:
    gzexe file.sh /它会把原来的文件备份为 file.sh~ ,同时 file.sh 即被变成加密后的可执行文件

    使用gzexe加密的shell脚本代码特征为:前面一段代码是正常的命令字符,到了后面某一行开始就全部为乱码,示例如下

    #!/bin/sh
    skip=44
    
    tab='  '
    nl='
    '
    IFS=" $tab$nl"
    
    umask=`umask`
    umask 77
    
    gztmpdir=
    trap 'res=$?
      test -n "$gztmpdir" && rm -fr "$gztmpdir"
      (exit $res); exit $res
    ' 0 1 2 3 5 10 13 15
    
    if type mktemp >/dev/null 2>&1; then
      gztmpdir=`mktemp -dt`
    else
      gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir
    fi || { (exit 127); exit 127; }
    
    gztmp=$gztmpdir/$0
    case $0 in
    -* | */*'
    ') mkdir -p "$gztmp" && rm -r "$gztmp";;
    */*) gztmp=$gztmpdir/`basename "$0"`;;
    esac || { (exit 127); exit 127; }
    
    case `echo X | tail -n +1 2>/dev/null` in
    X) tail_n=-n;;
    *) tail_n=;;
    esac
    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=$?
    else
      echo >&2 "Cannot decompress $0"
      (exit 127); res=127
    fi; exit $res
    ??Wopenvpn ?ks /此处开始乱码
    

    gzexe加密shell解密思路:跟踪代码的执行过程可以发现,脚本执行到某一步的时候会生成临时解密的shell脚本
    ,整个脚本执行完之后再把临时解密shell脚本所在目录删除。有了这个发现,我们就找到了方法了。

    /usr/bin/tail -n +44 file.sh >/tmp/1.gz /提取解密后的压缩文件1.gz到/tmp目录,其中的+44为上面的示例脚本中对应的乱码开始的地方
    cd /tmp /切换到/tmp目录
    gunzip 1.gz /解压解密后的文件,就可以得出解密后的代码了

  • 8
    @Ta / 09-11 10:42
    @Curtion,就是输出到gz文件之后,解压之后还是原代码xx.sh.x这样的文件
  • 9
    @Ta / 09-11 12:37
    /bin/objdump: 1.x: File format not recognized
    /bin/objdump: 1.x: File format not recognized
    [-] Unable to define arc4() call address...
添加新回复
回复需要登录

[聊天-公共聊天室] ShadowNeuro:网站又好了 我们有着共同的敌人——天命; 你却认命了,还对我说天命不可违‮