Из С+ в Delphi, Требуется небольшая помощь

Статус: Offline
Реєстрація: 22.08.2009
Повідом.: 38
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #1
Из С+ в Delphi, Требуется небольшая помощь

Есть кусок программы, написанный на С++. Помогите написать такой же на Delphi.


Код:
ULONG NewCsrClientCallServer(PVOID Arg1, PVOID Arg2, ULONG Arg3, ULONG Arg4)
{
       *( DWORD *)(( BYTE *)Arg1 + 0x20 ) = 0;
       return 0; 
}

...
DWORD ImportAddress, OriginalCsrClientCallServer, OldProtect;
  ImportAddress = GetImportAddressFromIat(GetModuleHandle("kernelbase.dll"), "CsrClientCallServer");
  VirtualProtect(( VOID *) ImportAddress, sizeof(DWORD), PAGE_EXECUTE_READWRITE, &OldProtect);
  OriginalCsrClientCallServer = *(DWORD*)ImportAddress;
  *(DWORD*)ImportAddress=(DWORD)NewCsrClientCallServer;
...
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #2
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #3
Прямо дискуссия какае-то
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #4
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #5
зачем тебе нужно перехватывать CsrClientCallServer? трояна чтоли на Delphi пишешь?
Троян на Делфи ? Тышо ... нет конечно. Я хочу таким способом проинжектиться к процессу в windows 7. А это цитаты с статьи, которую я нашел.
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #6



Это как лечить зуб через задницу, с помощью отбойного молотка.

Для указанной задачи есть OpenProcess/VirtualAllocEx/WriteProcessMemory/CreateRemoteThread, есть хуки, и еще дохуя разных способов. Но такого извращенного я еще не встречал

Ты в курсе что параметры функции которую ты пытаешься перехватить зависят даже от билда операционной системы?
 
Останнє редагування:
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #7
тогда уж cbuilder бери - как минимум родной для таких штук С++
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #8
К сожалению те функции, которые были описаны не подходят для решения данной задачи, т.к. они не работают в висте и семерке (точнее работают, но функция "CsrClientCallServer" проверяет процесс чужой или свой. и если процесс чужой - то инжекта не происходит. можно инжектиться только в свой процесс с помощью этих функций). А про параметры функции - это уже отдельный разговор, который не представляет никакой проблемы.

тогда уж cbuilder бери - как минимум родной для таких штук С++
пока это самый лучший предложенный вариант
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #9
Мля ну почитай уже чтоли как stub dll сделать или хук. Если уж берешься чужие программы курочить так не худо бы хотябы Рихтера пробежать по диагонали.
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #10

прекрасно работают. Я тебе привел функции которые реально используются в моей программе. Программа протестирована и отлично работает на следующих системах:
- Win XP SP3 x86
- Win 7 x86
- Win 7+SP1 x86
- Win 7 x64
- Win 7+SP1 x64

Эту программу я уже с год под семеркой пользую - все ОК.

Прекрасно работает в обоих режимах - 32 и 64 битном (достаточно просто переключить target platform на x64 при комплияции). Работает в том числе и с включенным UAC (тут конечно нужно подшаманить с манифестом и пермиссиями).
 
Останнє редагування:
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #11
в принципе даже если не стебаться, то перевести вышеуказанный код на делфи не составит труда, просто подставить нужные типы параметров и метод вызова процедур (скорее всего cdecl или stdcall)
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #12
Вот хороший цикл статей, уже ставший класикой: w w w .wasm. r u/article.php?article=apihook_1 (за пробелы сори, это мой третий пост здесь)
 
  • 🔴 12:29 Повітряна тривога в Харків.обл.
  • #13
спасибо, посмотрю