ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #4061  
Старый 08.08.2009, 20:16
Scripter
Участник форума
Регистрация: 03.09.2008
Сообщений: 155
Провел на форуме:
1201665

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

Код:
Msg    := AThread.Connection.ReadLn;
AThread.Connection.ReadBuffer(Clientbuffer,SizeOf(  Clientbuffer));
засунул в execute на сервер, и клиент виснуть начал
 

  #4062  
Старый 09.08.2009, 01:48
yfet
Познающий
Регистрация: 11.07.2009
Сообщений: 83
Провел на форуме:
279987

Репутация: 30
Отправить сообщение для yfet с помощью ICQ
По умолчанию

нет соединения через 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 сервер указан верно. В чем я ошибся?
 

  #4063  
Старый 09.08.2009, 02:58
ZdezBilYa
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме:
1551582

Репутация: 107
Отправить сообщение для ZdezBilYa с помощью ICQ
По умолчанию

Вот так у меня получилось:

Код:
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;
 

  #4064  
Старый 09.08.2009, 04:39
ex3me
Участник форума
Регистрация: 07.01.2009
Сообщений: 186
Провел на форуме:
1247273

Репутация: 166
Отправить сообщение для ex3me с помощью ICQ
По умолчанию

Такого вопроса не нашел в разделе Кодинг, посему задам тут.

Как юзать хуки в делфи без использования 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 за проявленное внимание на мои вопросы и оказанную помощь =)
 

  #4065  
Старый 09.08.2009, 05:55
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


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

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

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

  #4066  
Старый 09.08.2009, 11:19
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


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

Надо написать генератор рандумной строки из даных символов. Я сделал это
Код:
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
Я специально поставил только цифры, чтобы было лучше видно.
Как решить это?
 

  #4067  
Старый 09.08.2009, 11:23
Nullsleep
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме:
237284

Репутация: 54
Отправить сообщение для Nullsleep с помощью ICQ
По умолчанию

mailbrush, напиши в OnCreate строку:
Код:
  Randomize;
И еще вместо твоей функции SubStr я бы написал так:
Код:
  result:=result+symbols[Random(Length(symbols)-1)+1];

Последний раз редактировалось Nullsleep; 09.08.2009 в 11:28..
 

  #4068  
Старый 09.08.2009, 11:38
Nullsleep
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме:
237284

Репутация: 54
Отправить сообщение для Nullsleep с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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..
 

  #4069  
Старый 09.08.2009, 12:08
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

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

привет всем!
возникла сложность в обработке файлика на 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;
но он выводит первою строку норма а потом гонит всякий "шлак"
что я делаю не так?
 

  #4070  
Старый 09.08.2009, 12:34
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

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)
 


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




ANTICHAT.XYZ