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

08.08.2009, 20:16
|
|
Участник форума
Регистрация: 03.09.2008
Сообщений: 155
Провел на форуме: 1201665
Репутация:
236
|
|
Код:
Msg := AThread.Connection.ReadLn;
AThread.Connection.ReadBuffer(Clientbuffer,SizeOf( Clientbuffer));
засунул в execute на сервер, и клиент виснуть начал
|
|
|

09.08.2009, 01:48
|
|
Познающий
Регистрация: 11.07.2009
Сообщений: 83
Провел на форуме: 279987
Репутация:
30
|
|
нет соединения через idPop3((
Вобщем условие такое, есть список email-ов. Надо проверить, работают ли они. пишу такой код:
procedure Divide(Sourse:string;var Dest1,Dest2, Dest3:string);
begin
Dest1:=Copy(Sourse,1,Pos('@',Sourse)-1);//получаем имя пользователя
Dest3:=Copy(Sourse,1,Pos(';',Sourse)-1);
Delete(Sourse,1,Pos(';',Sourse));
Dest2:=Sourse; // получаем пароль
end;
procedure TMainForm.BitBtn1Click(Sender: TObject);
var
Dest1, Dest2, Dest3, pop : string;
ss : TStringList;
i:integer;
begin
if FileEdit.Text='' then begin
ShowMessage('Не загружен список!!!');
exit;
end else begin
ss:=TStringList.Create;
ss.LoadFromFile(FileEdit.Text);
ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
for i:=0 to ss.Count-1 do begin
Divide(ss.Strings[i],Dest1,Dest2, Dest3);
pop:='pop.'+copy(Dest3, pos('@', Dest3)+1,10000);
IdPOP31.Host:=pop;
IdPOP31.Port:=110;
IdPOP31.Username:=Dest1;
IdPOP31.Password:=Dest2;
try
IdPOP31.Connect;
except
end;
if IdPOP31.Connected then
ListBox2.Items.Add(Dest1+':'+Dest2+' - Valid')
else
ListBox2.Items.Add(Dest1+':'+Dest2+' - Invalid') ;
end;
end;
ss.Free;
IdPop31.Disconnect;
end;
Пишет все время что Invalid хотя имя и пароль верные, и pop сервер указан верно. В чем я ошибся?
|
|
|

09.08.2009, 02:58
|
|
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме: 1551582
Репутация:
107
|
|
Вот так у меня получилось:
Код:
for i:=0 to ss.Count-1 do
begin
Divide(ss.Strings[i],Dest1,Dest2, Dest3);
pop:='pop.'+copy(Dest3, pos('@', Dest3)+1,10000);
IdPOP31.Host:=pop;
IdPOP31.Port:=110;
IdPOP31.Username:=Dest1;
IdPOP31.Password:=Dest2;
try
IdPOP31.Connect;
ListBox2.Items.Add(Dest1+':'+Dest2+' - Valid')
except
ListBox2.Items.Add(Dest1+':'+Dest2+' - Invalid') ;
end;
IdPop31.Disconnect;
end;
ss.Free;
|
|
|

09.08.2009, 04:39
|
|
Участник форума
Регистрация: 07.01.2009
Сообщений: 186
Провел на форуме: 1247273
Репутация:
166
|
|
Такого вопроса не нашел в разделе Кодинг, посему задам тут.
Как юзать хуки в делфи без использования DLL?
Конкретно интересует пример хука на отлов окон до их прорисовки на экране.
Нагуглил такой код:
Код:
Function WndHookProc(nCode:Integer;wParam:UINT;lParam:UINT):LRESULT; stdcall;
begin
Wnd:=FindWindow(nil,PChar('Безымянный - Блокнот'));
if nCode>=0 then
if PCWPStruct(lParam).Message=WM_SHOWWINDOW then begin
// Работа с окном блокнота тут
end;
Result:=CallNextHookEx(HookHandle,nCode,wParam,lParam);
end;
Честно говоря - нифига непонятно =\ С хуками никогда не сталкивался. В гугле - примеры кейлоггера, но опять же: с помощью DLL.
Буду благодарен за любой пример хука на отлов окон (с DLL или без нее).
З.Ы. Greetz to Slesh & NullSleep за проявленное внимание на мои вопросы и оказанную помощь =)
|
|
|

09.08.2009, 05:55
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
ex3me
http://forum.antichat.ru/threadnav118323-1-10.html
http://forum.oszone.net/post-292753-27.html
http://www.wasm.ru/article.php?article=hiddndt
http://www.wasm.ru/publist.php?list=21
http://www.wasm.ru/article.php?article=apihook_3
http://www.programmersforum.ru/showthread.php?t=18&highlight=%F1%EA%F0%FB%F2%FC+% EF%F0%EE%F6%E5%F1%F1
http://www.programmersclub.ru/gruzin-api-perhvat/
http://www.vr-online.ru/review.php?id=63
я тоже не сталкивался, и мне точно так же сейчас надо это реализовать у себя в программе, да еще и так чтобы все кошерно было.
 руки дойдут через пару дней, прочту внимательно и попробую то, на что кинул ссылы.
дело тут скорее не в том, что парней напрягать не охота.. просто один фиг это все надо знать самим) Так что тоже читай
|
|
|

09.08.2009, 11:19
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Надо написать генератор рандумной строки из даных символов. Я сделал это
Код:
function SubStr(const Str: string; Start: Integer; Size: Word): string;
begin
SubStr := Copy(Str, Start, Size)
end;
function Rand(count,symbols: string): string;
var
i: integer;
begin
for i:=1 to StrToInt(count) do
begin
result:=result+SubStr(symbols,Random(Length(symbols)),1);
Application.ProcessMessages;
end;
end;
Но трабла в том, что генерит он не совсем рандумно. Пример: http://img44.imageshack.us/img44/7493/11637706.png
Я специально поставил только цифры, чтобы было лучше видно.
Как решить это?
|
|
|

09.08.2009, 11:23
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
mailbrush, напиши в OnCreate строку:
И еще вместо твоей функции SubStr я бы написал так:
Код:
result:=result+symbols[Random(Length(symbols)-1)+1];
Последний раз редактировалось Nullsleep; 09.08.2009 в 11:28..
|
|
|

09.08.2009, 11:38
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
Сообщение от Scripter
Код:
Msg := AThread.Connection.ReadLn;
AThread.Connection.ReadBuffer(Clientbuffer,SizeOf( Clientbuffer));
засунул в execute на сервер, и клиент виснуть начал
Ты считываешь в Clientbuffer, размер которого нулевой. Тебе нужно отсылать размер Sendbuffer'а перед отправкой.
Перед idTCPClient1.WriteBuffer(SendBuffer,SizeOf(SendBuf fer),true);
в клиентской части тебе нужно написать:
Код:
idTCPClient1.WriteInteger(SizeOf(SendBuffer));
А в серверной изменить строку AThread.Connection.ReadBuffer(Clientbuffer,SizeOf( Clientbuffer));
на:
Код:
AThread.Connection.ReadBuffer(Clientbuffer, AThread.Connection.ReadInteger);
Последний раз редактировалось Nullsleep; 09.08.2009 в 11:40..
|
|
|

09.08.2009, 12:08
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
привет всем!
возникла сложность в обработке файлика на winapi нужно выделить строки! стандартными способами делфи нехочу делать!
пытаюсь сделать так
Код:
var
Size:cardinal;
mas:Array[0..65536] of char;
Config:array of string;
procedure ReadConfig;
var
re:^integer;
MyFile:integer;
begin
MyFile:= Integer(CreateFile(PChar('sittings.txt'), GENERIC_READ+GENERIC_WRITE,FILE_SHARE_READ+FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0));
GetMem(re,Sizeof(re));
size:=Getfilesize(MyFile,nil);
ReadFile(THandle(MyFile), mas, size, LongWord(re^), nil);
Closehandle(MyFile);
end;
{$R *.dfm}
Function PosEx(Const SubStr, S: String; Offset: Cardinal = 1): Integer;
var
I,X: Integer;
Len, LenSubStr: Integer;
begin
If Offset = 1 Then
Result := Pos(SubStr, S)
Else
begin
I := Offset;
LenSubStr := Length(SubStr);
Len := Length(S) - LenSubStr + 1;
While I <= Len Do
begin
If S[I] = SubStr[1] Then
begin
X := 1;
While (X < LenSubStr) And (S[I + X] = SubStr[X + 1]) Do
Inc(X);
If (X = LenSubStr) Then
begin
Result := I;
Exit;
End;
End;
Inc(I);
End;
Result := 0;
End;
End;
procedure ObrabConfig;
var
i,j:integer;
S:string;
begin
i:=1;
form1.Label2.Caption:=inttostr(Size);
while i<10771 do
begin
j:=posex(#13#10,mas,i);
S:=copy(mas,i,j);
i:=j+3;
j:=0;
Setlength(Config,high(Config)+2);
Config[high(Config)]:=S;
Form1.memo1.lines.Add(S);
Form1.Label1.Caption:=inttostr(i);
Application.ProcessMessages;
if i>=10771 then
showmessage('ok');
Sleep(50);
end;
end;
но он выводит первою строку норма а потом гонит всякий "шлак"
что я делаю не так?
|
|
|

09.08.2009, 12:34
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 transserg как я понял тебе нужна работа с конфигом. То для таких целей советую юзать виндовую апишку
GetPrivateProfileIntA - читает из конфига число
GetPrivateProfileStringA - чистает из конфига строку
Есть и другие, но тебе они не важны.
Вот пример
Код:
var
my_int:integer;
my_str:array[0..255] of chat;
begin
my_int := GetPrivateProfileIntA('config', 'MY_INT_VAL', 20, 'c:\config.ini');
GetPrivateProfileStringA('config', 'MY_STR_VAL', 'defoult value', my_str, 256, 'config.ini');
где
config - название секции
MY_INT_VAL - название параметра
20 - дефолтовое значение если число
c:\config.ini - непосредственно файл
defoult value - дефолтовое значение если строка
256 - размер буфера.
конфиг - стандартного оформления
[config]
MY_INT_VAL = 10
MY_STR_VAL = hello
Последний раз редактировалось slesh; 09.08.2009 в 12:38..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|