Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Полезные программы (собственные) |

09.07.2008, 22:44
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Полезные программы (собственные)
Здесь постим свои небольшие реализации, (повторяю СВОИ!)
-----------
Интересные и действительно нужные проекты будут поощраться...
-----------
Также можете оставлять просьбы на реализацию той или иной проги. =)
Последний раз редактировалось De-visible; 03.12.2008 в 00:47..
|
|
|

10.07.2008, 02:21
|
|
Познающий
Регистрация: 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 запросов"
|
|
|

10.07.2008, 19:47
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
FastLauncher
прога добавляет ярлык в %systemDirectory% что позволяет запускать ее из коммандной строки, либо Win+R/Диспетчер задач -> Новая задача
http://slil.ru/25970580
Скомпилированна в Delphi7.
PHP код:
program FL;
uses
Windows, ShlObj, ActiveX, SysUtils;
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;
hWndOwner: HWND;
hInstance: HINST;
lpstrFilter: PAnsiChar;
lpstrCustomFilter: PAnsiChar;
nMaxCustFilter: DWORD;
nFilterIndex: DWORD;
lpstrFile: PAnsiChar;
nMaxFile: DWORD;
lpstrFileTitle: PAnsiChar;
nMaxFileTitle: DWORD;
lpstrInitialDir: PAnsiChar;
lpstrTitle: PAnsiChar;
Flags: DWORD;
nFileOffset: Word;
nFileExtension: Word;
lpstrDefExt: PAnsiChar;
lCustData: LPARAM;
lpfnHook: function(Wnd:HWND; Msg:UINT; wParam:WPARAM; lParam:LPARAM):UINT stdcall;
lpTemplateName: PAnsiChar;
end;
TOpenFilename = TOpenFilenameA;
function GetOpenFileName(var OpenFile: TOpenFilename): BOOL;
stdcall; external 'comdlg32.dll' name 'GetOpenFileNameA';
{$R dialog.res}
var
TheFile: string;
buf: array [0..MAXSIZE-1] of Char;
ofn: TOpenFileName;
procedure OleCheck(Result: HResult);
begin
if Result < 0 then Exit;
end;
function CreateComObject(const ClassID: TGUID): IUnknown;
begin
OleCheck(CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IUnknown, Result));
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(ofn) then TheFile:=ofn.lpstrFile;
end;
function GetSysDir: string;
var
buf: array [0..MAX_PATH] of Char;
begin
GetSystemDirectory(buf, MAX_PATH);
Result:=buf;
end;
function Install(_file: string): 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), 1, Length(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..
|
|
|

11.07.2008, 18:46
|
|
Познающий
Регистрация: 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..
|
|
|

03.12.2008, 00:48
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
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..
|
|
|

05.12.2008, 00:39
|
|
Участник форума
Регистрация: 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..
|
|
|
Отправка сообщения с авторизацией |

16.12.2008, 18:59
|
|
Познающий
Регистрация: 07.06.2008
Сообщений: 48
Провел на форуме: 247923
Репутация:
52
|
|
Отправка сообщения с авторизацией
Отправка 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..
Причина: уточнил детали
|
|
|

23.12.2008, 01:22
|
|
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме: 1777055
Репутация:
347
|
|
icmprange
Утилита предназначена для посылки ICMP-запросов диапазону IP-адресов.
mbrscan
Утилита читает структуры MBR жестких дисков локального компьютера.
исходные коды и исполняемые файлы в этой теме
Последний раз редактировалось bons; 23.12.2008 в 01:28..
|
|
|

23.12.2008, 12:32
|
|
Участник форума
Регистрация: 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 sender, EventArgs 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..
|
|
|

23.12.2008, 16:23
|
|
Познающий
Регистрация: 16.07.2008
Сообщений: 82
Провел на форуме: 424387
Репутация:
142
|
|
может будет кому нибудь интересно.
дабл клик по драйверу чтобы посмотреть адреса обработчиков irp и куда они смотрят.
download
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|