• XSS.stack #1 – первый литературный журнал от юзеров форума

Патчинг ImagePathName

Hayes

floppy-диск
Пользователь
Регистрация
03.01.2024
Сообщения
5
Реакции
1
Всем привет. Понадобилась возможность патчить путь к текущему модулю, то значение которое дает GetModuleFileNameW(NULL, ...). Патчинг peb->ProcessParameters->ImagePathName не помогает. Посмотрел в отладчике, выходит что путь кешируется и LdrGetFullName отдает путь читая путь из хипа. Может как то можно выйти на эти указатели, не хочется хукать LdrGetFullName
 
Все из Peb берётся. pPEB->LdrData->InLoadOrderModuleList ... ->FullDllName.Buffer
 
Последнее редактирование:
Да действительно работает. Че то жестко тупанул:
C++:
bool SetCurrentModulePath(PCWSTR path)
{
  PPEB peb = (PPEB)NtCurrentTeb()->ProcessEnvironmentBlock;
  PPEB_LDR_DATA ldr = (PPEB_LDR_DATA)peb->Ldr;

  ((PLDR_DATA_TABLE_ENTRY)ldr->InLoadOrderModuleList.Flink)->FullDllName;

  API(NTDLL, RtlCreateUnicodeString)(&((PLDR_DATA_TABLE_ENTRY)ldr->InLoadOrderModuleList.Flink)->FullDllName, path);

  return true;
}
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх