Змінюй хід війни! Допомагай ЗСУ!

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

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

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

Нам нужно найти в памяти kernelbase.dll, просканировать таблицу импорта, найти адрес импортируемой функции CsrClientCallServer и подменить его новым указателем на заранее подготовленную функцию CsrClientCallServer, которая всегда будет возвращать «успех».

Код:
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;
...
 
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #2
:рл:
 
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #3
Прямо дискуссия какае-то
 
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #4
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #5
зачем тебе нужно перехватывать CsrClientCallServer? трояна чтоли на Delphi пишешь?
Троян на Делфи ? Тышо ... нет конечно. Я хочу таким способом проинжектиться к процессу в windows 7. А это цитаты с статьи, которую я нашел.
 
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #6
Я хочу таким способом проинжектиться к процессу в windows 7. А это цитаты с статьи, которую я нашел.

:cranky::рл:

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

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

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

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

Ты в курсе что параметры функции которую ты пытаешься перехватить зависят даже от билда операционной системы?
К сожалению те функции, которые были описаны не подходят для решения данной задачи, т.к. они не работают в висте и семерке (точнее работают, но функция "CsrClientCallServer" проверяет процесс чужой или свой. и если процесс чужой - то инжекта не происходит. можно инжектиться только в свой процесс с помощью этих функций). А про параметры функции - это уже отдельный разговор, который не представляет никакой проблемы.

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


пока это самый лучший предложенный вариант
Мля ну почитай уже чтоли как stub dll сделать или хук. Если уж берешься чужие программы курочить так не худо бы хотябы Рихтера пробежать по диагонали.
 
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #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 (тут конечно нужно подшаманить с манифестом и пермиссиями).
 
Останнє редагування:
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #11
в принципе даже если не стебаться, то перевести вышеуказанный код на делфи не составит труда, просто подставить нужные типы параметров и метод вызова процедур (скорее всего cdecl или stdcall)
 
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #12
Вот хороший цикл статей, уже ставший класикой: w w w .wasm. r u/article.php?article=apihook_1 (за пробелы сори, это мой третий пост здесь)
 
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #13
спасибо, посмотрю
 
  • 🔴 21:54 Повітряна тривога в Харків.обл.
  • #14
спасибо, посмотрю

%D1%81%D0%BB%D0%BE%D1%83%D0%BF%D0%BE%D0%BA-%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0-%D1%83%D0%B4%D0%B0%D0%BB%D1%91%D0%BD%D0%BD%D0%BE%D0%B5-140901.jpeg
 
Назад
Зверху Знизу