自己写的QQ美女找茬外挂

这里首先说一下原理:利用截屏的 技术,讲当前QQ美女找茬的图片截屏下来,然后分析两幅图片相同位置的像素点,当两个点的差大于某个阀值时,将该点的颜色设置为红色。
下面根据 源码具体讲解:
    1.首先通过VC++的工具SPY++得到美女找茬 窗口标题:“ 大家来找茬”,通过函数::FindWindow即可获得美女找茬窗口的句柄
  hGame=::FindWindow(NULL,"大家来找茬");
   2.接着我们就可以通过该句柄获得美女找茬窗口的大小和设备上下文:
  RECT rect;
  ::GetWindowRect(hGame,&rect);
  HDC hDC;
  hDC=::GetDC(hGame);
   3.通过设备上下文,我们呢可以将美女找茬窗口复制到一个 内存位图中,方便我们对图片进行分析:
  CDC dcQQ;
  dcQQ.Attach(hDC);
  CDC dcMem;
  CBitmap bm;
  dcMem.CreateCompatibleDC(&dcQQ);
  bm.CreateCompatibleBitmap(&dcQQ,rect.right-rect.left,rect.bottom-rect.top);
  dcMem.SelectObject(&bm);
  dcMem.BitBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&dcQQ,0,0,SRCCOPY);
   4.由于获得的图片包括了整个窗口,而我们只需要对图片部分进行分析,所以这里我通过SPY++查找到第一幅图片左上角、右上角和左下角相对于窗口的位置分别为(11 195)、(503 195)、(11  635),第二幅图假设相对于第一幅图的偏移为整个窗口宽度的一半(rect.right-rect.left)/2,实际在实验中发现实际的偏移为(rect.right-rect.left)/2-3.这样我们就可以得到图片的宽度:503-11=492,高度635-195=440.
   5.两幅图片中相同位置的像素点y坐标相同,x坐标相差(rect.right-rect.left)/2-3,这样我们可以取得两幅图中对应位置的两点颜色并进行比较,若超过某个阀值,则将第一幅图该点颜色设置为红色
     
    int width=503-11;
    int height=635-195;
    int www=(rect.right-rect.left)/2-3;

    COLORREF *p1=new COLORREF[width*height];
    COLORREF *p2=new COLORREF[width*height];

    for (int i=0;i<height;++i)
    {
        for (int j=0;j<width;++j)
        {
            p1[i*width+j]=dcMem.GetPixel(11+j,i+195);
            p2[i*width+j]=dcMem.GetPixel(11+j+www,i+195);

            if ((p1[i*width+j]<=(p2[i*width+j]-50))||(p1[i*width+j]>=(p2[i*width+j]+50)))
            {
                dcMem.SetPixel(11+j,i+195,RGB(255,0,0));
            }
        }
    }



   6.获得软件视图的设备上下文pDC,便可将QQ美女找茬的图片显示到我们的软件中,并标记处两幅图片不同的位置。
    
 pDC->BitBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&dcMem,0,0,SRCCOPY);


   7.我们还可以继续将这个 外挂完善,比如不在软件视图中标记不同点,而是在QQ美女找茬窗口中直接标记出来,注意,这里不能使用美女找茬窗口的设备上下文直接画图,因为这个窗口一直刷新,使用美女找茬窗口的设备上下文画图会闪烁,我猜测使用桌面设备上下文在美女找茬窗口上面画图效果应该会好一点,不过我还没有实验。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值