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

 找回密碼
 注冊成為正式會員
查看: 989|回復(fù): 0
打印 上一主題 下一主題

[C/C++] 全能逆向安全班1CreateProcess筆記

[復(fù)制鏈接]

5

主題

149

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
79
積分
155
貢獻(xiàn)
0
在線時間
42 小時
注冊時間
2018-9-5
最后登錄
2024-8-27

終身VIP會員

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-6-30 15:36:25 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式

#### 三種編碼
含字符串的結(jié)構(gòu)體或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只對控制臺應(yīng)用有效
  //  NULL,
  //  NULL,
  //  &si,  // 這兩個傳出參數(shù)不填會造成C05
  //  &pi))
  //{
  //  fprintf(stderr, "create Process failed");
  //  return -1;
  //}

  // 會產(chǎn)生三個進(jìn)程:自身,隱藏的控制臺,計算器
  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); // 父進(jìn)程進(jìn)入就緒態(tài)等待子進(jìn)程執(zhí)行完畢
  printf("child complete");

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


```



回復(fù)

使用道具 舉報

 點(diǎn)擊右側(cè)快捷回復(fù)  

本版積分規(guī)則

小黑屋|資源共享吧 ( 瓊ICP備2023000410號-1 )

GMT+8, 2024-12-23 22:56 , Processed in 0.040466 second(s), 13 queries , MemCached On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回復(fù) 返回頂部 返回列表