[英]Grabbing memory from another process
在Windows中,可以說我已經使用DLL注入進入另一個進程。 我還對注入的進程進行了一些屏幕截圖,並知道了要提取的數據的位置。 可以說,另一個進程中的數據在0xaaaaaaaa處包含某個值。 如何從該過程中獲取此值,以便可以在注射應用程序中使用它? 既然我已經被注入了流程,我是否可以使用像memcpy這樣的東西?
memcpy(value, 0xaaaaaaaa, 10);
我假設它可能比這更復雜?
編輯:對於下面的響應,我看不到WM_COPYDATA是如何幫助我的,因為它是將數據發送到另一個應用程序,而不是從現有應用程序中檢索數據。
在Windows中,每個進程都處理自己的內存。 這意味着您無法執行像memcpy這樣的具有兩個指向兩個不同進程的內存的指針的操作。
您可以考慮進程間通信的任何選項:內存映射文件,套接字,命名管道,事件窗口消息。
這是有關IPC的更多信息
您應該能夠使用ReadProcessMemory函數。
試用WM_COPYDATA並從MSDN尋求幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.