shell加密,java&shell互相调用

6 篇文章 0 订阅
2 篇文章 0 订阅

(一)shell脚本启动java程序

linux下通过.sh文件启动java程序的步骤:

1、在linux系统上安装JDK,并配置环境变量。可以参考:http://blog.csdn.net/u013713294/article/details/52514608

2)把java程序打成jar包。可以参考:http://jingyan.baidu.com/article/219f4bf7d0ef87de442d3820.html

3)指定好主类入口并添加java项目依赖的jar

①指定主类入口

java应用项目打包成一个jar,必须指定一个拥有main函数的main class作为你这个jar包的程序入口,具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。

MANIFEST.MF里面添加如下一句话:Main-Class:firstpack.HelloWorld,如下图:


注释:

 1Main-Class格式:Main-Class+空格+包名+包含主函数的类名


②添加依赖的jar

AppClassloader来加载第三方依赖的jar。例如:在MANIFEST.MF中添加如下代码:Class-Path:lib/some.jar,如果有多个jar包需要引用的情况:Class-Path:lib/some.jar lib/some2.jarjar之间用空格隔开。

4)编写sh脚本文件,执行即可。

   此处用shell脚本调用HelloWorld程序,演示:

①脚本:

#!/bin/bash

java-jar RunJava.jar

----------------------------------------------------------------------------------------------------------------------

②linux里运行截图:


(二)java程序调用shell脚本

1、linux下截图


2、执行结果:



(三) 对shell脚本加密

1、用gzexe命令加密:


 

2、用shc加密

 

[root@bogonshc-3.8.7]# ls

CHANGES  l.sh     match    match.x.c  shc   shc-3.8.7.c  shc.html    test.bash test.ksh

  pying Makefile  match.x  pru.sh    shc.1  shc.c        shc.README  test.csh

[root@bogonshc-3.8.7]# ./l.sh

-bash:./l.sh: Permission denied

 

#加密

[root@bogonshc-3.8.7]# ./shc -v -r -T -f l.sh         

shcshll=bash

shc[-i]=-c

shc[-x]=exec '%s' "$@"

shc[-l]=

shcopts=

shc:cc  l.sh.x.c -o l.sh.x

shc:strip l.sh.x

shc:chmod go-r l.sh.x

[root@bogonshc-3.8.7]# ls

CHANGES  l.sh.x   match      pru.sh  shc-3.8.7.c shc.README  test.ksh

Copying  l.sh.x.c match.x    shc     shc.c        test.bash

l.sh     Makefile match.x.c  shc.1   shc.html    test.csh

 

#执行加密生成的二进制文件

[root@bogonshc-3.8.7]# ./l.sh.x       

helloworld

 

#查看加密后的二进制文件,显示的结果如下

[root@bogonshc-3.8.7]# vi l.sh.x

^?ELF^A^A^A^@^@^@^@^@^@^@^@^@^B^@^C^@^A^@^@^@<87>^D^H4^@^@^@t^W^@^@^@^@^@^@4^@ ^@^H^@(^@^\^@^[^

@^F^@^@^@4^@^@^@4<80>^D^H4<80>^D^H^@^A^@^@^@^A^@^@^E^@^@^@^D^@^@^@^C^@^@^@4^A^@^@4<81>^D^H4<81>^

D^H^S^@^@^@^S^@^@^@^D^@^@^@^A^@^@^@^A^@^@^@^@^@^@^@^@<80>^D^H^@<80>^D^H ^R^@^@ ^R^@^@^E^@^@^@^@^

P^@^@^A^@^@^@ ^R^@^@ ¢^D^H ¢^D^H¸^C^@^@^D^E^@^@^F^@^@^@^@^P^@^@^B^@^@^@´^R^@^@´¢^D^H´¢^D^HÈ^@^@^

@È^@^@^@^F^@^@^@^D^@^@^@^D^@^@^@H^A^@^@H<81>^D^HH<81>^D^HD^@^@^@D^@^@^@^D^@^@^@^D^@^@^@PåtdÔ^Q^@

^@Ô<91>^D^HÔ<91>^D^H,^@^@^@,^@^@^@^D^@^@^@^D^@^@^@Qåtd^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^F

^@^@^@^D^@^@^@/lib/ld-linux.so.2^@^@^D^@^@^@^P^@^@^@^A^@^@^@GNU^@^@^@^@^@^B^@^@^@^F^@^@^@^R^@^@^

@^D^@^@^@^T^@^@^@^C^@^@^@GNU^@ɪÓÍEÏO*Iê^DH^D§òZ.±Ø^C^@^@^@^V^@^@^@^A^@^@^@^E^@^@^@p`^B"^V^@^@^

@^X^@^@^@^@^@^@^@¦Ý£kÅ<89>^E<90>¬KãÀ8ò<8b>^\Ź<9c>@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@i^@^@^@^@^@^@

^@^@^@^@^@^R^@^@^@)^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@F^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@¹^@^@^@^@^@^@^@^

@^@^@^@^R^@^@^@z^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@Þ^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@^A^@^@^@^@^@^@^@^@^

@^@^@^@^@^@1^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@<96>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@T^@^@^@^@^@^@^@^@^@

^@^@^R^@^@^@b^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@Â^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@³^@^@^@^@^@^@^@^@^@^@^

@^R^@^@^@<88>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@¤^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@[^@^@^@^@^@^@^@^@^@^@^

@^R^@^@^@<81>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@«^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@A^@^@^@^@^@^@^@^@^@^@^

@^R^@^@^@<8f>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@M^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@Ö^@^@^@<80>¦^D^H^D^@^@

^@!^@^Y^@Õ^@^@^@<80>¦^D^H^D^@^@^@!^@^Y^@^Z^@^@^@<9c><91>^D^H^D^@^@^@^Q^@^O^@<9d>^@^@^@`¦^D^H^D^@

^@^@^Q^@^Y^@Ô^@^@^@<80>¦^D^H^D^@^@^@^Q^@^Y^@^@__gmon_start__^@libc.so.6^@_IO_stdin_used^@sprintf

^@__isoc99_sscanf^@time^@getpid^@strdup^@calloc^@strlen^@memset^@__errno_location^@memcmp^@puten

v^@memcpy^@malloc^@getenv^@stderr^@execvp^@fprintf^@atoll^@strerror^@__libc_start_main^@__enviro

[root@bogonshc-3.8.7]# file l.sh.x

l.sh.x:ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked(uses shared libs), for GNU/Linux 2.6.18, stripped

[root@bogonshc-3.8.7]# ./l.sh.x  

helloworld

[root@bogonshc-3.8.7]# ls

CHANGES  l.sh.x   match      pru.sh  shc-3.8.7.c shc.README  test.ksh

Copying  l.sh.x.c match.x    shc     shc.c        test.bash

l.sh     Makefile match.x.c  shc.1   shc.html    test.csh

[root@bogonshc-3.8.7]# rm -rf l.sh.x*

[root@bogonshc-3.8.7]# ls

CHANGES  l.sh     match    match.x.c  shc   shc-3.8.7.c  shc.html    test.bash test.ksh

Copying  Makefile match.x  pru.sh     shc.1 shc.c        shc.README  test.csh

 

#重新加密,并为生成的二进制文件添加有效日期18/10/2006

[root@bogonshc-3.8.7]# ./shc -e 18/10/2006 -m " It’s too late to run this script" -r -v -T -f l.sh

shcshll=bash

shc[-i]=-c

shc[-x]=exec '%s' "$@"

shc[-l]=

shcopts=

shc:cc  l.sh.x.c -o l.sh.x

shc:strip l.sh.x

shc:chmod go-r l.sh.x

[root@bogonshc-3.8.7]# ls

CHANGES  l.sh.x   match      pru.sh  shc-3.8.7.c shc.README  test.ksh

Copying  l.sh.x.c match.x    shc     shc.c        test.bash

l.sh     Makefile match.x.c  shc.1   shc.html    test.csh

 

#执行二进制文件显示过期

[root@bogonshc-3.8.7]# ./l.sh.x

./l.sh.x:has expired!

 It’s too late to run this script

 

#执行l.sh脚本,正确执行,不受过期时间影响

[root@bogonshc-3.8.7]# ./l.sh

-bash:./l.sh: Permission denied

[root@bogonshc-3.8.7]# chmod 755 l.sh

[root@bogonshc-3.8.7]# ./l.sh       

helloworld


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值