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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

做外挂小记(3)--C#调用读写内存类篇

發(fā)布時(shí)間:2025/3/21 C# 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 做外挂小记(3)--C#调用读写内存类篇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://hi.baidu.com/859729391/blog/item/d0465b86c252c72dc65cc3a5.html

?

這篇很簡(jiǎn)單了...呵呵......完全是C#知識(shí),主要是如何調(diào)用方法..

我們可以把上面那一篇編譯成一個(gè)dll類庫(kù)來調(diào)用,,或者直接接著寫..

?

那么我就直接寫了...

?

public class test

{

??? string pid=getpid.pid;//取得pid

???? read_and_write.write(string pid,IntPtr address,int wordin)//調(diào)用寫,沒有返回值的

??? string a=read_and_write.write(string pid,IntPtr address,int wordin)//調(diào)用讀,有返回值

//OK完了..變量請(qǐng)自己聲明,呵呵...如何找內(nèi)存地址實(shí)現(xiàn)亂飛呀,秒殺呀,啥的,就自己去外掛論壇

//看看咯...呵呵...}

}

下面我總結(jié)一下取得PID的集中方法

首先是通用的方法

就是通過API的FINDWINDOW一系列來獲取

hand=FindWindow(NULL, "就上魔力");
?? //api的findwindow方法,其中兩個(gè)參數(shù)是(類名,窗口名),只需要其中一個(gè)就能找到窗口句柄,沒有那個(gè)可以???

//填NULL,表示空...

?

GetWindowThreadProcessId(hand,&pidwin);//通過窗口句柄hand找到游戲pid

ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, pidwin);//通過pid找到進(jìn)程句柄,并且得到

?

其次就是C#的方法,當(dāng)然C#也可以調(diào)用API來實(shí)現(xiàn)

??? public class getpid//定義取得pid的類

?? ?? {?????? public string pid;//為了省事,我直接聲明一個(gè)公共字段了,當(dāng)然你也可以寫屬性寫構(gòu)造啦!

?????????? System.Diagnostics.Process[] processes = Process.GetProcesses();
???????????
//獲得當(dāng)前所有進(jìn)程列表 ,注意是個(gè)數(shù)組,除非你的電腦只有一個(gè)進(jìn)程
??????????? foreach (Process a in processes)?? //遍歷每一個(gè)進(jìn)程 ,如果出錯(cuò)請(qǐng)聲明一下a ??
??????????? {
??????????????? if(a.ProcessName.ToString()=="xxx.exe")//如果進(jìn)程名等于xxx.exe,可以用資源管理器查看

??????????????????? {

????????????????????????? pid= a.Id.ToString();//就輸出他的pid,這樣就可以獲得pid了

//當(dāng)然Process a的屬性還有很多,總之很強(qiáng)大,例如?? a.MachineName.ToString();//獲取關(guān)聯(lián)進(jìn)程機(jī)器名
//???????????????????????????????????????????????????????????????????????????? a.MainWindowTitle.ToString();//獲取主窗口的窗口名

//紅色部分可以任意替換,如果你不知道進(jìn)程名,知道窗口名,就用a.MainWindowTitle.ToString()="記事本"

???????????????? }

最后C#還有另外一種方法,其代碼如下(不做解釋咯)

using System.Management;//需要此命名空間

public int pid(String name)
??????? {
??????????? try
??????????? {
??????????????? string pid = "";

ObjectQuery oQuery = new ObjectQuery("select * from Win32_Process where Name='" + name + "'");
??????????????? ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oQuery);
??????????????? ManagementObjectCollection oReturnCollection = oSearcher.Get();

????????????????
??????????????? foreach (ManagementObject oReturn in oReturnCollection)
??????????????? {
??????????????????? pid = oReturn.GetPropertyValue("ProcessId").ToString();

??????????????? }
??????????????? return Convert.ToInt32(pid);

??????????????
??????????? }
??????????? catch
??????????? {
??????????????? MessageBox.Show("呵呵,你還沒開游戲,我說得對(duì)不?");
??????????????? Application.Exit();
??????????????? return 0;
???????????????
??????????? }

下一小記來說說封包類的.......目前正在學(xué)習(xí)中

轉(zhuǎn)載于:https://www.cnblogs.com/l1b2q31/articles/2173718.html

總結(jié)

以上是生活随笔為你收集整理的做外挂小记(3)--C#调用读写内存类篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。