簡體   English   中英

從另一個進程獲取內存

[英]Grabbing memory from another process

在Windows中,可以說我已經使用DLL注入進入另一個進程。 我還對注入的進程進行了一些屏幕截圖,並知道了要提取的數據的位置。 可以說,另一個進程中的數據在0xaaaaaaaa處包含某個值。 如何從該過程中獲取此值,以便可以在注射應用程序中使用它? 既然我已經被注入了流程,我是否可以使用像memcpy這樣的東西?

memcpy(value, 0xaaaaaaaa, 10);

我假設它可能比這更復雜?

編輯:對於下面的響應,我看不到WM_COPYDATA是如何幫助我的,因為它是將數據發送到另一個應用程序,而不是從現有應用程序中檢索數據。

在Windows中,每個進程都處理自己的內存。 這意味着您無法執行像memcpy這樣的具有兩個指向兩個不同進程的內存的指針的操作。

您可以考慮進程間通信的任何選項:內存映射文件,套接字,命名管道,事件窗口消息。

這是有關IPC的更多信息

試用WM_COPYDATA並從MSDN尋求幫助。

Windows支持以下IPC機制:

剪貼板
通訊
資料復制
DDE
文件映射
郵筒
管子
RPC
Windows套接字

此處有更多詳細信息進程間通信

在您的情況下,我將使用WM_COPYDATA消息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM