Linux 将Shell脚本转换为C

2022-12-28 14:44:41 浏览数 (1)

默认的shell脚本是不能够加密的,放出来的都是源代码,如果需要对代码进行加密操作,那么可以使用如下工具试试。

bash 转换为C代码,并编译为可执行文件

代码语言:javascript复制
[root@localhost ~]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
[root@localhost ~]# tar xvfz shc-3.8.9.tgz
[root@localhost ~]# cd shc-3.8.9

[root@localhost shc-3.8.9]# gcc -c shc.c
[root@localhost shc-3.8.9]# gcc -o shc shc.o
[root@localhost shc-3.8.9]# cp -a shc /bin/

[root@localhost ~]# shc -r -T -f wang.sh
[root@localhost ~]# gcc -c wang.sh.x.c
[root@localhost ~]# gcc -o wang wang.sh.x.o

将python代码转换为C代码

代码语言:javascript复制
[root@localhost ~]# yum install -y epel-release
[root@localhost ~]# yum install -y python-pip
[root@localhost ~]# yum install -y python-dev*
[root@localhost ~]# pip install cython

[root@localhost ~]# vim lyshark.py

[root@localhost ~]# cython lyshark.py --embed
[root@localhost ~]# gcc `python-config --cflags` `python-config --ldflags` lyshark.c -o lyshark

C语言调用shell命令,并返回结果

代码语言:javascript复制
#include <stdio.h>

int main()
{
        FILE * fp;
        char buffer[1024];
        fp=popen("free -h |grep 'Mem:' |awk '{print $2}'","r");
        fgets(buffer,sizeof(buffer),fp);
        printf("%s",buffer);
        pclose(fp);

        return 0;
}
代码语言:javascript复制
#include "stdafx.h"
#include <Windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
	char   psBuffer[128];

	FILE   *pPipe;

	char * wang;

	pPipe = _popen("dir", "rt");
	fgets(psBuffer, 128, pPipe);

	printf("%s",psBuffer);

	feof(pPipe);

	system("pause");

	return 0;
}

0 人点赞