資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡安全教程|rigasin.com|我的開發(fā)技術隨記

標題: 全能逆向安全班1CreateProcess筆記 [打印本頁]

作者: allendoyle    時間: 2020-6-30 15:36
標題: 全能逆向安全班1CreateProcess筆記

#### 三種編碼
含字符串的結構體或api都分為寬窄版本

寬字節(jié)  wchar_t

窄字節(jié) char

兼容模式 TCHAR

utf-8  u8"張三"

#### CreateProcess
```c++
#include <stdio.h>
#include <windows.h>

int main()
{
  STARTUPINFO si;
  PROCESS_INFORMATION pi;

  ZeroMemory(&si, sizeof(si));
  ZeroMemory(&pi, sizeof(pi));

  //if (!CreateProcess(NULL, // 必須為全路徑,不能加參數(shù)                       
  //  "\"C:\\Program Files\\WinHex\\WinHex64.exe\" -max",  // 可以不是全路徑,有空格用引號括起來,寬字節(jié)版本下此參數(shù)不能為常量字符串
  //  NULL,
  //  NULL,
  //  FALSE,
  //  CREATE_NO_WINDOW, // CREATE_NO_WINDOW只對控制臺應用有效
  //  NULL,
  //  NULL,
  //  &si,  // 這兩個傳出參數(shù)不填會造成C05
  //  &pi))
  //{
  //  fprintf(stderr, "create Process failed");
  //  return -1;
  //}

  // 會產生三個進程:自身,隱藏的控制臺,計算器
  if (!CreateProcess("C:\\Windows\\SysWOW64\\cmd.exe", // 必須為全路徑,不能加參數(shù)                  
    "/c calc",  // 可以不是全路徑,有空格用引號括起來,寬字節(jié)版本下此參數(shù)不能為常量字符串
    NULL,
    NULL,
    FALSE,
    CREATE_NO_WINDOW, // 只能用于隱藏控制臺
    NULL,
    NULL,
    &si,  // 這兩個傳出參數(shù)不填會造成C05
    &pi))
  {
    fprintf(stderr, "create Process failed");
    return -1;
  }

  WaitForSingleObject(pi.hProcess, INFINITE); // 父進程進入就緒態(tài)等待子進程執(zhí)行完畢
  printf("child complete");

  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
    return 0;
}


```








歡迎光臨 資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡安全教程|rigasin.com|我的開發(fā)技術隨記 (http://rigasin.com/) Powered by Discuz! X3.4