如題,呼叫的是這篇文章的代碼:http://blog.csdn.net/hyy829903/article/details/12272717
void InjectCode(DWORD dwProcId, LPVOID mFunc, LPVOID Param, DWORD ParamSize)
{
HANDLE hProcess;//遠程句柄
LPVOID mFuncAddr;//申請函式記憶體地址
LPVOID ParamAddr;//申請引數記憶體地址
HANDLE hThread; //執行緒句柄
DWORD NumberOfByte; //輔助回傳值
CString str;
//打開被注入的行程句柄
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcId);
//申請記憶體
mFuncAddr = VirtualAllocEx(hProcess, NULL, 128, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
ParamAddr = VirtualAllocEx(hProcess, NULL, ParamSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
//寫記憶體
WriteProcessMemory(hProcess, mFuncAddr, mFunc, 128, &NumberOfByte);
WriteProcessMemory(hProcess, ParamAddr, Param, ParamSize, &NumberOfByte);
//創建遠程執行緒
hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)mFuncAddr,ParamAddr, 0, &NumberOfByte);
WaitForSingleObject(hThread, INFINITE); //等待執行緒結束
//釋放申請有記憶體
VirtualFreeEx(hProcess, mFuncAddr, 128, MEM_RELEASE);
VirtualFreeEx(hProcess, ParamAddr, ParamSize, MEM_RELEASE);
//釋放遠程句柄
CloseHandle(hThread);
CloseHandle(hProcess);
}
但是,為什么還是會這樣??


難道遠程執行緒函式 有問題??求大神解答!!!!
uj5u.com熱心網友回復:
遠程執行緒函式如圖,我只是想彈出一個資訊框
uj5u.com熱心網友回復:
你這個只是寫入函式的地址是沒用的吧不是所有dll函式在不同行程中都是地址一致的
代碼注入非常復雜,要不然微軟detoursx64也不會收費了
推薦用dll注入就好了
uj5u.com熱心網友回復:
//申請記憶體mFuncAddr = VirtualAllocEx(hProcess, NULL, 128, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
//寫記憶體
WriteProcessMemory(hProcess, mFuncAddr, mFunc, 128, &NumberOfByte);
//創建遠程執行緒
hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)mFuncAddr,ParamAddr, 0, &NumberOfByte);
那如果這樣可以吧執行緒函式寫入到記憶體里嗎?
uj5u.com熱心網友回復:
哈哈,現在終于知道了 為什么崩潰的原因了,將專案修改為Release版本,大家可以參考這篇文章:http://blog.csdn.net/whatday/article/details/8975930


uj5u.com熱心網友回復:
自問自答,分享解決方案,精神可嘉
uj5u.com熱心網友回復:
計算機組成原理→DOS命令→匯編語言→C語言(不包括C++)、代碼書寫規范→資料結構、編譯原理、作業系統→計算機網路、資料庫原理、正則運算式→其它語言(包括C++)、架構……對學習編程者的忠告:
多用小腦和手,少用大腦、眼睛和嘴,會更快地學會編程!眼過千遍不如手過一遍!
書看千行不如手敲一行!
手敲千行不如單步一行!
單步源代碼千行不如單步Debug版對應匯編一行!
單步Debug版對應匯編千行不如單步Release版對應匯編一行!
不會單步Release版對應匯編?在你想單步Release版C/C++代碼片斷的前面臨時加一句DebugBreak();重建所有,然后在IDE中運行。(一般人我不告訴他!
)uj5u.com熱心網友回復:
http://edu.csdn.net/course/detail/2344 C語言指標與匯編記憶體地址-一.代碼要素轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/113998.html
標籤:基礎類
上一篇:求高手幫忙 0x00007FF618BB3C4D 處有未經處理的例外(在 evacuation.exe 中): 0xC0000005: 讀取位置 0xFFFFF
下一篇:在MFC中創建的主、子對話框中使用了Tee Chart控制元件,之前創建非模式對話框的create()不被執行,怎么辦?
