Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

ParamStr(X)   Найти похожие ветки 

 
Sur   (2004-08-12 14:08) [0]

У меня есть xэндл процесса(приложения). Как по нему мне узнать
параметры с котороми он был запущен(То есть ParamStr(1)... ParamStr(ParamCount)???


 
Digitman ©   (2004-08-12 14:24) [1]

внедряешь в этот процесс свою нить

в коде нити читаешь структуру PEB

в поле PEB.ProcessParameters лежит адрес структуры RTL_USER_PROCESS_PARAMETERS

в поле структуры RTL_USER_PROCESS_PARAMETERS.CommandLine  лежит то что тебе нужно


 
Sur   (2004-08-12 14:31) [2]

я не совсем понял, можно чуть попадробнее или может маленький
примерчик,.
спасибо за ответ.


 
Digitman ©   (2004-08-12 14:34) [3]


> я не совсем понял


что конкретно ?


> можно чуть попа


насчет попы - это не ко мне)


 
Digitman ©   (2004-08-12 14:38) [4]

TUNICODE_STRING = packed record
   Length: Word;
   MaximumLength: Word;
   Buffer: PWideChar;
 end;
 TNtUnicodeString = TUNICODE_STRING;
 PNtUnicodeString = ^TNtUnicodeString;

TRTL_USER_PROCESS_PARAMETERS = packed record
 MaximumLength    : Cardinal;
 Length           : Cardinal;
 Flags            : Cardinal;
 DebugFlags       : Cardinal;
 ConsoleHandle    : THandle;
 ConsoleFlags     : Cardinal;
 StandardInput    : Pointer;
 StandardOutput   : Pointer;
 StandardError    : Pointer;
 CurrentDirectory : TCURDIR;
 DllPath          : TUNICODE_STRING;
 ImagePathName    : TUNICODE_STRING;
 CommandLine      : TUNICODE_STRING;  
 Environment      : Pointer;
 StartingX        : Cardinal;
 StartingY        : Cardinal;
 CountX           : Cardinal;
 CountY           : Cardinal;
 CountCharsX      : Cardinal;
 CountCharsY      : Cardinal;
 FillAttribute    : Cardinal;
 WindowFlags      : Cardinal;
 ShowWindowFlags  : Cardinal;
 WindowTitle      : TUNICODE_STRING;
 DesktopInfo      : TUNICODE_STRING;
 ShellInfo        : TUNICODE_STRING;
 RuntimeData      : TUNICODE_STRING;
//   +0x090 CurrentDirectores : [32] _RTL_DRIVE_LETTER_CURDIR
end;

TPEB = packed record
{000}   InheritedAddressSpace : ByteBool;
{001}   ReadImageFileExecOptions : ByteBool;
{002}   BeingDebugged    : ByteBool;
{003}   SpareBool        : ByteBool;
{004}   Mutant           : Pointer;
{008}   ImageBaseAddress : Pointer;
{00C}   LdrData          : PPEB_LDR_DATA; { Modules list }
{010}   ProcessParameters : PRTL_USER_PROCESS_PARAMETERS; { _RTL_USER_PROCESS_PARAMETERS }
{014}   SubSystemData    : Pointer;
{018}   ProcessHeap      : Pointer;
{01C}   FastPebLock      : PRTLCriticalSection;
{020}   FastPebLockRoutine : Pointer;
{024}   FastPebUnlockRoutine : Pointer;
{028}   EnvironmentUpdateCount : Cardinal;
{02C}   KernelCallbackTable : Pointer;
{030}   SystemReserved   : Cardinal;
{034}   ExecuteOptions   : Cardinal; {Pos 0, 2 Bits, SpareBits  : Pos 2, 30 Bits }
{038}   FreeList         : Pointer; { _PEB_FREE_BLOCK }
{03C}   TlsExpansionCounter : Cardinal;
{040}   TlsBitmap        : Pointer;
{044}   TlsBitmapBits    : array[0..1] of Cardinal;
{04C}   ReadOnlySharedMemoryBase : Pointer;
{050}   ReadOnlySharedMemoryHeap : Pointer;
{054}   ReadOnlyStaticServerData : Pointer;
{058}   AnsiCodePageData : Pointer;
{05C}   OemCodePageData  : Pointer;
{060}   UnicodeCaseTableData : Pointer;
{064}   NumberOfProcessors : Cardinal;
{068}   NtGlobalFlag     : Cardinal;
{06C}   Reserved0        : DWord;
{070}   CriticalSectionTimeout : TLARGEINTEGER;
{078}   HeapSegmentReserve : Cardinal;
{07C}   HeapSegmentCommit : Cardinal;
{080}   HeapDeCommitTotalFreeThreshold : Cardinal;
{084}   HeapDeCommitFreeBlockThreshold : Cardinal;
{088}   NumberOfHeaps    : Cardinal;
{08C}   MaximumNumberOfHeaps : Cardinal;
{090}   ProcessHeaps     : Pointer;
{094}   GdiSharedHandleTable : Pointer;
{098}   ProcessStarterHelper : Pointer;
{09C}   GdiDCAttributeList : Cardinal;
{0A0}   LoaderLock       : PRTLCriticalSection;
{0A4}   OSMajorVersion   : Cardinal;
{0A8}   OSMinorVersion   : Cardinal;
{0AC}   OSBuildNumber    : Word;
{0AE}   OSCSDVersion     : Word;
{0B0}   OSPlatformId     : Cardinal;
{0B4}   ImageSubsystem   : Cardinal;
{0B8}   ImageSubsystemMajorVersion : Cardinal;
{0BC}   ImageSubsystemMinorVersion : Cardinal;
{0C0}   ImageProcessAffinityMask : Cardinal;
{0C4}   Reserved2        : array[0..34] of DWord;
{150}   Reserved3        : DWord;
{154}   Reserved4        : array[0..31] of DWord;
{1D4}   Win32WindowStation : THandle;
{1D8}   Reserved5        : DWord;
{1DC}   Reserved6        : DWord;
{1E0}   CSDVersion       : PWord;
{1E4}   Reserved7        : DWord;
{1E8}
 end;

PPEB = ^TPEB;


 
Digitman ©   (2004-08-12 14:39) [5]

указатель на структуру TPeb м.б. получен так

function GetCurrentPEB: PPEB;
asm
 mov   eax, fs:[TTeb.Peb]
end;


 
Sur   (2004-08-12 14:40) [6]

что значит внедрять в процесс свою нить?


 
Игорь Шевченко ©   (2004-08-12 14:40) [7]

Digitman ©   (12.08.04 14:39)

Можно и без внедрения, через ReadProcessMemory :)


 
Sur   (2004-08-12 14:42) [8]

ладно счас попробую.
Спасибо за ответы


 
Digitman ©   (2004-08-12 14:46) [9]


> Игорь Шевченко ©   (12.08.04 14:40) [7]


не задавался целью выяснить, можно ли так ..

а fs-то куда кажет ?


 
Игорь Шевченко ©   (2004-08-12 14:50) [10]

Digitman ©   (12.08.04 14:46) [9]


> не задавался целью выяснить, можно ли так ..


http://www.schevchenko.net.ru/SRC/EnumFunctions_60.zip - так тут как раз пример.


> а fs-то куда кажет ?


А он всегда по одному адресу - $7FFDF000


 
Digitman ©   (2004-08-12 14:54) [11]


> Игорь Шевченко ©   (12.08.04 14:50) [10]


за Винтукей - да ... а в прочих НТbased-системах ? здесь утверждать не могу


 
Игорь Шевченко ©   (2004-08-12 15:07) [12]

Digitman ©   (12.08.04 14:54) [11]


> а в прочих НТbased-системах ? здесь утверждать не могу


Начиная, по крайней мере, с NT4. Это документировано, насколько я помню.



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.027 c
1-1094574745
hgd
2004-09-07 20:32
2004.09.26
Shape как трапеция


6-1090471072
vlgrig1961
2004-07-22 08:37
2004.09.26
Как сконвертить WAW файл в файл для воспроизведения по модему


14-1094308321
gn
2004-09-04 18:32
2004.09.26
Обзор вирусной активности (август 2004)


1-1094637479
Jay
2004-09-08 13:57
2004.09.26
TMainMenu


3-1093585598
Vilux
2004-08-27 09:46
2004.09.26
Как подключиться к dbf через ADO?