能力值:
( LV2,RANK:10 )
|
-
-
26 楼
俺以前做过自动分析的扫雷外挂
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
太厉害了,真是!
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
牛B的人,支持下..
|
能力值:
( LV13,RANK:1050 )
|
-
-
29 楼
按照您的办法,自动扫描不好用。
我是xp sp2下运行的。
我的qq:391136515 咱们继续探讨。
|
能力值:
( LV13,RANK:1050 )
|
-
-
30 楼
我把正确的代码贴出来,如下:
void __stdcall saolei()
{
DWORD addr = 0x1005361;
DWORD x = 0x10056A8;
DWORD y = 0x10056AC;
HWND hwnd = ::FindWindow(NULL, "扫雷");
DWORD hProcessId;
::GetWindowThreadProcessId(hwnd, &hProcessId);
HANDLE Process = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, hProcessId);
int b = 0 , nx = 0, ny = 0;
DWORD s = 0;
::ReadProcessMemory(Process, (LPCVOID)x, &nx, 1, NULL); //获取横向方格长度
::ReadProcessMemory(Process, (LPCVOID)y, &ny, 1, NULL); //获取纵向方格长度
DWORD xuanzong = /*0x10037E1*/0x01003512; //选方格的函数地址
DWORD x1 = 1;
DWORD y1 = 1;
int (*Rec)[900] = new int[nx][900];
for(int i = 0; i < nx * 32; i += 32)
{
for(int j = 0; j < ny; j++)
{
::ReadProcessMemory(Process, (LPCVOID)(addr + i+j), &b, 1, NULL);
if (b == 0x8E || b == 0x8F) //把内存布局写入自定义的数组
{
Rec[i/32][j] = 1;
}
else
Rec[i/32][j] = 0;
}
}
for(i = 0; i < nx; i ++)
{
for(int j = 0; j < ny; j++)
{
x1 = i + 1;
y1 = j + 1;
if(Rec[i][j] != 1) //选择没有雷的方格
{
_asm
{
push x1 //要选方格的X
push y1 //要选方格的Y
call xuanzong //调用选方格函数
}
}
}
}
}
|
能力值:
( LV4,RANK:50 )
|
-
-
31 楼
要注入进去才好用``
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
先顶再学习,呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
真的是好文章。值得收藏N份(收藏在N个硬盘,现在的硬盘质量N差).
:)
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
秒杀扫雷的感觉真爽
|
能力值:
( LV3,RANK:20 )
|
-
-
35 楼
bithaha
哈哈,排雷比较有趣啊.
一般都用发送键盘消息,楼主是通过扫雷里面的函数
如果发送鼠标消息 是模拟其位置和点击吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
36 楼
mark
|
|
|