|
Borland и RAD10 XE3 - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
05.08.2014, 13:20
|
#1
|
|
|
|
Фельдмаршал
|
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
|
Borland и RAD10 XE3
Проблема в том, что один и тот-же код на Borlande работает, а на RAD10 XE3 нет.
Думаю что вся проблема в WriteProcessMemory, т.к. 5-й параметр отличается, в Боланде он Cardinal, а в РАДе как Size_t.
Код:
procedure InjectDll(TargetId: Cardinal; DllName: PAnsichar);
var
BytesWrite :Size_t;
ParamAddr : pointer;
pThreadStart : pointer;
Hdl : cardinal;
hThread : cardinal;
hRemoteThread : Cardinal;
begin
ChangePrivilege('SeDebugPrivilege', True);
Hdl := OpenProcess(PROCESS_ALL_ACCESS, false, TargetId);
ParamAddr := VirtualAllocEx(Hdl, nil, Length(DllName), MEM_COMMIT or MEM_RESERVE,PAGE_EXECUTE_READWRITE);
WriteProcessMemory(Hdl, ParamAddr, PAnsichar(DllName), Length(DllName), BytesWrite);
pThreadStart := GetProcAddress(GetModuleHandle('KERNEL32.DLL'), PAnsiChar('LoadLibraryA'));
hThread := CreateRemoteThread(Hdl, nil, 0, pThreadStart, ParamAddr, 0,hRemoteThread);
WaitForSingleObject(hThread, INFINITE);
Closehandle(hThread);
end;
Последний раз редактировалось Dimedrol1536; 06.08.2014 в 00:19.
|
|
|
21.08.2014, 11:12
|
#2
|
|
|
|
Разведчик
|
Регистрация: 25.01.2013
Сообщений: 13
Популярность: 10
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Borland и RAD10 XE3
del
Последний раз редактировалось scitelz; 21.08.2014 в 19:34.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 13:30.
|
|