Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Полезные программы (собственные) (https://forum.antichat.xyz/showthread.php?t=76601)

De-visible 09.07.2008 22:44

Полезные программы (собственные)
 
Здесь постим свои небольшие реализации, (повторяю СВОИ!)
-----------

Интересные и действительно нужные проекты будут поощраться...
-----------
Также можете оставлять просьбы на реализацию той или иной проги. =)

SlyBit 10.07.2008 02:21

Аплоад файла по HTTP протоколу.

Данный исходный текст показывает как отослать файл на сервер по http протоколу методом POST. Имя файла передается в поле Request-URI, сам файл в Entity-Body. На сервере обрабатывает запрос и сохраняет файл простейший скрипт upload.php.

SendFileToServer.cpp:
Код:

// by SlyBit (c) 07.2008 /SendFileToServer.cpp/
 
#include "winsock2.h"
#include <windows.h>
 
#pragma comment(lib, "Ws2_32.lib")
#pragma comment(linker, "/ENTRY:Entry")
 
#define HOST_NAME "test.ru"
#define FILE_NAME "test_file.rar"
#define URL_NAME  "upload.php"
 
BOOL WINAPI SendDataToServer(PVOID pData, DWORD dwDataSize, WORD wPort, PCHAR pAddress)
{
    SOCKET      ConnectSocket;
    sockaddr_in ClientService;
    INT        nSendBytes = 0;
   
    if(INVALID_SOCKET == (ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))) {
        return 0;
    }
   
    ClientService.sin_family = AF_INET;
    ClientService.sin_port = htons(wPort);
    ClientService.sin_addr.s_addr = inet_addr(pAddress);
   
    if(SOCKET_ERROR == connect(ConnectSocket, (SOCKADDR*)&ClientService, sizeof(ClientService))) {
        closesocket(ConnectSocket);
        return 0;
    }
   
    if(SOCKET_ERROR == (nSendBytes = send(ConnectSocket, (PCHAR)pData, dwDataSize, 0))) {
        closesocket(ConnectSocket);
        return 0;
    }
   
    closesocket(ConnectSocket);
   
    return nSendBytes;
}
   
BOOL WINAPI GetIpByHostName(PCHAR pHostName, PCHAR pIp, DWORD dwIpSize)
{
    hostent *pHosten;
   
    if(!(pHosten = gethostbyname(pHostName))) {
        return 0;
    }
   
    if(lstrlen(inet_ntoa(*(in_addr*)*pHosten->h_addr_list)) > dwIpSize) {
        return 0;
    }
   
    lstrcpy(pIp, inet_ntoa(*(in_addr*)*pHosten->h_addr_list));
 
    return 1;
}
 
BOOL WINAPI SendFileToServer(PCHAR pFileName, PCHAR pAddress, PCHAR pUrl)
{
    PVOID  pFile;
    DWORD  dwFileSize, dwRetSize;
    CHAR    szIp[17];
    PCHAR  pSendData;
    HANDLE  hFile;
 
    if(!GetIpByHostName(pAddress, szIp, 17)) {
        return 0;
    }
 
    if(INVALID_HANDLE_VALUE == (hFile = CreateFile(pFileName, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0))) {
        return 0;
    }
    if(0xFFFFFFFF == (dwFileSize = GetFileSize(hFile, 0))) {
        CloseHandle(hFile);
        return 0;
    }
   
    if(!(pSendData = (PCHAR)VirtualAlloc(0, dwFileSize+300, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE))) {
        VirtualFree(pFile, 0, MEM_RELEASE);
        return 0;
    }
   
    wsprintf(pSendData, "POST /%s?file_name=%s HTTP/1.1\r\nHost: %s\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-length: %i\r\n\r\nupload_file=",
        pUrl, pFileName, pAddress, dwFileSize+strlen("upload_file="));
 
    if(!ReadFile(hFile, pSendData+strlen(pSendData), dwFileSize, &dwRetSize, 0)) {
        VirtualFree(pSendData, 0, MEM_RELEASE);
        CloseHandle(hFile);
        return 0;
    }
    CloseHandle(hFile);
 
    if(!SendDataToServer(pSendData, strlen(pSendData), 80, szIp)) {
        VirtualFree(pSendData, 0, MEM_RELEASE);
        return 0;
    }
 
    VirtualFree(pSendData, 0, MEM_RELEASE);
 
    return 1;
}
 
VOID WINAPI Entry()

    WSAData wsaData;
 
    if(NO_ERROR != WSAStartup(MAKEWORD(2,2), &wsaData)) {
        ExitProcess(0);
    }
   
    if(SendFileToServer(FILE_NAME, HOST_NAME, URL_NAME)) {
        MessageBox(0, "SendFileToServer Ok", 0, 0);
    } else {
        MessageBox(0, "SendFileToServer Error", 0, 0);
    }
   
    ExitProcess(0);
}

upload.php:
Код:

<?php Error_Reporting(E_ALL & ~E_NOTICE);
 
function SaveDataToFile($log_data, $file_name) 
{
    $file = basename($file_name);
    $filehandle = fopen($file, "wb");
    fputs($filehandle, $log_data);
    fclose($filehandle);
}
 
SaveDataToFile($_POST['upload_file'], $_GET['file_name']);
 
?>

Полезные ссылки:
Русский RFC по HTTP
Статья "Генерация HTTP запросов"

W!z@rD 10.07.2008 19:47

FastLauncher
прога добавляет ярлык в %systemDirectory% что позволяет запускать ее из коммандной строки, либо Win+R/Диспетчер задач -> Новая задача

http://slil.ru/25970580

Скомпилированна в Delphi7.

PHP код:

program FL;

uses
  Windows
ShlObjActiveXSysUtils;

const
  
About 'Coded by: W!z@rD Special build: www.antichat.ru';

  
MAXSIZE 260;
  
OFN_FILEMUSTEXIST = $00001000;
  
OFN_PATHMUSTEXIST = $00000800;
  
OFN_HIDEREADONLY  = $00000004;
  
OFN_LONGNAMES     = $00200000;

  
WM_COMMAND = $0111;
  
WM_DESTROY = $0002;
  
WM_CLOSE   = $0010;

type
TOpenFilenameA 
packed record
  lStructSize
DWORD;
  
hWndOwnerHWND;
  
hInstanceHINST;
  
lpstrFilterPAnsiChar;
  
lpstrCustomFilterPAnsiChar;
  
nMaxCustFilterDWORD;
  
nFilterIndexDWORD;
  
lpstrFilePAnsiChar;
  
nMaxFileDWORD;
  
lpstrFileTitlePAnsiChar;
  
nMaxFileTitleDWORD;
  
lpstrInitialDirPAnsiChar;
  
lpstrTitlePAnsiChar;
  
FlagsDWORD;
  
nFileOffsetWord;
  
nFileExtensionWord;
  
lpstrDefExtPAnsiChar;
  
lCustDataLPARAM;
  
lpfnHook: function(Wnd:HWNDMsg:UINTwParam:WPARAMlParam:LPARAM):UINT stdcall;
  
lpTemplateNamePAnsiChar;
end;
  
TOpenFilename TOpenFilenameA;

function 
GetOpenFileName(var OpenFileTOpenFilename): BOOL;
  
stdcallexternal 'comdlg32.dll' name 'GetOpenFileNameA';

{
$R dialog.res}

var
  
TheFilestring;
  
buf: array [0..MAXSIZE-1of Char;
  
ofnTOpenFileName;

procedure OleCheck(ResultHResult);
begin
  
if Result 0 then Exit;
end;

function 
CreateComObject(const ClassIDTGUID): IUnknown;
begin
  OleCheck
(CoCreateInstance(ClassIDnilCLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVERIUnknownResult));
end;

procedure OpenFileDlg;
begin
  ofn
.lStructSize:=SizeOf(TOpenFileName);
  
ofn.hWndOwner  :=0;
  
ofn.hInstance  :=HInstance;
  
ofn.lpstrFilter:=nil;
  
ofn.lpstrFile  :=buf;
  
ofn.nMaxFile   :=MAXSIZE;
  
ofn.Flags      :=OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_LONGNAMES or OFN_HIDEREADONLY;
  if 
GetOpenFileName(ofnthen TheFile:=ofn.lpstrFile;
end;

function 
GetSysDirstring;
var
  
buf: array [0..MAX_PATHof Char;
begin
  GetSystemDirectory
(bufMAX_PATH);
  
Result:=buf;
end;

function 
Install(_filestring): Boolean;
var
LnkName   string;
MyObject  IUnknown;
MyIcon    IShellLink;
MyPFile   IPersistFile;
WFileName WideString;
begin
  
try
    
CoInitialize(nil);
    
MyObject:=CreateComObject(CLSID_ShellLink);
    
MyIcon:=MyObject as IShellLink;
    
MyPFile:=MyObject as IPersistFile;
    
with MyIcon do
    
begin
      SetArguments
(PChar(''));
      
SetPath(PChar(_file));
      
SetWorkingDirectory(PChar(ExtractFilePath(_file)));
    
end;
    
LnkName:=Copy(ExtractFileName(_file), 1Length(ExtractFileName(_file)) - Length(ExtractFileExt(_file)));
    
WFileName:=GetSysDir '\' + LnkName + '.lnk';
    MyPFile.Save(PWChar(WFileName), False);
  except
    Result:=False;
    Exit;
  end;
  Result:=True;
end;

function DlgProc(hWin:HWND; uMsg:UINT; wp:WPARAM; lp:LPARAM): BOOL; stdcall;
begin
  Result:=False;
  case uMsg of
    WM_COMMAND:
    case LoWord(wp) of
      3: begin
        OpenFileDlg;
        SetWindowText(GetDlgItem(hWin, 2), PChar(TheFile));
      end;
      4: begin
        if not FileExists(TheFile) then
        MessageBox(hWin, '
File not exists!', 'FL', MB_ICONERROR or MB_APPLMODAL)
        else
        if Install(TheFile) then MessageBox(hWin, '
Done!', 'FL', MB_APPLMODAL);
        end;
      5: MessageBox(hWin, About, '
FL', MB_APPLMODAL);
    end;
    WM_DESTROY, WM_CLOSE: PostQuitMessage(0);
  end;
end;

begin
  DialogBox(hInstance, '
frmMain', 0, @DlgProc);
end. 


SlyBit 11.07.2008 18:46

Файл лоадер

Представляю вашему вниманию исходный текст простенького лоадера файлов. Толком не тестировал, багрепорт и замечания пожалуйста в ПМ.

DownloadFile.cpp:
Код:

// by SlyBit (c) 07.2008 /DownloadFile.cpp/
 
#include "winsock2.h"
#include <windows.h>
 
#pragma comment(lib, "Ws2_32.lib")
#pragma comment(linker, "/ENTRY:Main")
 
#define HOST_NAME  "wasm.ru"
#define URL_NAME    "/pub/21/files/lockfileswork/RawRead.rar"
#define FILE_NAME  "RawRead.rar"
#define HEADER_SIZE 400
 
// Возводим число x в положительную целочисленную степень
#define DEGREE(Val, Deg) if(!Deg) { Val = 1; } else for(int i1=2, i2=Val; i1<=Deg; i1++) { Val *= i2; }                   

// Переводим число Str, представленное в виде строки в числовой вид Int
#define STR_TO_INT(Str, Int) for(int l=0, s=10; l<strlen(Str); l++, s=10) { DEGREE(s, (strlen(Str)-1-l)); Int += ((BYTE)Str[l]-0x30)*s; }
 
PCHAR WINAPI HTTPSendReceiveData(PVOID pInData, DWORD dwInDataSize, PCHAR pIpAddress, PDWORD pOutSizeSize)
{
    SOCKET      ConnectSocket;
    sockaddr_in ClientService;
    INT        nReceiveBytes, i, j = 0, nCurr;
    CHAR        szHeader[HEADER_SIZE] = "\0", szVal[10] = "\0";
    PCHAR      pOutData = 0;
 
    if(INVALID_SOCKET == (ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))) {
        return 0;
    }
   
    ClientService.sin_family = AF_INET;
    ClientService.sin_port = htons(80);
    ClientService.sin_addr.s_addr = inet_addr(pIpAddress);
   
    if(SOCKET_ERROR == connect(ConnectSocket, (SOCKADDR*)&ClientService, sizeof(ClientService))) {
        closesocket(ConnectSocket);
        return 0;
    }
   
    if(SOCKET_ERROR == send(ConnectSocket, (PCHAR)pInData, dwInDataSize, 0)) {
        closesocket(ConnectSocket);
        return 0;
    }
   
    // Получаем заголовок ответа
    if(SOCKET_ERROR == recv(ConnectSocket, szHeader, HEADER_SIZE, 0)) {
        closesocket(ConnectSocket);
        return 0;
    }
 
    for(i=0; i<HEADER_SIZE; i++)
    {
        // Получаем размер данных
        if(!memcmp("Content-Length: ", szHeader+i, strlen("Content-Length: ")-1))
        {
            do {
                szVal[j] = szHeader[i+strlen("Content-Length: ")+j]; j++;
            } while(szHeader[i+strlen("Content-Length: ")+j] != '\r');
           
            STR_TO_INT(szVal, *pOutSizeSize);
        }
        // Получаем указатель на начало файла в ответе
        if(!memcmp("\r\n\r\n", szHeader+i, strlen("\r\n\r\n")-1))
        {
            i += strlen("\r\n\r\n");
            break;
        }
    }
   
    if((HEADER_SIZE-1 == i) || !*pOutSizeSize) {
        return 0;
    }
 
    if(!(pOutData = (PCHAR)VirtualAlloc(0, *pOutSizeSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE))) {
        return 0;
    }
 
    if(HEADER_SIZE-i >= *pOutSizeSize) {
        memcpy(pOutData, szHeader+i, *pOutSizeSize);
    } else {
        nCurr = HEADER_SIZE-i;
        memcpy(pOutData, szHeader+i, nCurr);
       
        // Получаем оставшиеся данные   
        while(nReceiveBytes = recv(ConnectSocket, pOutData+nCurr, *pOutSizeSize-nCurr, 0))  {
            if(nReceiveBytes == SOCKET_ERROR) {
                closesocket(ConnectSocket);
                return 0;
            }
            nCurr += nReceiveBytes;
        }
    }
 
    closesocket(ConnectSocket);
   
    return pOutData;
}
   
BOOL WINAPI GetIpByHostName(PCHAR pHostName, PCHAR pIp, DWORD dwIpSize)
{
    hostent *pHosten;
   
    if(!(pHosten = gethostbyname(pHostName))) {
        return 0;
    }
   
    if(lstrlen(inet_ntoa(*(in_addr*)*pHosten->h_addr_list)) > dwIpSize) {
        return 0;
    }
   
    lstrcpy(pIp, inet_ntoa(*(in_addr*)*pHosten->h_addr_list));
 
    return 1;
}
 
BOOL WINAPI DownloadFile(PCHAR pFileName, PCHAR pHostName, PCHAR pUrl)
{
    CHAR    szIp[17], szSendData[300];
    PCHAR  pFile = 0;
    HANDLE  hFile;
    DWORD  dwFileSize = 0, dwRetSize;
   
    if(!GetIpByHostName(pHostName, szIp, 17)) {
        return 0;
    }
   
    wsprintf(szSendData, "GET %s HTTP/1.1\r\nHost: %s\r\n\r\n", pUrl, pHostName);
 
    if(!(pFile = HTTPSendReceiveData(szSendData, strlen(szSendData), szIp, &dwFileSize))) {
        return 0;
    }
   
    if(INVALID_HANDLE_VALUE == (hFile = CreateFile(pFileName, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0))) {
        VirtualFree(pFile, 0, MEM_RELEASE);
        return 0;
    }
   
    if(!WriteFile(hFile, pFile, dwFileSize, &dwRetSize, 0)) {
        VirtualFree(pFile, 0, MEM_RELEASE);
        CloseHandle(hFile);
        return 0;
    }
   
    VirtualFree(pFile, 0, MEM_RELEASE);
    CloseHandle(hFile);
   
    return 1;
}
   
VOID WINAPI Main()

    WSAData wsaData;
 
    if(NO_ERROR != WSAStartup(MAKEWORD(2,2), &wsaData)) {
        ExitProcess(0);
    }
 
    if(DownloadFile(FILE_NAME, HOST_NAME, URL_NAME)) {
        MessageBox(0, "DownloadFile Ok", 0, 0);
    } else {
        MessageBox(0, "DownloadFile Error", 0, 0);
    }
 
    ExitProcess(0);
}


De-visible 03.12.2008 00:48

POST Encode for DELPHI coding

[Зачем?]

За пару минут накодил эту программулину, зачем?
Да затем, что она облегчает вставку запросов в код программы, кто занимался сетевым программированием на DELPHI (WinSock) думаю поймут, что это неудобно и иной раз просто бесит делать эту работу в ручную:)
Хотя кому как), опубликую может кому понадобиться...


[Скрин]

http://img444.imageshack.us/img444/151/28367617by7.jpg


[Результаты работы]


Код:

GET /index.php? HTTP/1.1
Host: forum.antichat.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729) WebMoney Advisor
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

Encode:

Код:

'GET /index.php? HTTP/1.1'+#13#10+
'Host: forum.antichat.ru'+#13#10+
'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729) WebMoney Advisor'+#13#10+
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'+#13#10+
'Accept-Language: ru,en-us;q=0.7,en;q=0.3'+#13#10+
'Accept-Encoding: gzip,deflate'+#13#10+
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'+#13#10+
'Keep-Alive: 300'+#13#10+
'Connection: keep-alive'+#13#10

[Скачать]
http://rapidshare.com/files/169010605/PE_by_De_-V.rar.html

[Warn:]
Заядлых критиков прошу обойти этот пост, так как создавалось это все только для упрощения рутиной работы:).

WAR!9G 05.12.2008 00:39

Мass Wand

Программка из этой же серии - для упрощения рутиной работы. По долгу службы часто приходится вспоминать пароли от Оперы, читай заниматся дешифрованием wand-файлов c расширением .dat :D
И всё ничего, если файл один-два, а если сотня? А ещё лучше если надо осуществить парсинг информации всех дешифрованных файлов. Тут то на помощь и приходит Mass Wand.

1. Просто кладёшь все файлы от Оперы в папку Dat
2. Запускаеешь саму программу Mass Wand
3. Ждёшь пока висят часы, ибо графический интерфейс в данном случае лишнее.
4. На выходе получаешь дешифрованные Dat файлы в папке Notes в текстовом формате.
5. В корневой папке будет файл Completed.txt - это сборная солянка из того что удалось дешифровать.

Алгоритм дешифрования реализован на C - код плавает в сети. Остальное моё - Delphi.

Код:

SearchRec: TSearchRec;
dat_list, bat_content, temp_notes: TStringList;
i: Integer;
username: string;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm:=False;
temp_notes:=TStringList.Create;
dat_list:=TStringList.Create;
bat_content:=TStringList.Create;

If FindFirst('dat\*.dat', faAnyFile, SearchRec)=0 then
repeat
dat_list.Add(SearchRec.Name);
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);

for i:=0 to dat_list.Count-1 do
begin
bat_content.Clear;
username:=dat_list.Strings[i];
username:=AnsiReplaceStr(username,'.dat','');
bat_content.Add('unwand dat/'+username+'.dat >notes/'+username+'.txt');
bat_content.SaveToFile(username+'.bat');
ShellExecute(Handle, 'open', PChar(username+'.bat'), nil, nil, SW_HIDE);
Sleep(100);
DeleteFile(username+'.bat');
end;

Application.Terminate;
dat_list.Clear;
bat_content.Clear;
If FindFirst('notes\*.txt', faAnyFile, SearchRec)=0 then
repeat
dat_list.Add(SearchRec.Name);
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);

for i:=0 to dat_list.Count-1 do
begin
temp_notes.LoadFromFile('notes\'+dat_list.Strings[i]);
bat_content.AddStrings(temp_notes);
bat_content.SaveToFile('Complete.txt');
end;
end;

end.


RaX 16.12.2008 18:59

Отправка сообщения с авторизацией
 
Отправка e-mail с авторизацией


Т.к часто возникает такая проблема, вот код для Delphi в консоли. Программа читает текст из файла message.txt и отправляет его на ide4@rambler.ru с ящика rax_08@mail.ru (укажите свой).
Код:

{(C)2008 by RaX}
program mail;

{$APPTYPE CONSOLE}

uses
  SysUtils, WinSock, Windows;

function lookupname(str: string): TInAddr;
var
  _hostEnt:PHostEnt;
  _inAddr:TInAddr;
begin
  if (lowerCase(str)[1] IN ['a'..'z']) OR
      (lowerCase(str)[2] IN ['a'..'z']) then
  begin
    _hostEnt := getHostByName(pchar(str));
    FillChar(_inAddr, sizeOf(_inAddr), 0);
    if _hostEnt<>nil then
    begin
      with _hostEnt^, _inAddr do
      begin
        s_un_b.s_b1 := h_addr^[0];
        s_un_b.s_b2 := h_addr^[1];
        s_un_b.s_b3 := h_addr^[2];
        s_un_b.s_b4 := h_addr^[3];
      end;
    end;
  end
  else
    _inAddr.s_addr := inet_addr(pchar(str));

 Result:= _inAddr;
end;

function GetLocalHost: string;
var
 sh : array [0..255] of char;
begin
 if gethostname(sh, 255)=0 then
  Result := StrPas(sh)
 else
  Result := '';
end;

procedure SendStr(s:TSocket; str:String);
var
 sRecvBuff : array [0..255] of char;
 TempStr : AnsiString;
 i:integer;
begin

 TempStr:=str+#13+#10;
 CopyMemory(@sRecvBuff, PChar(TempStr), Length(TempStr));
 i:=send(s, sRecvBuff, Length(TempStr), 0);

 writeln('>'+str);
end;

procedure GetStr(s:TSocket);
var
  TempStr : AnsiString;
  sRecvBuff : array [0..255] of char;
begin
 recv(s, sRecvBuff, SizeOf(sRecvBuff), 0);
 TempStr:=sRecvBuff;
 writeln('<'+Copy(TempStr, 1, Pos(#13, TempStr)));
end;

var
 wData : WSADATA;
 sServerListen, suser: TSOCKET;
 server_addr, user_addr : sockaddr_in;
 sRecvBuff : array [0..255] of char;
 TempStr:AnsiString;
 i, iRet:Integer;
begin

 // Загрузка WinSock
 if WSAStartup(MAKEWORD(1,1), wData) <> 0 then
        begin
  writeln('WinSock error!');
  readln;
  exit;
        end;

 // Создание сокета
  suser := socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
 if suser = INVALID_SOCKET then
  begin
  writeln('Socket error!');
  readln;
  exit;
  end;

 // Запонение структуры адреса POP3
 user_addr.sin_addr.s_addr := htonl(INADDR_ANY);
 user_addr.sin_family := AF_INET;
 user_addr.sin_port := htons(110);
 user_addr.sin_addr := LookupName('pop.mail.ru');

 if (connect(suser, user_addr, sizeof(user_addr)) = SOCKET_ERROR) then
  begin
  writeln('Connection error!');
  readln;
  exit;
  end;

 getstr(suser);
 sendstr(suser,'USER rax_08');
 getstr(suser);
 sendstr(suser,'PASS 1234546');
 getstr(suser);

 sServerListen := socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
 if sServerListen = INVALID_SOCKET then
  begin
  writeln('Socket error!');
  readln;
  exit;
  end;

 // Запонение структуры адреса SMTP
 server_addr.sin_addr.s_addr := htonl(INADDR_ANY);
 server_addr.sin_family := AF_INET;
 server_addr.sin_port := htons(587);
 server_addr.sin_addr := LookupName('smtp.mail.ru');

 if (connect(sServerListen, server_addr, sizeof(server_addr)) = SOCKET_ERROR) then
  begin
  writeln('Connection error!');
  readln;
  exit;
  end;

  sleep(100);

 getstr(sServerListen);
 sleep(100);
 // Приветствие сервера

  sendstr(sServerListen,'HELO '+GetLocalHost);

  getstr(sServerListen);

  sendstr(sServerListen,'MAIL FROM: rax_08@mail.ru');

 // От
 getstr(sServerListen);
 // Кому
 sendstr(sServerListen,'RCPT TO:<ide4@rambler.ru>');
 getstr(sServerListen);
 // Начало отправки данных сообщения
 sendstr(sServerListen,'DATA');
 sleep(1000);
 getstr(sServerListen);


 // От
 sendstr(sServerListen,'From: rax_08@mail.ru');
 // Кому
 sendstr(sServerListen,'To:<ide4@rambler.ru>');
 // Кодировка, в данном случае стоит отправка с HTML
 sendstr(sServerListen,'Mime-Version: 1.0'+#13+#10+'Content-Type: text/html; charset="us-ascii');

//Читаем сообщение из файла
 assign(input,'message.txt');
 reset(input);
 while not eof do
  begin
  // Сообщение

  readln(TempStr);
  while TempStr<>'' do
    begin
    CopyMemory(@sRecvBuff, PChar(TempStr), Length(TempStr));
    iRet:=send(sServerListen, sRecvBuff, Length(TempStr), 0);

    if iRet=SOCKET_ERROR then
      break;

    writeln('>'+Copy(TempStr, 1, Pos(#13, TempStr)));

    Delete(TempStr, 1, iRet);
    end;
  end;

  close(input);

 // Конец сообщения
 sendstr(sServerListen,#13+#10+'.');
 getstr(sServerListen);

 // Выход
 sendstr(sServerListen,'QUIT');

 sendstr(suser,'QUIT');

  getstr(suser);

 CloseSocket(suser);

 CloseSocket(sServerListen);


end.


bons 23.12.2008 01:22

icmprange
Утилита предназначена для посылки ICMP-запросов диапазону IP-адресов.

mbrscan
Утилита читает структуры MBR жестких дисков локального компьютера.

исходные коды и исполняемые файлы в этой теме

jawbreaker 23.12.2008 12:32

DNS Lookup
 
Программка для поиска имён в DNS:

http://pic.ipicture.ru/uploads/081223/XAUFaQWa36.jpg

С# код:

PHP код:


using System
;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;

namespace 
DNS_LOOKUP
{
    public 
partial class Form1 Form
    
{
       public 
Form1()
        {
            
InitializeComponent();
            
label1.Text "Host name:";
        }
        private 
void btnResolve_Click(object senderEventArgs e)
        {
                try
                {
                    
IPHostEntry iphost Dns.Resolve(txtBoxInput.Text);
                    foreach (
IPAddress ip in iphost.AddressList)
                    {
                        
string ipaddress ip.AddressFamily.ToString();
                        
listBoxIPs.Items.Add(ipaddress);
                        
listBoxIPs.Items.Add(" " ip.ToString());
                    }
                    
txtBoxHostName.Text iphost.HostName;
                }
                catch (
System.Exception ex)
                {
                    
MessageBox.Show(ex.Message);
                }
        }
    }


Скачать exe'шник
Скачать исходники

_antony 23.12.2008 16:23

может будет кому нибудь интересно.
дабл клик по драйверу чтобы посмотреть адреса обработчиков irp и куда они смотрят.
http://sav1or.rootkits.ru/programs/irp_h/main.png
http://sav1or.rootkits.ru/programs/irp_h/functions.png
download


Время: 02:27