最近应几个朋友的要求帮他们做一个QQ斗地主的外挂,于是就研究了下。(比较简单,希望大家不要笑化^_^)
网上有做外挂文章,找了,看了,试着理解了,但水平有限,貌似不是很明白,但总的来说就三种
1,封包技术(个人认为是最难的,但是效果出来是最好的,因为里面还涉及到解密技术所以个人认为是有些难度的,工作量达);
2,内存扫描
3,图像识别(个人认为是比较大众化的,也最容易实现的,但效果也是最差的,而且束缚比较的多);
前面2个我不说了,就说第三个我所用的方法以及个人认为关键的地方以及部分代码
1,不用说肯定是findWindow 找斗地主窗口句柄,然后 insertfrm := TFrmInsert.CreateParented(DDZhwd);//可以实现把窗口插入到游 戏面板中了。。。
2, GetWindowRect(DDZhwd, DDZr);//获得斗地主场景图片
//开始获取QQ斗地主界面图片
DDZWorkbitmap := TBitmap.Create; //创建内存存储斗地主界面图片,用来分析象素点
DDZhdc := GetWindowDC(DDZhwd); //获取界面设备场景
CanvasCource := TCanvas.Create;
CanvasCource.Handle := DDZhdc;
DDZWorkbitmap.Width := DDZr.Right - DDZr.Left; //斗地主界面距离
DDZWorkbitmap.Height := DDZr.Bottom - DDZr.Top;
DDZWorkbitmap.Canvas.CopyRect(DDZWorkbitmap.Canvas.ClipRect, CanvasC