[- 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



