Компоненты для Delphi/C++Builder ~ Components for Delphi/C++Builder 6 | Страница 95 | BESK.SU - программирование без границ (c) 2025

Компоненты для Delphi/C++Builder ~ Components for Delphi/C++Builder 6

Статус
В этой теме нельзя размещать новые ответы.

solover

Турист
Credits
61
Winsoft.ComPort.3.5.Delphi.2010.XE.Cracked-Lz0

[HIDE]http://www.mediafire.com/download.php?mp66h929cs2r50h[/HIDE]
 
Последнее редактирование модератором:

volod3000

Турист
Credits
1
QuickReport v5.05 for XE4 32+64 Full Source
*** скрытый блок ***
Уважаемый Вы уже второй раз (то что я
заметил) людей в заблуждение вводите,
постоянно по Вашим ссылкам попадаешь на

http://adfoc.us/

Вы уж проверьте, если конечно это не
умышленно.

Прошу прощения за оффтоп
 

Decoding

Турист
Credits
0
Уважаемый Вы уже второй раз (то что я
заметил) людей в заблуждение вводите,
постоянно по Вашим ссылкам попадаешь на

http://adfoc.us/

Вы уж проверьте, если конечно это не
умышленно.

Прошу прощения за оффтоп
Да норм все, в правом верхнем углу skip нажми (после недолгого счетчика) и будет тебе счастье.
 

LeshaRB

Турист
Credits
222
TMS Component Pack v6.8.2.0 for Delphi & C++Builder 5-XE3 Full Sources
http://depositfiles.com/files/tzq61fo7o

TMS Component Pack v6.8.0.1 for Delphi & C++Builder 5-XE3 Full Source with Install
http://depositfiles.com/files/kqtpf6iww

Добавлено через 11 минут
RAD Studio XE4 Architect
http://altd.embarcadero.com/download/radstudio/xe4/delphicbuilder_xe4_win.iso

Patch
http://depositfiles.com/files/9zs09o07m
Я оставлю это сообщение для ссылок
Если еще будешь увеличивать размеры - накажу

Для IDE есть соответствующая тема
 

Small Donkey

Турист
Credits
0
Injector

Компонент для инжекта dll в выбранный процесс

Инжект из 64 битных процессов в 32/64 битные в Windows 64 бит, из 32 битных процессов в 32 битные в Windows 32/64 бит

Windows 2003/XP/Vista/7/8

Delphi XE2, XE3, XE4, 32/64 бит DCU

Injector
 
Последнее редактирование модератором:

vogel

Турист
Credits
0
Компонент для инжекта dll в выбранный процесс

Инжект из 64 битных процессов в 32/64 битные в Windows 64 бит, из 32 битных процессов в 32 битные в Windows 32/64 бит

Windows 2003/XP/Vista/7/8

Delphi XE2 32/64 бит DCU
Я надеюсь, что ты просто толстый троль, потому что только слабоумные могут пытаться продать общеизвестный код инжекта за 300 баксов.

Для тех, кому лень ходить по ссылкам ниже код который использую я.

Код:
const
  DllName = 'thread_splice_lib.dll';
 
function InjectLib(ProcessID: Integer): Boolean;
var
  Process: HWND;
  ThreadRtn: FARPROC;
  DllPath: AnsiString;
  RemoteDll: Pointer;
  BytesWriten: DWORD;
  Thread: DWORD;
  ThreadId: DWORD;
begin
  Result := False;
  // Открываем процесс
  Process := OpenProcess(PROCESS_CREATE_THREAD or PROCESS_VM_OPERATION or
    PROCESS_VM_WRITE, True, ProcessID);
  if Process = 0 then Exit;
  try
    // Выделяем в нем память под строку
    DllPath := AnsiString(ExtractFilePath(ParamStr(0)) + DLLName) + #0;
    RemoteDll := VirtualAllocEx(Process, nil, Length(DllPath),
      MEM_COMMIT or MEM_TOP_DOWN, PAGE_READWRITE);
    if RemoteDll = nil then Exit;
    try
      // Пишем путь к длл в его адресное пространство
      if not WriteProcessMemory(Process, RemoteDll, PChar(DllPath),
        Length(DllPath), BytesWriten) then Exit;
      if BytesWriten <> DWORD(Length(DllPath)) then Exit;
      // Получаем адрес функции из Kernel32.dll
      ThreadRtn := GetProcAddress(GetModuleHandle('Kernel32.dll'), 'LoadLibraryA');
      if ThreadRtn = nil then Exit;
      // Запускаем удаленный поток
      Thread := CreateRemoteThread(Process, nil, 0, ThreadRtn, RemoteDll, 0, ThreadId);
      if Thread = 0 then Exit;
      try
        // Ждем пока удаленный поток отработает...
        Result := WaitForSingleObject(Thread, INFINITE) = WAIT_OBJECT_0;
      finally
        CloseHandle(Thread);
      end;
    finally
      VirtualFreeEx(Process, RemoteDll, 0, MEM_RELEASE);
    end;
  finally
    CloseHandle(Process);
  end;
end;

Принцип данного метода был описан еще у Рихтера, поэтому на нем останавливаться не буду.
А для выгрузки необходимо реализовать следующий код:

Код:
function ResumeLib(ProcessID: Integer): Boolean;
var
  hLibHandle: THandle;
  hModuleSnap: THandle;
  ModuleEntry: TModuleEntry32;
  OpCodeData: Word;
  Process: HWND;
  BytesWriten: DWORD;
  Thread: DWORD;
  ThreadId: DWORD;
  ExitCode: DWORD;
  PLibHandle: PDWORD;
  OpCode: PWORD;
  CurrUnloadAddrOffset: DWORD;
  UnloadAddrOffset: DWORD;
begin
  Result := False;
 
  // рассчитываем оффсет адреса выгрузки библиотеки относительно адреса ее загрузки
  hLibHandle := LoadLibrary(PChar(DLLName));
  try
    UnloadAddrOffset :=
      DWORD(GetProcAddress(hLibHandle, 'SelfUnload')) - hLibHandle;
    if UnloadAddrOffset = -hLibHandle then Exit;
  finally
    FreeLibrary(hLibHandle);
  end;
 
  // Находим адрес библиотеки в чужом адресном пространстве
  hModuleSnap := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID);
  if hModuleSnap <> INVALID_HANDLE_VALUE then
  try
    FillChar(ModuleEntry, SizeOf(TModuleEntry32), #0);
    ModuleEntry.dwSize := SizeOf(TModuleEntry32);
    if not Module32First(hModuleSnap, ModuleEntry) then Exit;
    repeat
      if AnsiUpperCase(ModuleEntry.szModule) =
        AnsiUpperCase(DLLName) then
      begin
        // Получаем адрес функции выгрузки
        CurrUnloadAddrOffset := ModuleEntry.hModule + UnloadAddrOffset;
        Break;
      end;
    until not Module32Next(hModuleSnap, ModuleEntry);
  finally
    CloseHandle(hModuleSnap);
  end;
 
  // Открываем процесс
  Process := OpenProcess(PROCESS_CREATE_THREAD or PROCESS_VM_OPERATION or
    PROCESS_VM_WRITE, True, ProcessID);
  if Process = 0 then Exit;
  try
    // Пишем опкод jmp [ebx]
    OpCode := VirtualAllocEx(Process, nil, 2,
      MEM_COMMIT or MEM_TOP_DOWN, PAGE_READWRITE);
    if OpCode = nil then Exit;
    try
      OpCodeData := $23FF;
      if not WriteProcessMemory(Process, OpCode, @OpCodeData,
        2, BytesWriten) then Exit;
 
      // Пишем адрес функции выгрузки (он будет лежать в EBX при старте потока)
      PLibHandle := VirtualAllocEx(Process, nil, 4,
        MEM_COMMIT or MEM_TOP_DOWN, PAGE_READWRITE);
      if PLibHandle = nil then Exit;
      try
        if not WriteProcessMemory(Process, PLibHandle, @CurrUnloadAddrOffset,
          4, BytesWriten) then Exit;
 
        // запускаем поток
        Thread := CreateRemoteThread(Process, nil, 0, OpCode,
          PLibHandle, 0, ThreadId);
        if Thread = 0 then Exit;
        try
          // Ждем пока удаленный поток отработает...
          if (WaitForSingleObject(Thread, INFINITE) = WAIT_OBJECT_0) then
            if GetExitCodeThread(Thread, ExitCode) then
              Result := ExitCode = 0;
        finally
          CloseHandle(Thread);
        end;
      finally
        VirtualFreeEx(Process, PLibHandle, 0, MEM_RELEASE);
      end;
    finally
      VirtualFreeEx(Process, OpCode, 0, MEM_RELEASE);
    end;
  finally
    CloseHandle(Process);
  end;
end;
 
Последнее редактирование модератором:

Small Donkey

Турист
Credits
0
Я надеюсь, что ты просто толстый троль, потому что только слабоумные могут пытаться продать общеизвестный код инжекта за 300 баксов.
Все это не будет работать если вы хотите из под 64 битного процесса инжектировать в 32 битный процесс

32 бит процесс -> 32 бит процесс
64 бит процесс -> 64 бит процесс
64 бит -> 32 бит не получится

Нет юникода

В Windows 8 - 100% не будет работать UnInject

Вообще что бы выгрузить "чужую" dll нужно сначала установить счетчик Load Count = 1, в Windows 8 уже так не прокатывает

Дальше почитайте "Попробывал сделать инжект длл к другому процессу, но дллка не присоединилась. Код идентичный, что здесь. Почему не получается? Win7 x64"

Абсолютно рабочий компонент пользуйтесь DCU как хотите, в чем проблема?
 
Последнее редактирование модератором:

Small Donkey

Турист
Credits
0
Код:
pThreadStart := GetProcAddress(GetModuleHandle('KERNEL32.DLL'), PAnsiChar('LoadLibraryA'));
Полный бред, вы получаете адрес функции LoadLibraryA из KERNEL32.DLL в своем процессе, нужно прочитать память процесса в который будете внедрять dll и там найти адрес функции LoadLibrary и уже тогда CreateRemoteThread

Добавлено через 16 минут
Ответьте что будет если в вашем процессе будет установлен hook на функцию LoadLibrary, так например делают антивирусы для самозащиты
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху