Winsoft.ComPort.3.5.Delphi.2010.XE.Cracked-Lz0
Hidden content. You need to Как увидеть ссылки? | How to see hidden links? or Как увидеть ссылки? | How to see hidden links?.
Последнее редактирование модератором:
QuickReport v5.05 for XE4 32+64 Full Source
*** скрытый блок ***
Уважаемый Вы уже второй раз (то что я
заметил) людей в заблуждение вводите,
постоянно по Вашим ссылкам попадаешь на
Как увидеть ссылки? | How to see hidden links?
Вы уж проверьте, если конечно это не
умышленно.
Прошу прощения за оффтоп
TMS Component Pack v6.8.2.0 for Delphi & C++Builder 5-XE3 Full Sources
Как увидеть ссылки? | How to see hidden links?
TMS Component Pack v6.8.0.1 for Delphi & C++Builder 5-XE3 Full Source with Install
Как увидеть ссылки? | How to see hidden links?
Добавлено через 11 минут
RAD Studio XE4 Architect
Как увидеть ссылки? | How to see hidden links?
Patch
Как увидеть ссылки? | How to see hidden links?
Я надеюсь, что ты просто толстый троль, потому что только слабоумные могут пытаться продать Как увидеть ссылки? | How to see hidden links? Как увидеть ссылки? | How to see hidden links? за 300 баксов.Компонент для инжекта dll в выбранный процесс
Инжект из 64 битных процессов в 32/64 битные в Windows 64 бит, из 32 битных процессов в 32 битные в Windows 32/64 бит
Windows 2003/XP/Vista/7/8
Delphi XE2 32/64 бит DCU
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;
Я надеюсь, что ты просто толстый троль, потому что только слабоумные могут пытаться продать Как увидеть ссылки? | How to see hidden links? Как увидеть ссылки? | How to see hidden links? за 300 баксов.
pThreadStart := GetProcAddress(GetModuleHandle('KERNEL32.DLL'), PAnsiChar('LoadLibraryA'));