前段日子因為學習記憶體把王艷平老師的書看了一遍綜合了其他書籍,簡單學習做了乙個記憶體修改器,下面是我覺得比較重要的知識,從書上摳了下來
**:類的形式寫的**:
// hellogame.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include"hellogame.h"
game::game(dword processid)
game::~game()
}bool game::compareapage(dword baseaddress, dword value)//搜尋記憶體
dword *buffer;
for (int i = 0; i < 4 * 1024 - 3; i++)
}return true;
}bool game:: findfirst(dword value)
;::getversionex(&vi);
if (vi.dwplatformid == ver_platform_win32_windows)
baseaddress = 4 * 1024 * 1024; // windows 98系列,4mb
else
baseaddress = 640 * 1024; // windows nt系列,64kb
// 在開始位址到2gb的位址空間進行查詢
for (; baseaddress < 2 * onegb; baseaddress += onepage)
isok = false;
return true;
}bool game::findnext(dword value)
;process_information pi;
bool isok=createprocess(null, filename, null, null, false,
create_new_console, null, null, &si, &pi);
if (isok == false)
// 關閉執行緒控制代碼,既然我們不使用它
::closehandle(pi.hthread);
gameplay.toaimprocesshandle = pi.hprocess;
int changevalue;
printf("輸入改變的值");
scanf("%d", &changevalue);
gameplay.findfirst(changevalue);
gameplay.showdata();
while (gameplay.m_gamecount > 1)
}
C 製作記憶體修改器
先看效果圖 其實 搞這個東西 主要是因為 不久前看到乙個c 寫的外掛程式 頓時就來了興趣 當時看了之後 覺得不爽的就是 那個位址是寫死在程式裡面的是固定的 而且是用其他東西掃出來的位址 頓時就覺得不爽了 要這個位址也是自己寫的程式掃出來的那才有成就感 於是呼這東西就這樣誕生了 在做之前 我感覺這東西...
記憶體修改器實現原始碼
include stdafx.h include include include includeusing namespace std dword g arlist 1024 int g nlistcnt handle g hprocess bool writememory dword dwaddr...
Win32 實現記憶體修改器
在遊戲執行中啟動修改器,輸入遊戲當前想要修改的金幣 礦石 木材 的數值 找到程式執行時的程序id,windows為每個程序都分配4gb的虛擬位址空間,我們只需要在虛擬位址空間去遍歷儲存數值與遊戲中數值相同的位址,去修改它即可,但需要注意僅搜尋一次得到的儲存此數值的位址極可能不唯一,故在得到多個位址時...