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

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

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

:cranky::рл:

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

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

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

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

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

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


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