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

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

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

  #4791  
Старый 03.11.2009, 09:26
2kill
Познающий
Регистрация: 04.05.2008
Сообщений: 36
Провел на форуме:
450557

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

StealthMaster, спасибо. оказалось очень просто! =)
 
Ответить с цитированием

  #4792  
Старый 03.11.2009, 11:22
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

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

Скажите, я вижу это уже обсуждалось.
Инди 10.5.7 и антикапча не работают?
У меня выскакивает No Data To Read
 
Ответить с цитированием

  #4793  
Старый 03.11.2009, 14:46
Пуховой
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме:
1702086

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

GhostOnline, надо патчить IdMultipartFormData.pas

Процедура TIdMultiPartFormDataStream.AddFile
Заменяем FSize := FSize + LItem.FieldSize; на FSize := FSize + LItem.FieldSize + 2;

Процедура TIdFormDataField.GetFieldSize
Заменяем Result := Result + LEncoding.GetByteCount(TStrings(FieldObject).Text) + 2; на Result := Result + LEncoding.GetByteCount(TStrings(FieldObject).Text) ;
Заменяем Result := Result + TStream(FieldObject).Size + 2; на Result := Result + TStream(FieldObject).Size;

Перекомпилируем... И все работает.
 
Ответить с цитированием

  #4794  
Старый 04.11.2009, 00:49
Mykola-bas
Новичок
Регистрация: 24.04.2008
Сообщений: 13
Провел на форуме:
194929

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

знаю что ткпой вопрос но всеже:
как вывести в делфи картинку с урл?
 
Ответить с цитированием

  #4795  
Старый 04.11.2009, 01:04
ange007
Новичок
Регистрация: 26.08.2009
Сообщений: 19
Провел на форуме:
977507

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

Цитата:
знаю что ткпой вопрос но всеже:
как вывести в делфи картинку с урл?
Код:
var img : TMemoryStream;
    filename:string;
begin
 filename:=ExtractFilePath(Application.ExeName)+'/image.jpg';
 img:=TMemoryStream.Create;
 idHttp.Get('адрес картинки',img);
Image1.Picture.Graphic.LoadFromStream(img);
 {или  img.SaveToFile(filename);
 Image1.Picture.LoadFromFile(filename); }
 img.Free;

Последний раз редактировалось ange007; 04.11.2009 в 01:06..
 
Ответить с цитированием

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

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

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

Все работает отлично, но вот если в пути будут русские буквы, то всё... функциональность становится равна 0.
Есть другие способы запускаемому exe файлу уничтожить себя же?
Код:
procedure Suicide;
var
 F: Textfile;
begin
 AssignFile(F,Changefileext(Paramstr(0),'.bat'));
 Rewrite(F);
 Writeln(F,':1');
 Writeln(F, Format('Erase "%s"',[Paramstr(0)]));
 Writeln(F, Format('If exist "%s" Goto 1',[Paramstr(0)]));
 Writeln(F, Format('Erase "%s"',[ChangeFileExt(Paramstr(0),'.bat')]));
 CloseFile(F);
 WinExec(PChar(ChangeFileExt(Paramstr(0),'.bat')),SW_HIDE);
 Halt;
end;
 
Ответить с цитированием

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

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

Scripter
Код:
Program DSelfDel;
Uses
Windows;

{
Few more ways to go:
1. Self-deleting .BAT file
2. Create temporary file using CreateFile() with FILE_FLAG_DELETE_ON_CLOSE flag.

URL: http://forum.vingrad.ru/act-ST/f-1/t-12088/unread-1/anchor-entry77762/0.html
}

Type
     TInitStruct = Packed Record
                     pExitProcess: Pointer;
                     pWaitForSingleObject: Pointer;
                     pSleep: Pointer;
                     pDeleteFile: Pointer;
                     pCloseHandle: Pointer;
                     hParent: THandle;
                     szFileName: Array[0..MAX_PATH-1] Of Char;
                   End;

Procedure SelfDel; Assembler;
Asm
  call @code
  @pExitProcess: dd 0
  @pWaitForSingleObject: dd 0
  @pSleep: dd 0
  @pDeleteFile: dd 0
  @pCloseHandle: dd 0
  @hParent: dd 0
  // MAX_PATH = 260 { windows.pas }
  @szFileName: db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

  @code:
  // ******************************
  // full injection code:
  pop ebp

  push INFINITE
  mov ebx, TInitStruct(ebp).hParent
  push ebx
  call TInitStruct(ebp).pWaitForSingleObject

  mov ebx, TInitStruct(ebp).hParent
  push ebx
  call TInitStruct(ebp).pCloseHandle

  @delfile:
    lea ebx, TInitStruct(ebp).szFileName
    push ebx
    call TInitStruct(ebp).pDeleteFile
    or eax, eax
    jne @exit

    push 500
    call TInitStruct(ebp).pSleep
  jmp @delfile

  @exit:
  push 0
  call TInitStruct(ebp).pExitProcess
End;

Function GetCodeSize(P: PByte): Cardinal; Assembler;
Asm
  mov ebx, eax
  mov cl, 0C3h
  @loop:
  inc eax
  cmp [eax], cl
  jnz @loop
  sub eax, ebx
  inc eax
End;

{
used links:
http://www.codeproject.com/useritems/selfdel.asp
http://undocumented.ntinternals.net/
}
Function GetProcessEntryPointAddress(hProcess, hThread: THandle): Cardinal;
Var
    read, dwFSBase, dwImageBase, dwOffset, dwOptHeaderOffset, dd: Cardinal;
                                                         context: TContext;
                                                           entry: LDT_ENTRY;
Begin
  //
  // get the current thread context
  //
  context.ContextFlags:=CONTEXT_FULL Or CONTEXT_DEBUG_REGISTERS;
  GetThreadContext(hThread, context);
  //
  // use the segment register value to get a pointer to
  // the TEB
  //
  GetThreadSelectorEntry(hThread, context.SegFs, entry);
  dwFSBase:=(entry.BaseHi ShL 24) Or (entry.BaseMid ShL 16) Or (entry.BaseLow);
  //
  // read the teb
  //
  ReadProcessMemory(hProcess, Ptr(dwFSBase + 48), @dd, 4, read); {1}
  //
  // read the peb from the location pointed at by the teb
  //
  ReadProcessMemory(hProcess, Ptr(dd + 8), @dwImageBase, 4, read); {2}
  //
  // figure out where the entry point is located;
  //
  ReadProcessMemory(hProcess, Ptr(dwImageBase + $3C), @dwOffset, 4, read); {3}

  dwOptHeaderOffset:=(dwImageBase + dwOffset + 4 + 20);

  ReadProcessMemory(hProcess, Ptr(dwOptHeaderOffset + 16), @dd, 4, read); {4}
  result:=dwImageBase + dd;
End;

Function DeleteSelf: Boolean;
Var
    CodeSize, EntryPoint, dummy: Cardinal;
                     InitStruct: TInitStruct;
                        hKrnl32: HModule; 
                             St: String;
                             Pt: PByte;
                             si: STARTUPINFO;
                             pi: PROCESS_INFORMATION;
Begin
  result:=False;
  ZeroMemory(@si, SizeOf(si));
  si.cb:=SizeOf(si);
  If CreateProcess(Nil, PChar('explorer.exe'), Nil, Nil, False, CREATE_SUSPENDED Or IDLE_PRIORITY_CLASS, Nil, Nil, si, pi) Then
    Begin
      With InitStruct Do
        Begin
          DuplicateHandle(GetCurrentProcess, GetCurrentProcess, pi.hProcess, @hParent, 0, FALSE, 0);
          hKrnl32:=GetModuleHandle('kernel32');
          pExitProcess:=GetProcAddress(hKrnl32, 'ExitProcess');
          pWaitForSingleObject:=GetProcAddress(hKrnl32, 'WaitForSingleObject');
          pSleep:=GetProcAddress(hKrnl32, 'Sleep');
          pDeleteFile:=GetProcAddress(hKrnl32, 'DeleteFileA');
          pCloseHandle:=GetProcAddress(hKrnl32, 'CloseHandle');
          FillChar(szFileName, MAX_PATH, 0);
          St:=ParamStr(0);
          Move(St[1], szFileName, Length(St));
        End;
      Pt:=@SelfDel;
      Inc(Pt, 5); // offset to structure
      WriteProcessMemory(GetCurrentProcess, Pt, @InitStruct, SizeOf(InitStruct), dummy);
      Dec(Pt, 5); // restore offset to program start
      CodeSize:=GetCodeSize(Pt);
      EntryPoint:=GetProcessEntryPointAddress(pi.hProcess, pi.hThread);
      VirtualProtectEx(pi.hProcess, Ptr(entrypoint), CodeSize, PAGE_EXECUTE_READWRITE, dummy);
      WriteProcessMemory(pi.hProcess, Ptr(entrypoint), Pt, CodeSize, dummy);
      FlushInstructionCache(pi.hProcess, Ptr(entrypoint), CodeSize);
      ResumeThread(pi.hThread);
      CloseHandle(pi.hThread);
      CloseHandle(pi.hProcess);
      result:=True;
    End;
End;

Begin
  DeleteSelf;
End.
Но антивирусы в частности каспер ругается на этот код
 
Ответить с цитированием

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

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

Цитата:
Но антивирусы в частности каспер ругается на этот код
тогда к сожалению меня это не устраивает
 
Ответить с цитированием

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

Репутация: 3349


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

2 Scripter вообще в консоле когда нужно указать путь в котором содержаться пробелы, то нужно взять путь в ковычках. т.е. типа del "c:\program file\file.exe"
 
Ответить с цитированием

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

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

Scripter а зачем тебе полный путь к программе если брать относительный то все долно работать на ура! и ненадо паритсья с русскими буквами и пробелами
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/WPAN/WLAN 2567 19.04.2026 23:21
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[jQuery] - Задай вопрос, получи ответ Isis PHP, PERL, MySQL, JavaScript 62 25.12.2009 03:25
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



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


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




ANTICHAT.XYZ