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

Полезные программы (собственные)
  #1  
Старый 09.07.2008, 22:44
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
Thumbs up Полезные программы (собственные)

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

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

Последний раз редактировалось De-visible; 03.12.2008 в 00:47..
 
Ответить с цитированием

  #2  
Старый 10.07.2008, 02:21
Аватар для SlyBit
SlyBit
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме:
390892

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

Аплоад файла по 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 запросов"
 
Ответить с цитированием

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

Репутация: 836


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

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

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

  #4  
Старый 11.07.2008, 18:46
Аватар для SlyBit
SlyBit
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме:
390892

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

Файл лоадер

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

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);
}

Последний раз редактировалось SlyBit; 11.07.2008 в 18:49..
 
Ответить с цитированием

  #5  
Старый 03.12.2008, 00:48
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

POST Encode for DELPHI coding

[Зачем?]

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


[Скрин]




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


Код:
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:]
Заядлых критиков прошу обойти этот пост, так как создавалось это все только для упрощения рутиной работы.

Последний раз редактировалось De-visible; 03.12.2008 в 00:51..
 
Ответить с цитированием

  #6  
Старый 05.12.2008, 00:39
Аватар для WAR!9G
WAR!9G
Участник форума
Регистрация: 24.06.2007
Сообщений: 299
Провел на форуме:
467372

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

Мass Wand

Программка из этой же серии - для упрощения рутиной работы. По долгу службы часто приходится вспоминать пароли от Оперы, читай заниматся дешифрованием wand-файлов c расширением .dat
И всё ничего, если файл один-два, а если сотня? А ещё лучше если надо осуществить парсинг информации всех дешифрованных файлов. Тут то на помощь и приходит 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.

Последний раз редактировалось WAR!9G; 05.12.2008 в 00:46..
 
Ответить с цитированием

Отправка сообщения с авторизацией
  #7  
Старый 16.12.2008, 18:59
Аватар для RaX
RaX
Познающий
Регистрация: 07.06.2008
Сообщений: 48
Провел на форуме:
247923

Репутация: 52
Отправить сообщение для RaX с помощью ICQ
По умолчанию Отправка сообщения с авторизацией

Отправка 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.

Последний раз редактировалось RaX; 18.01.2010 в 18:47.. Причина: уточнил детали
 
Ответить с цитированием

  #8  
Старый 23.12.2008, 01:22
Аватар для bons
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

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

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

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

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

Последний раз редактировалось bons; 23.12.2008 в 01:28..
 
Ответить с цитированием

DNS Lookup
  #9  
Старый 23.12.2008, 12:32
Аватар для jawbreaker
jawbreaker
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
Провел на форуме:
1027635

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

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



С# код:

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'шник
Скачать исходники

Последний раз редактировалось jawbreaker; 23.12.2008 в 12:42..
 
Ответить с цитированием

  #10  
Старый 23.12.2008, 16:23
Аватар для _antony
_antony
Познающий
Регистрация: 16.07.2008
Сообщений: 82
Провел на форуме:
424387

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

может будет кому нибудь интересно.
дабл клик по драйверу чтобы посмотреть адреса обработчиков irp и куда они смотрят.


download
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хакер и закон! SladerNon Болталка 17 12.11.2009 09:42
Обзор бесплатных Cms em00s7 PHP, PERL, MySQL, JavaScript 16 03.07.2009 13:13
О законе. _-[A.M.D]HiM@S-_ Статьи 28 01.11.2007 12:25
Программы для работы с железом. Часть I – настройка видеокарт _GaLs_ Аппаратное обеспечение 2 20.12.2006 01:18
Программы для работы с железом. Часть 2 – материнские платы _GaLs_ Аппаратное обеспечение 0 19.11.2006 12:57



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


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




ANTICHAT.XYZ