HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

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

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

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

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

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

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

Репутация: 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
С нами: 9498029

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

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

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

Репутация: 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
С нами: 9308362

Репутация: 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
С нами: 9399214

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

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
С нами: 9308362

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

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

  #4799  
Старый 04.11.2009, 21:21
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

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

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

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

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



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2570 09.06.2026 16:21
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



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


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




ANTICHAT ™ © 2001- Antichat Kft.