日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么多次调用c语言dll,c-如何从注入到同一程序的另一个.dll中调用...

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么多次调用c语言dll,c-如何从注入到同一程序的另一个.dll中调用... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在過去,我們使用CreateRemoteThread并將LoadLibraryA用作lpStartAddress的地址(該地址在所有進程中都相同).訣竅是使用VirtualAllocEx分配要注入的DLL名稱,并將其用作lpParameter.實際上,您的線程使用您要注入的DLL名稱調用LoadLibraryA.加載Dll時,將調用Dllmain,并且可以在附加dll的時間內在Dllmain中運行代碼(DLL_PROCESS_ATTACH).

link在執行此操作時具有一些非常好的信息.但是,此技術依賴于Dllmain函數.如果可以使用Dllmain,則此機制可能會起作用.該文章的步驟摘要提供了一個概述:

現在,我們可以通過以下步驟總結該技術:

Retrieve a HANDLE to the remote process (OpenProces).

Allocate memory in the remote process's address space for injected data (VirtualAllocEx).

Write a copy of the initialised INJDATA structure to the allocated memory (WriteProcessMemory).

Allocate memory in the remote process's address space for injected code.

Write a copy of ThreadFunc to the allocated memory.

Start the remote copy of ThreadFunc via CreateRemoteThread.

Wait until the remote thread terminates (WaitForSingleObject).

Retrieve the result from the remote process (ReadProcessMemory or GetExitCodeThread).

Free the memory allocated in Steps #2 and #4 (VirtualFreeEx).

Close the handles retrieved in Steps #6 and #1 (CloseHandle).

我看到您對過多信息的評論.不確定我是否完全理解.但是Dllmain有一些限制,例如不能使用大多數Win32 API調用.有一些例外,一種是CreateThread.您是否考慮過拆線工作?如果在Dllmain中使用CreateThread,則它會被有效阻止,直到Dllmain退出.因此,一旦Dllmain返回,線程將執行.

總結

以上是生活随笔為你收集整理的怎么多次调用c语言dll,c-如何从注入到同一程序的另一个.dll中调用...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。