在c尀c++程序里怎么执行shell脚本命令?

2024-11-11 15:26:37
推荐回答(2个)
回答1:

在C/C++源码中执行shell命令,最基本的就是 system() C库函数,其次可以使用系统提供的api函数,比如windows上的createprocess shellexecuteex等函数,在linux上可以使用exec()等等.

下面是我在windows上的弄的一个测试版本,使用了线程,我感觉用nc来测试,不如直接 netstat -an | findstr /I "udp" | findstr "22" ,因为22端口太其特了,很容易抓出来. 另外nc判断端口常规的作法就是 nc -vv ip port 看提示信息就好了.

#include
#include
#include
#include
#include
UINT __stdcall ThreadFunc(LPVOID lpParam) {
//将hacker字符串做为nc提交的数据
int ret = system("echo hacker | nc.exe -u 127.1 22");
//ret==0说明没有开启22端口
if (ret == 0 ) printf("nc: Write error: Connection refused.\n");
return 0;
}
int main()
{
HANDLE hThread = (HANDLE)_beginthreadex(0, 0, ThreadFunc, 0, 0, 0);
//等待3秒钟,说明22端口可用
WaitForSingleObject(hThread, 3000);
//结束测试线程
TerminateThread(hThread, 0);
//重新开启NC连接22端口
system("nc.exe -vv -u 127.1 22");
return 0;
}

欢迎光临0x30贴吧,一个高质量的计算机技术交流平台.

回答2:

执行shell命令的C / C + +源代码,基本系统()API函数的C库函数,第二,我们可以使用该系统,如Windows CreateProcess的ShellExecuteEx函数,可以用来在Linux上执行( ),依此类推。

后,在窗户上,我得到一个测试版本,使用线程测试我的感觉NC,不如直接netstat-an的| FINDSTR / I“UDP”FINDSTR“22”;因为22端口太特殊了,很容易中招了。另一个判断端口的惯常做法NC NC-VV IP端口的样子消息。

#包括
#包括
包括
#包括
包括
UINT __ stdcall调用约定的ThreadFunc(LPVOID lpParam){
/ /提交的数据被黑客字符串为:nc
诠释RET =系统(回声黑客nc.exe-U 127.1 22“);
/ / RET == 0指令打开22端口
(RET == 0)printf(”请NC:写错误:连接被拒绝。\ n“);
返回0;
}
廉政的main()
{
的HANDLE初的=(HANDLE)_beginthreadex(0,0,的ThreadFunc,0,0,0);
/ /等待3秒,说明22端口
WaitForSingleObject的(hThread 3000);
/ /结束测试线程 TerminateThread(初的,0);
/ /重新打开NC连接到22端口
系统(nc.exe 127.1-VV-U,22);
返回0;
} />
欢迎0X30糊状,高品质的电脑技术交流平台。