成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ReadProcessMemory可不是一個進程間通信的好方法

開發 前端
我們可以通過調整進程的權限來實現這個功能,具體來說,就是對正在與之通信的進程的所有者授予 PROCESS_VM_READ 權限,但這樣會將安全的大門開的太大。

有時候我看到有人會使用 ReadProcessMemory 這個 API 來實現進程間通信,老實說吧,我覺得這不是一個明智的選擇,原因有如下幾條。

首先,你不能使用 ReadProcessMemory 來跨越安全上下文 (Security Contexts),至少你需要做一些額外的工作才能做到。如果用戶通過 “runas” 來使用另一個用戶身份來運行程序,則這兩個進程將不能通過 ReadProcessMemory 來進行進程間數據的傳輸。

我們可以通過調整進程的權限來實現這個功能,具體來說,就是對正在與之通信的進程的所有者授予 PROCESS_VM_READ 權限,但這樣會將安全的大門開的太大。使用該用戶標識運行的任何進程都會讀取到共享的數據,而不僅僅是要與之通信的進程。如果你正在與較低特權的進程進行通信,則只是將數據暴露給你感興趣的進程以外的較低特權的進程。

更重要的是,一旦授予了 PROCESS_VM_READ 權限,你就會將其授予您的整個進程。該進程不僅可以讀取你嘗試共享的數據,還可以讀取映射到你的地址空間的任何其他內容。它可以讀取所有全局變量,可以讀取堆,可以從堆棧中讀取變量。它甚至可以損壞堆棧的數據結構!

什么?僅僅是授予讀取訪問權限就損壞堆棧?

如果進程將其堆棧增長到堆棧保護頁中,則未經處理的異常篩選器將捕獲保護異常并擴展堆棧。但是,當它發生在私有的“捕獲所有異常”處理程序(例如 IsBadReadPtr 函數使用的處理程序)中時,它將私下處理,并且不會到達未處理的異常篩選器。結果,堆棧不會增長,不會創建新的堆棧保護頁面。當堆棧正常增長到并超過過早提交的保護頁的點時,通常的堆棧保護異?,F在是訪問沖突,導致線程死亡,并可能擴散到隨之而來的進程。

你可能認為,可以捕獲堆棧訪問沖突并嘗試干凈地關閉線程,但由于多種原因,這是不可能的。首先,結構化異常處理在遇到異常的線程堆棧上執行。如果該線程具有損壞的堆棧,則無法調度該異常,因為異常篩選器想要在其上運行的堆棧不再可行。

即使你可以以某種方式在某種“緊急堆棧”上運行這些異常過濾器,但仍然無法解決問題。在異常點,線程可能處于任何中間d的代碼流。也許它是在堆管理器內部,堆鎖持有,堆數據結構處于不斷變化的狀態。為了使進程保持活動狀態,需要使堆數據結構保持一致并釋放堆鎖。但是你不知道該怎么做。

還有許多其他進程間通信機制可供使用。其中之一是匿名共享內存,我幾年前討論過。匿名共享內存仍然存在一個問題,即在與你與之通信的同一令牌下運行的任何進程都可以讀取共享內存塊,但至少公開的范圍僅限于你希望明確想要共享的數據。

(從某種意義上說,沒有比這更好的了。你正在與之通信的進程一旦從你那里獲得數據,就可以對數據做任何它想做的事情。即使你以某種方式安排了只有目標進程可以訪問內存,也沒有什么能阻止該目標進程將其復制到共享內存塊之外的某個地方,此時任何運行相同令牌的人都可以從目標進程中讀取數據。)

總結

目前小僧僅僅使用到了共享內存,慚愧慚愧。
什么郵槽管道剪貼板,我是一個都沒有聽說過。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2017-08-06 00:05:18

進程通信開發

2015-07-02 16:55:15

數據中心運維成本

2022-04-13 10:58:53

顆粒固態硬盤主控板

2022-06-06 10:20:59

CPUCPU 使用率CPU 負載

2016-01-26 13:01:21

戴爾云計算

2024-03-21 10:48:21

JS重載Java

2017-12-13 14:33:55

谷歌蘋果亞馬遜

2010-01-05 10:00:48

Linux進程間通信

2020-11-18 09:06:04

Python

2013-07-26 15:40:14

Cookies

2013-02-25 10:18:08

ThreadMsgC#

2021-09-27 10:07:39

Python 開發編程語言

2020-11-04 07:17:42

Nodejs通信進程

2017-04-07 14:53:32

華為

2011-06-22 17:09:50

QT 進程 通信

2021-01-18 05:11:14

通信Nodejs進程

2018-05-30 13:58:02

Linux進程通信

2019-05-08 11:10:05

Linux進程語言

2018-01-12 14:35:00

Linux進程共享內存

2013-03-28 13:14:45

AIDL進程間通信Android使用AI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产视频不卡一区 | 午夜无码国产理论在线 | 国产在线一区二区三区 | 91免费版在线观看 | 九九亚洲 | 久久久网| 精品视频在线播放 | 欧美a级网站 | 色久伊人 | 精品久久久久久久久久久久久 | 欧美精品一区二区三区四区 在线 | 一区二区三区免费网站 | 国产日韩精品一区 | 久久久久国产一级毛片 | 97国产爽爽爽久久久 | 免费成人高清在线视频 | 国产精品高潮呻吟久久久久 | 日韩欧美中文在线 | 在线日韩欧美 | 欧美日韩久久精品 | 国产高清精品一区二区三区 | 色播久久久 | 亚洲欧美一区二区三区国产精品 | 日日干夜夜操 | 欧美一区二区三区 | 最新国产精品 | 亚洲精品久久久一区二区三区 | 精品日韩欧美一区二区 | 色婷婷国产精品 | 免费精品久久久久久中文字幕 | 欧美在线视频一区 | 日本午夜一区二区三区 | 韩国主播午夜大尺度福利 | 成人三级视频在线观看 | 国产日韩欧美一区 | 国产一区视频在线 | 九九热免费看 | 久久久久久av | 97色伦网 | 亚洲欧美第一视频 | 国产精品一区二区三区四区 |