[原始碼和文件分享]在DLL中建立共享記憶體
背景
我們都知道在 32 位系統上,每個程序都有自己 4GB 大小的獨立空間,互不影響。當然,對核心瞭解的同學則會質疑說,4GB 大小的內容可以大致分為兩部分,低 2 GB記憶體空間是使用者地址空間,高 2 GB是核心地址空間,而核心地址空間是共享的,並非獨立。是的,這沒錯。所以,本文中所指的獨立空間是使用者地址空間。
舉個例子來說,程序1 的 0x400000 記憶體地址和 程序2 中 0x400000 記憶體地址是沒有任何關聯。任意修改其中一個記憶體裡的資料,是不影響另一個的。這邊是程序獨立性。
但是,本文要介紹的這個知識點,就是要突破這個獨立性的顯示,建立程序共享記憶體。確切的說是在DLL中建立共享記憶體,就是在DLL中建立一個變數,然後DLL被載入到多個程序空間,只要其中一個程序修改了該變數的值,其他程序DLL中的這個值也會改變,就相當於多個程序共享一塊記憶體。
參考文件和完整的文件和原始碼下載地址:
相關推薦
[原始碼和文件分享]在DLL中建立共享記憶體
背景 我們都知道在 32 位系統上,每個程序都有自己 4GB 大小的獨立空間,互不影響。當然,對核心瞭解的同學則會質疑說,4GB 大小的內容可以大致分為兩部分,低 2 GB記憶體空間是使用者地址空間,高 2 GB是核心地址空間,而核心地址空間是共享的,並非獨立。是的,這沒錯。所以,本文中所指的獨
[原始碼和文件分享]基於過載演算法的記憶體洩漏檢測和記憶體越界檢測
通過過載`new`,`delete`實現對在動態記憶體分配中記憶體越界和記憶體洩露的自動檢測 1. 記憶體洩漏 1.1 簡介 `記憶體洩漏`是當程式不正確地進行記憶體管理時出現的一種資源洩漏,表現為程式不再需要使用的記憶體空間並沒有及時被釋放掉。記憶體洩漏並非指實體記憶體的消失,而是在程
[原始碼和文件分享]根據PE檔案格式從匯入表中獲取載入的DLL並遍歷匯入函式名稱和地址
背景 瞭解 PE 檔案格式,對於做一些資料分析都是比較重要的基礎。在 PE 檔案格式中,理解匯入表以及匯出表的工作原理,又是重中之重。理解了 PE 格式的匯入表,就可以修改 PE 格式進行 DLL 注入,也可以修改匯入表實現 API HOOK 等。理解了 PE 格式的匯出表,可以不需要 WIN3
[原始碼和文件分享] 仿QQ和飛秋並支援語音視訊白板螢幕共享的即時聊天軟體
功能需求分析 使用者端的基本聊天資訊傳送,這些基本聊天資訊包括文字和圖片。文字和圖片聊天是聊天軟體最基礎的功能。使用者通過輸入IP來查詢使用者,並申請加為好友,在對方同意加為好友後,線上使用者列表就會更新使用者,把加入的使用者新增到使用者列表中。這樣,兩個使用者之前就可以實現通訊了。在資訊
[原始碼和文件分享]基於Python的Pygame庫實現的仿微信遊戲中的飛機大戰小遊戲
不知大家是否還記得當時微信上風靡一時的打飛機小遊戲,通過控制我方飛機的上下左右移動,發射子彈來擊毀敵機,增加得分。這是一款簡單操作易上手又很有趣味性的遊戲,我使用python作為基本語言,利用pygame仿照微信版本完成了這款低配版飛機大戰遊戲。 我方飛機會按時的不斷髮射子彈,玩家通過上下左右的方向鍵來躲避
[原始碼和文件分享]QT實現的基於TCP Socket的共享白板
一、課程設計題目 共享白板:實現基於伺服器轉發的多點間的文字、簡單圖案等資訊的實時共享。 二、實驗要求 類似於共享電子白板系統,是一個伺服器端和多個同步的客戶端進行資訊交流的過程。在伺服器端,我們記錄加入伺服器要通過該伺服器進行資訊共享的白板的相應的IP資訊以及它們相應的動作;在客戶端,
[原始碼和文件分享]建立計劃任務實現開機自啟動
背景 想必實現程式開機自啟動,是很常見的功能了。無論是惡意程式,還是正常的應用軟體,都會提供這個功能,方便使用者的使用。程式開機自啟動,顧名思義,就是計算機開機後,不用人為地去執行程式,程式就可以自己執行起來。對於這個功能的,一直都是殺軟重點監測的地方。因為,對於病毒來說,重要的不是如何被破壞,
[原始碼和文件分享]建立系統服務實現開機自啟動
背景 想必實現程式開機自啟動,是很常見的功能了。無論是惡意程式,還是正常的應用軟體,都會提供這個功能,方便使用者的使用。程式開機自啟動,顧名思義,就是計算機開機後,不用人為地去執行程式,程式就可以自己執行起來。對於這個功能的,一直都是殺軟重點監測的地方。因為,對於病毒來說,重要的不是如何被破壞,
[原始碼和文件分享]核心KUSER_SHARED_DATA共享區域的驗證
背景 無論是在 32 位系統記憶體分佈,還是在 64 位系統記憶體分佈中,我們知道高地址空間分配給系統核心使用,低地址空間分配給使用者程序使用。 事實上,使用者空間和核心空間其實有一塊共享區域,大小為 4 KB。它們的記憶體地址雖然不一樣,但是它們都是有同一塊實體記憶體映射出來的。現在,本文
[原始碼和文件分享]根據PE檔案格式從匯出表中獲取指定匯出函式的地址
背景 瞭解 PE 檔案格式,對於做一些資料分析都是比較重要的基礎。在 PE 檔案格式中,理解匯入表以及匯出表的工作原理,又是重中之重。理解了 PE 格式的匯入表,就可以修改 PE 格式進行 DLL 注入,也可以修改匯入表實現 API HOOK 等。理解了 PE 格式的匯出表,可以不需要 WIN3
[原始碼和文件分享]基於WIN32彙編實現的仿Windows計算器
使用Win32程式設計設計一個功能及介面風格類似於Windows計算器的計算器程式,只要求實現標準型計算器。 主要實現的功能:包含基本的四則運算、倒數運算、平方根運算。並支援儲存區的儲存、清除、調出、累加等功能。 關鍵詞:win32,Windows計算器,彙編,四則運算,倒數運算,平方根運算
[原始碼和文件分享]深度學習演算法實驗平臺網站的設計與實現
本文課題構建一個深度學習演算法實驗平臺,是為頸動脈醫療影象深度學習識別斑塊提供服務的。製作一個整合的深度學習工具包,頸動脈醫療影象的深度學習程式碼都可以在本平臺上執行,平臺基於TensorFlow、Caffe、CNTK、Keras、Theano等多種深度學習框架並可以部署在同一硬體環境,因此可以測試
[原始碼和文件分享]基於C++的資料庫可擴容雜湊
一、專案介紹 主要涉及可擴充套件雜湊在資料庫中的應用。 讀入由 tpc-h 生成的 lineitem.tbl,以 L_ORDERKEY 屬性作為鍵值將記錄放入合適的雜湊桶內。讀入測試檔案 testinput.in 內的資料,資料中包含多個需要查詢的鍵值。將通過鍵值查詢得到的所有記錄都輸出到
[原始碼和文件分享]基於Newban的Nancyj字型Email簽名工具
一 需求分析 Newban是一個輸出mail簽名的工具,能夠在終端將字元進行“圖形化”輸出。本程式就是用所給字型檔案,在螢幕上輸出該字型的簽名,並要求實現如下功能: 能設定輸出寬度 能設定輸出對齊方式,可以設定左對齊、居中對齊、右對齊 能指定字型 基本要
[原始碼和文件分享]基於C語言實現的流星雨模擬課程設計
一、課程設計內容及要求 程式模擬一組流星飛向地面的情景。地面用多行#來表示,流星用大寫字母不表示。程式產生一組流星(比如10個),從螢幕頂部下降飛向地面。一組流星中,每個流星的字元顏色是隨機的,下降的位置是隨機的,下降的速度也是隨機的。一個流星下落只能去掉一個#號,當最後一行地面有#被去掉時,程
[原始碼和文件分享]基於C++的圖書管理系統
一、需求分析 圖書管理系統功能如下: 新增書籍 刪除書籍:當系統中存在此書時,刪除該書籍,否則提示使用者刪除失敗 借閱書籍:當系統中存在此書且未被借閱時,將書的狀態設定為“借出”,否則提示使用者借閱失敗 歸還書籍:當系統中存在未歸換的該書時,將書的狀態設
[原始碼和文件分享]基於C++的多項式計算器
一、 實驗環境 1.1 程式語言和開發工具 語言採用ANSI C++(C++11) 開發工具:vim,g++,git,Visual Stdio(用於生成exe檔案) 1.2 編碼規範 編碼規範中所有沒有涉及到的內容,參見googlestyle C++
[原始碼和文件分享]基於C++的學生選課管理系統的設計與實現
一 需求分析 系統新增課程:將一門課程加入到系統資料中。課程提交重複時給出提示資訊 系統刪除課程:以課程編號為索引刪除課程。系統無此課程時給出提示 課程新增學生:把學生的姓名、學號等資訊加入到課程中。學號重複時給出提示資訊 課程刪除學生:以學號為索引從課程中
[原始碼和文件分享]基於C++的物資管理系統的設計與實現
一 需求分析 程式需實現以下功能: 新物資資訊錄入(編號、名稱、庫存) 查詢已錄入的所有物資資訊(編號或名稱為索引) 新增物資資訊(編號或名稱為索引) 領物資並生成領料單(編號或名稱為索引) 瀏覽領料單或物資庫存清單 物資資訊儲存,建
[原始碼和文件分享]基於C++的庫存管理系統設計與實現
一 需求分析 1.1 總體要求 運用面向物件程式設計知識,利用C++語言設計和實現一個“庫存管理系統設計”,主要完成對商品的銷售、統計和簡單管理。在實現過程中,需利用面向物件程式設計理論的基礎知識,充分體現出C++語言關於類、繼承和封裝等核心概念,每一個類應包含資料成員和成員函式。 1.