文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>自动生成二进制系统指令<解决脚本加密的问题>

自动生成二进制系统指令<解决脚本加密的问题>

时间:2010-11-17  来源:mesopodamia

如果在某些脚本中,遇到过需要输入密码的情况,如何能保证密码安全。
网上普遍的做法就是把脚本转换成二进制的编码,最为推荐的工具就是shc软件,现在应该是最新版的是3.8.6
我这里在介绍一种办法,将你完成的脚本直接制作成系统自带指令,当然也是二进制的,可以直接调用。
  1.准备好程序 main.c 

   #include <stdio.h> 
   int main() 
  { 
      print("hello,world!"); 
      return 0; 
   } 

2.准备好脚本 autogen.sh 

    #!/bin/sh 
    aclocal 
    autoheader 
    automake --add-missing 
    autoconf 

3.运行autoscan 生成configure.scan,中间或许会报错,但是没有关系,只要生成文件即可。

4.mv configure.scan configure.ac 

5.打开configure.ac 中修改:
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)  改成:
AC_INIT(hello, 1.0.1, [email protected]
并添加: AM_INIT_AUTOMAKE 添加到AM_CONFIG_HEADER([config.h])下一行 AC_CONFIG_FILES([Makefile]) 添加到倒数第二行
6.准备好Makefile.am 

  AUTOMAKE_OPTIONS = foreign 
  bin_PROGRAMS = hello
  hello_SOURCES = main.c 
  #noinst_HEADERS =

7.运行autogen.sh,自动生成makefile。
8.在同目录中,直接运行./configure && make && make install   直接生成系统指令,一般生成指令保存在/user/local/bin文件中。
以上即可完成脚本转换成二进制指令的过程。
不过可惜的是,经过我测试,如果在使用二进制指令的同时,如果运行时间过长,还是能在系统进程中查看到此指令的具体内容。
ps -axf|grep hello
还是仍然可以显示转换前脚本的内容。不管你是用的shc转码还是如何处理。 原因可能是转换的C脚本本身还是反编译回到shell脚本来执行,只是在脚本查看中不能明文显示,但是在执行过程中仍然按照从C转换到Bash,然后Bash实现功能的流程来的。
可能是因为我的C脚本是由bash直接转过来,不是直接用C写的。如果有高手直接用C写,然后转换成二进制,应该能避免这样的问题发生。
看样子如果想真正的保证脚本的安全,直接使用shc的办法还是不够的。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载