Search

CreateProcess()

[- Disclaimer -] 아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
CreateProcess()
Process 생성 함수
Parameter1에 전달되는 Argument1
통상 NULL
Parameter2에 전달되는 Argument2
파일 경로
파일명만 명시 시 파일 표준 검색 경로부터 검색
Parameter9에 전달되는 Argument9
LPSTARTUPINFO 구조체 정보를 전달 받아 Process 생성 시 이에 맞는 처리 수행
Parameter10에 전달되는 Argument10
PROCESS_INFORMATION 구조체 정보를 전달받아 Process 생성 결과 정보 저장
Return 값
나도 모른다 ㅇㅅㅇ
BOOL CreateProcess ( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_RIBUTES lpThreadAttributes, BOOL blnheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO pStartupinfo, LPPROCESS_INFORMATION lpProcessInfomation // )
Plain Text
복사
LPSTARTUPINFO 구조체 정의
typedef struct _STARTUPINFO { DWORD ch; //STARTUPINFO 구조체 변수 크기 LPTSTR lpReserved; LPTSTR lpDesktop; LPTSTR lpTitle; //캡션 내용 DWORD dwX; //Process의 윈도우 X 좌표 DWORD dwY; //Process의 윈도우 Y 좌표 DWORD dwXSize; //Process의 윈도우 가로 창 크기 DWORD dxYSize; //Process의 윈도우 세로 창 크기 DWORD dwXCountChars; DWORD dwYCountChars; DWORD dwFillAttribute; DWORD dwFlags; //설정된 맴버 정보 WORD wShowWindow; WORD cbReserved2; LPBYTE lpReserved2; HANDLE hStdInput; HANDLE hStdOutput; HANDLE hStdError; } STARTUP, *LPSTARTUPINFO;
Plain Text
복사
GetCurrentDirectory()
✦ 현재 Directory 경로 확인
✦ Parameter1에 전달되는 Argument1
✧ 몰라
✦ Parameter2에 전달되는 Argument2
✧ 몰라
✦ Return 값
✧ 성공
→ 현재 Directory 경로 출력
✧ 실패
→ 0
DWORD GetCurrentDirectory(DWORD nBufferLength, LPTSTR lpBuffer);
Plain Text
복사
SetCurrentDirectory()
✦ 현재 Directory 경로 변경
파일 표준 검색 경로
✦ 파일 Open 시 파일 표준 검색 경로에 따라 파일을 찾음
✧ 1) 실행 중인 Process의 실행 파일이 존재하는 Directory
✧ 2) 실행 중인 Process의 현재 Directory
✧ 3) Windows System Directory
✧ 4) Windows Directory
✧ 5) 환경 변수 PATH에 저장된 Directory