ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

10.02.2010, 06:20
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
Дело было вечером делать было нечего =)
решил написать Грабер для USB флешек
(Вспомнилась статья из какого то номера Хакера) вот что получилось.
Возможности
1. Возможность автозагрузки программы
2. Работать скрыто ( скрывает иконку из трея и ни о чем не предупреждает)
3. Типы файлов задаются по маске *.exe к примеру
4. Можно указать пусть куда копировать файлы
5. Все файлы разделяются по папкам для каждой флешки
6. Возможно сохранять структуру папко как на саомй флешку
7. построение полного списка файлов
есть пару недочетов
1. длина 1 го расширения не более 6ти символов общая длина под маски равна 255 символов.
2. пусть до папки назначения должен быт обязательно указан и заканчиваться " \ "
вот ссыль на сорци
http://depositfiles.com/files/6twdaaw4h
http://slil.ru/28543554
http://rapidshare.com/files/340750659/FlashGraber.rar.html
пас antichat.ru
P.S. жду справедливой критики по Коду и по самой идеи
не сочтите за плагиат =) похоже идея родилась с Gar|k параллельно
https://forum.antichat.ru/thread173437.html создавал тему с ним ранее
|
|
|
делим фал на части и качаем |

13.02.2010, 14:06
|
|
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме: 500264
Репутация:
69
|
|
делим фал на части и качаем
Код:
unit DownloadTh;
interface
uses
Windows, Classes, SysUtils, idHTTP, IdComponent, IniFiles, ExtCtrls;
const
HEADER_RANGE = 'Range: bytes=';
HEADER_USERAGENT = 'Downloader/1.0 (Windows NT; Vadim; Redfern;)';
{ Сюда идет запись файла }
var
FStream : TFileStream;
{ События }
type
TOnAddSegmentEvent = procedure(StartPos, MaxPos : Int64) of object;
TOnSetPositionEvent = procedure(Index: Integer; Position: Int64) of object;
{ Основной класс(поток) }
type
TDownload = class(TThread)
protected
FHTTP : TidHTTP;
FRangeStart : string;
FRangeEnd : string;
FURL : string;
FFileName : string;
FTotalCount : Int64;
FContentLen : Int64;
private
{ Properties }
property URL : string read FURL
write FURL;
property FileName : string read FFileName
write FFileName;
property RangeStart : string read FRangeStart
write FRangeStart;
property RangeEnd : string read FRangeEnd
write FRangeEnd;
property TotalCount : Int64 read FTotalCount;
property ContentLength : Int64 read FContentLen;
{ Procedures }
procedure Execute; override;
procedure OnWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
procedure OnWorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer);
procedure Disconnect;
end;
{ Внешний класс(объект) для загрузки файла }
type
TMultiHTTPDownloader = class(TComponent)
protected
FDownload : array of TDownload;
FPartCount : Integer;
FFileName : string;
FStateFile : string;
FURL : string;
FOnAddSegmentEvent : TOnAddSegmentEvent;
FOnSetPositionEvent : TOnSetPositionEvent;
FTimer : TTimer;
FTotalCount : Int64;
FContentLen : Int64;
private
procedure TriggerAddSegment(Min, Max: Int64);
procedure TriggerSetPosition(Index: Integer; Position: Int64);
procedure OnTimer(Sender: TObject);
public
constructor Create(AOwner: TComponent);
procedure Start;
procedure Abort;
procedure Pause;
procedure Resume;
property TotalCount : Int64 read FTotalCount;
property ContentLen : Int64 read FContentLen;
published
property PartCount : Integer read FPartCount
write FPartCount;
property FileName : string read FFileName
write FFileName;
property StateFile : string read FStateFile
write FStateFile;
property URL : string read FURL
write FURL;
property OnAddSegment : TOnAddSegmentEvent read FOnAddSegmentEvent
write FOnAddSegmentEvent;
property OnSetPosition: TOnSetPositionEvent read FOnSetPositionEvent
write FOnSetPositionEvent;
end;
procedure Register;
implementation
/////////////////////////////TDownload/////////////////////////////
{ Выполнение загрузки }
procedure TDownload.Execute;
begin
// Создаем объект "FHTTP"
FHTTP := TidHTTP.Create(nil);
// Присваеваем заголовки
FHTTP.Request.CustomHeaders.Add(HEADER_RANGE + FRangeStart + '-' + FRangeEnd); // Custom
FHTTP.Request.UserAgent := HEADER_USERAGENT;
// Присвоение процедур
FHTTP.OnWork := OnWork;
FHTTP.OnWorkBegin := OnWorkBegin;
// Запуск
FHTTP.Get(FURL, FStream);
// Очистка памяти по завершению
FHTTP.Free;
end;
{ Щитаем колличество скачанных байт }
procedure TDownload.OnWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
begin
FTotalCount := AWorkCount;
end;
{ Щитаем общее колличество байт }
procedure TDownload.OnWorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer);
begin
FContentLen := AWorkCountMax;
end;
{ Отключем }
procedure TDownload.Disconnect;
begin
FHTTP.Disconnect;
end;
//-----------------------------------------------------------------------------|
/////////////////////////////TMultiHTTPDownloader//////////////////////////////|
//-----------------------------------------------------------------------------|
// Создаем нужное вместе с объектом "TMultiHTTPDownloader"
constructor TMultiHTTPDownloader.Create(AOwner: TComponent);
begin
Inherited Create(AOwner);
FTimer := TTimer.Create(nil);
FTimer.OnTimer := OnTimer;
FTimer.Enabled := False;
FTimer.Interval := 1000;
end;
// Обрабатываем нужные события в таймере
procedure TMultiHTTPDownloader.OnTimer(Sender: TObject);
var
I : Integer;
begin
FContentLen := 0;
FTotalCount := 0;
For I := 0 To FPartCount -1 Do
begin
Inc(FTotalCount, FDownload[i].TotalCount);
Inc(FContentLen, FDownload[i].ContentLength);
TriggerSetPosition(I, FDownload[i].TotalCount);
end;
If FTotalCount = FContentLen Then
begin
FTimer.Enabled := False;
end;
end;
// Добавить сегмент в индикатор
procedure TMultiHTTPDownloader.TriggerAddSegment(Min, Max: Int64);
begin
If Assigned(FOnAddSegmentEvent) Then
FOnAddSegmentEvent(Min, Max);
end;
// Установка позиции сегментов
procedure TMultiHTTPDownloader.TriggerSetPosition(Index: Integer; Position: Int64);
begin
If Assigned(FOnSetPositionEvent) Then
FOnSetPositionEvent(Index, Position);
end;
// Заустить закачку
procedure TMultiHTTPDownloader.Start;
var
Chunk, Offset,
ContentLength : Int64;
HTTP : TidHTTP;
I : Integer;
begin
{ Проверка на назначенный статичный файл }
If FStateFile = '' Then
begin
Raise Exception.Create('Имя статичного файла не определено');
Exit;
end;
{ Проверка на введенный URL-аддрес }
If FURL = '' Then
begin
Raise Exception.Create('поле URL не должено остоваться пустым');
Exit;
end;
{ Прове }
HTTP := TidHTTP.Create(nil);
HTTP.Head(FURL);
ContentLength := HTTP.Response.ContentLength;
HTTP.Free;
FStream := TFileStream.Create(FFileName, fmCreate);
Chunk := ContentLength div FPartCount;
Offset := 0;
FTimer := TTimer.Create(nil);
FTimer.OnTimer := OnTimer;
FTimer.Interval := 1000;
FTimer.Enabled := True;
For I := 0 To FPartCount -1 Do
begin
SetLength(FDownload, I +1);
FDownload[i] := TDownload.Create(True);
FDownload[i].RangeStart := IntToStr(Offset);
FDownload[i].RangeEnd := IntToStr(Offset + Chunk);
FDownload[i].FreeOnTerminate := True;
FDownload[i].FileName := FFileName;
FDownload[i].URL := FURL;
TriggerAddSegment(Offset, Offset + Chunk);
Offset := Offset + Chunk +1;
end;
For I := 0 To FPartCount -1 Do FDownload[i].Resume;
end;
// Остановка
procedure TMultiHTTPDownloader.Abort;
var
I : Integer;
begin
For I := 0 To FPartCount -1 Do
begin
FDOwnload[i].Disconnect;
FDownload[i].Free;
end;
SetLength(FDownload, 0);
FTimer.Enabled := False;
end;
// Пауза
procedure TMultiHTTPDownloader.Pause;
var
I : Integer;
iFile : TIniFile;
begin
iFile := TIniFile.Create(FStateFile);
For I := 0 To FPartCount -1 do
begin
iFile.WriteString('Section ' + IntToStr(i), 'Position', IntToStr(FDownload[i].TotalCount));
iFile.WriteString('Section ' + IntToStr(i), 'Length', IntToStr(FDownload[i].ContentLength));
end;
For I := 0 To FPartCount -1 Do
begin
FDownload[i].Disconnect;
FDownload[i].Free;
end;
iFile.Free;
FTimer.Enabled := False;
end;
// Возобновление
procedure TMultiHTTPDownloader.Resume;
var
I : Integer;
iFile : TIniFile;
Temp : TStringList;
begin
iFile := TIniFile.Create(FStateFile);
Temp := TStringList.Create;
iFile.ReadSections(Temp);
For I := 0 To Temp.Count -1 do
begin
SetLength(FDownload, I +1);
FDownload[i] := TDownload.Create(True);
FDownload[i].RangeStart := iFile.ReadString('Section ' + IntToStr(i), 'Position', '');
FDownload[i].RangeEnd := iFile.ReadString('Section ' + IntToStr(i), 'Length', '');
end;
For I := 0 To Temp.Count -1 do FDownload[i].Resume;
FTimer.Enabled := True;
Temp.Free;
iFile.Free;
end;
procedure Register;
begin
RegisterComponents('Standard', [TMultiHTTPDownloader]);
end;
end.
|
|
|

13.02.2010, 15:23
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
#define интересные может кто предложит?)
__________________
 
snow white world wide
|
|
|

13.02.2010, 15:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 07.07.2009
Сообщений: 324
Провел на форуме: 1585404
Репутация:
564
|
|
Простоя программулька для брокеров (котировки Forex)
Написал для себя чтобы каждый раз в терминал MT4 не заходит
Пример простой но кому то пригодится идея...
Исходники и компилированные скачать тут
|
|
|

16.02.2010, 09:59
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
Look4Hash
http://crackfor.me/index.php.
Суть утилиты в том что ты подгружаешь хеш список, и прогоняешь его по сервису.
сорцы
Годится как пример для работы с компонентом BackgroundWorker.
Писал на C#, .NET Framework 3.5. Visual Studio 2010 RC1.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

26.03.2010, 02:46
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
base64_encode [C]
Сейчас для HTTP аутентификации понадобилось... Может кому ещё пригодится.
написано с помощью...
Код:
// base64 by Gar|k
//#define B64_DEF_LINE_SIZE 72
//#define B64_MIN_LINE_SIZE 4
// buf - строка для кодирования
// sizebuf - размер строки
// rez - буффер для результата
// функция возвращает размер полученого хеша
int base64_encode(char *buf,int sizebuf,char *rez,int linesize)
{
static const char cb64[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
unsigned char in[3], out[4];
int i, len, blocksout=0,count=0;
while(count!=sizebuf)
{
len = 0;
for( i = 0; i < 3; i++ )
{
if( count!=sizebuf )
{ in[i] = (unsigned char)*buf++; count++; len++; }
else in[i] = 0;
}
if( len )
{
out[0] = cb64[ in[0] >> 2 ];
out[1] = cb64[ ((in[0] & 0x03) << 4) | ((in[1] & 0xf0) >> 4) ];
out[2] = (unsigned char) (len > 1 ? cb64[ ((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6) ] : '=');
out[3] = (unsigned char) (len > 2 ? cb64[ in[2] & 0x3f ] : '=');
memcpy(rez,out,4); rez+=4;
blocksout++;
}
if( blocksout >= (linesize/4) || count==sizebuf ) blocksout = 0;
}
*rez++=0;
return count;
}
Последний раз редактировалось Gar|k; 26.03.2010 в 03:01..
|
|
|

30.03.2010, 15:33
|
|
Познающий
Регистрация: 23.02.2010
Сообщений: 49
Провел на форуме: 447878
Репутация:
16
|
|
Написал авторег вебмани.К сожалению без скрина кидаю.
прога лежит тут:
o4u.msk.ru/webmoneyreger.rar
Прога регит форму, лезет на мыло, тырит активационный код, вписывает его, ждет активации по смс.
Скоро сделаю авторег без активации по смс.
Офф.Топик тут:https://forum.antichat.ru/thread191555.html
|
|
|

18.04.2010, 23:32
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
MD5 на основе Crypto API
Понадобилось генерировать 128-ми битные ключи для RC4 шифрования, вспомнил про MD5.
вариант с использованием динамически выделяемой памяти
Код:
#include <wincrypt.h>
// на выходе адрес буфера 16 байтного хеша
// после использования выполни VirtualFree(LPVOID lpAddress,0,MEM_RELEASE);
unsigned char *md5(unsigned char *string,DWORD count)
{
HCRYPTPROV hProv;
HCRYPTHASH hHash;
unsigned char *hash_value;
// Инициализация контекста криптопровайдера
if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))
{
// Cоздание хеш-объекта
if (CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
{
// Передача хешируемых данных хэш-объекту.
if (CryptHashData(hHash, string, count, 0))
{
// Получение хеш-значения
count = 0;
if (CryptGetHashParam(hHash, HP_HASHVAL, NULL, &count, 0))
{
hash_value=(unsigned char *)VirtualAlloc(NULL,count,MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE);
if (CryptGetHashParam(hHash, HP_HASHVAL, hash_value, &count, 0))
{
return hash_value;
}
}
}
}
}
return NULL;
}
но хеш-то всегда 16 байт поэтому можно оптимизировать так
Код:
// hash_value указатель на >=16 байтный буфер (напр. char hash[16];)
BOOL md5(unsigned char *hash_value,unsigned char *string,DWORD count)
{
HCRYPTPROV hProv;
HCRYPTHASH hHash;
// Инициализация контекста криптопровайдера
if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))
{
// Cоздание хеш-объекта
if (CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
{
// Передача хешируемых данных хэш-объекту.
if (CryptHashData(hHash, string, count, 0))
{
// Получение хеш-значения
count = 16;
if (CryptGetHashParam(hHash, HP_HASHVAL, hash_value, &count, 0)) return TRUE;
}
}
}
return FALSE;
}
Последний раз редактировалось Gar|k; 19.04.2010 в 00:14..
Причина: хммм а нафига динамически выделять...
|
|
|

19.04.2010, 14:36
|
|
Участник форума
Регистрация: 01.10.2009
Сообщений: 105
Провел на форуме: 559542
Репутация:
94
|
|
Прога My torrent
Прога My torrent - создаёт торрент файлы.
Прога
Сорцы
Последний раз редактировалось <Cyber-punk>; 19.04.2010 в 14:42..
|
|
|
delphi собственный мини почтовый клиент (winsock) |

02.05.2010, 16:57
|
|
Новичок
Регистрация: 12.03.2009
Сообщений: 3
Провел на форуме: 12467
Репутация:
14
|
|
delphi собственный мини почтовый клиент (winsock)
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|