OD查找
扫雷主窗口函数
地址
时间:2014-09-10
00:28:39
阅读:413
评论:0
收藏:0
[点我收藏+]
标签:ollydbg
调试
扫雷
闲着没事,使用OD调试下扫雷程序,看了郁金香大牛的视频,OD载入扫雷程序,F9运行,查看——窗口(刷新),就可以看到主窗口地址,不知道什么原因,本机OD显示的地址是FFXXXXXXX地址,很明显不对,换了好几个系统也不正常。无奈,只好自己跟下。
一、OD打开扫雷程序,程序停在模块入口点出
bubukocom,布布扣
二、ctrl
+
g
在
RegisterClassW函数出下断点
bubukocom,布布扣
然后
F9运行,停在此处,然后
ctrl
+
F9
跳出此函数
bubukocom,布布扣
在pWndClass出下断点(此处是窗口注册类,下上断点看窗口注册类的地址),然后取消RegisterClassW的断点,重新运行,程序停在,pWndClass处
bubukocom,布布扣
可知窗口注册类的地址为
7FED0
,内存中查看窗口注册类内容。
由窗口注册类结构
typedef
struct
tagWNDCLASSW
{
UINT
style;
WNDPROC
lpfnWndProc;
int
cbClsExtra;
int
cbWndExtra;
HINSTANCE
hInstance;
HICON
hIcon;
HCURSOR
hCursor;
HBRUSH
hbrBackground;
LPCWSTR
lpszMenuName;
LPCWSTR
lpszClassName;
}
WNDCLASSW,
PWNDCLASSW,
NEAR
NPWNDCLASSW,
FAR
LPWNDCLASSW;
可知,结构第二项,为回调函数的地址,从内存中可知,回调函数地址为01001bc9
1、打开我的电脑的系统盘,搜索Minesweeper。
2、点击那个文件夹进入。我们看到有一个地雷的标志,没错哪个就是win7扫雷程序。
3、右键点击扫雷图标,选择附到开始菜单。
4、点击右键创建快捷方式,点击是 在桌面上创建快捷方式。右键点击桌面扫雷快捷方式,选择重命名,改名为扫雷。
5、打开开始菜单右键单击游戏选择属性,复制位置信息。
6、打开我的电脑,在地址栏粘贴地址,找到游戏文件夹打开,将桌面快捷方式复制到游戏菜单下。
模式设定:
左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。
所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。
右键单击:在判断为地雷的方块上按下右键,可以标记地雷(显示为小红旗)。重复一次或两次 *** 作可取消标记(如果在游戏菜单中勾选了“标记()”,则需要两次 *** 作来取消标雷)。
双击:同时按下左键和右键完成双击。当双击位置周围已标记雷数等于该位置数字时 *** 作有效,相当于对该数字周围未打开的方块均进行一次左键单击 *** 作。地雷未标记完全时使用双击无效。若数字周围有标错的地雷,则游戏结束,标错的地雷上会显示一个“ ×”。
扫雷的游戏规则:
扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。
游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有0颗雷,则其周围格子自动打开;如果其周围还有空白格,则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷;如果一个已打开格子周围所有的雷已经正确标出,则可以在此格上同时点击鼠标左右键以打开其周围剩余的无雷格。
1代表1的上下左右及斜角合计有一颗雷,依次轮推,2则有2颗,3则有3颗
在确实是炸d的方格上点了旗子,就安全了,不是炸d的被点了旗子,后面会被炸死的问号就先不确定这里有没有炸d,不会存在点错了被炸死的状况
有个小窍门,在数字旁同时点左键和右键可以排雷
第一下点的一定不是雷, 左键点开,右键用旗子标记雷,同时左右键点数字可以判断周围的雷是否已经全部标出
每个数字代表 这个数字周围九个格里,有几颗雷!比如,1,周围九个格里只有一颗雷,2 周围九个格里就有两颗雷,以此类推
通过单击即可挖开方块。如果挖开的是地雷,则您输掉游戏
如果方块上出现数字,则表示在其周围的八个方块中共有多少颗地雷
要标记您认为可能有地雷的方块,请右键单击它
游戏区包括雷区、地雷计数器和计时器
数字就是这个方块周围的8个方块里有的雷的数量,问号是自己弄上去的,可以的地方可以弄个问号,旗子就是确定那里有雷了 其实胡点就好
先说一个 扫雷的吧,,没办法给你源程序,
就给你说制作过程吧,
打开VB60
在窗体的上半部分,用pictureBOX控件画一定的区域用来模仿WINDOWS那样的,里面显示雷数,时间,以及开始,,并且命名为picture1
在画好后,在picture1里 放4个控件,text1,text2,commandbutton(按钮),timer1并且给这4个控件属性定义属性值:text1和text2的BackColor属性为黑色,ForeColor为红色,FONT属性改为小二号。text1 的text属性为10,text2的text属性为0
按钮控件的名称属性改为C1,Caption属性改为开始。FONT属性改为小二号
Timer1 属性 Enabled 为 False, Interval为1000
再Picture1的下面再用Picturebox控件画一定的区域做为雷区。将这个控件的名称属性改为P ,AutoRedraw属性改为True
然后再把控件P(雷区)里 放一个按钮(数组)控件,其属性:名称改为C,Caption为空
(怎么建数组控件?就是在该控件上点右键选择复制,在空白区选择粘贴,系统会提示你是否建立数组控件,你选是就OK了) 它变成数组控件后,两个控件名称一样都是C 但是会有一个C(0)和C(1) 你把(1)的删除就行了,在C(0)控件的属性style改为1,
做完以上的,,只需要把以下代码复制到代码区即刻运行
以上就是关于用OD调试扫雷程序为什么查找主窗口函数地址查不到全部的内容,包括:用OD调试扫雷程序为什么查找主窗口函数地址查不到、如何解决扫雷打不开问题、电脑程序里的扫雷怎么玩啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)