Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2017, 22:32   #1
ComAlex
Пользователь
 
Регистрация: 27.08.2012
Сообщений: 33
По умолчанию Структуры _RTL_USER_PROCESS_PARAMETERS, _LSA_UNICODE_STRING

Уважаемые программисты, подскажите, пожалуйста, как,
зная указатель ProcessParameters из функции
ReadProcessMemory(hProcess,prb.Proc essParameters,@ProcessParameters,si zeof(PROCESS_PARAMETERS),cb)
добраться до значений Buffer (ProcessParameters.CommandLine.Buff er) и Length (ProcessParameters.CommandLine.Leng th)
через смещения памяти (читая области памяти ...), не используя конструкции ProcessParameters.CommandLine.Buffe r, ProcessParameters.CommandLine.Lengt h?
Можно ли такое сделать?
Понимаю, что задача странная, но мне нужно переложить Delphi-код на язык, не поддержающий объектные сущности

Знаю указатель на стуктуру:
Код:
typedef struct _RTL_USER_PROCESS_PARAMETERS
{
     ULONG MaximumLength;
     ULONG Length;
     ULONG Flags;
     ULONG DebugFlags;
     PVOID ConsoleHandle;
     ULONG ConsoleFlags;
     PVOID StandardInput;
     PVOID StandardOutput;
     PVOID StandardError;
     CURDIR CurrentDirectory;
     UNICODE_STRING DllPath;
     UNICODE_STRING ImagePathName;
     UNICODE_STRING CommandLine;                            <- Интересует это
     PVOID Environment;
     ULONG StartingX;
     ULONG StartingY;
     ULONG CountX;
     ULONG CountY;
     ULONG CountCharsX;
     ULONG CountCharsY;
     ULONG FillAttribute;
     ULONG WindowFlags;
     ULONG ShowWindowFlags;
     UNICODE_STRING WindowTitle;
     UNICODE_STRING DesktopInfo;
     UNICODE_STRING ShellInfo;
     UNICODE_STRING RuntimeData;
     RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32];
     ULONG EnvironmentSize;
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;

Из нее надо получить данные структуры:
typedef struct _LSA_UNICODE_STRING {
  USHORT Length;                                                          <- Интересует это
  USHORT MaximumLength;
  PWSTR  Buffer;                                                            <- Интересует это
} LSA_UNICODE_STRING, *PLSA_UNICODE_STRING, UNICODE_STRING, *PUNICODE_STRING;
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 27.10.2017 в 22:35.
ComAlex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача структуры из программы на c# в dll на c++ и получение структуры из dll iukash Общие вопросы .NET 0 07.05.2013 16:03
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) Green Gin Фриланс 2 27.04.2012 15:26
Управляющие структуры. Программирование алгоритмов разветвляющейся структуры. Лёнка Компоненты Delphi 1 23.04.2012 15:03
Структуры Golovastik Общие вопросы C/C++ 23 01.03.2010 00:35