谁也不会发现我的吧 关注:1,225贴子:1,294,078
  • 3回复贴,共1

扫雷为例,详解怎么找基址、怎么找call;CE,OD的使用

只看楼主收藏回复

1.CE找基址
启动扫雷,启动CE,
点击CE上那一闪一闪的电脑样子的图标,
弹出一个附加进程的窗口
选择你游戏进程的名字,扫雷是"winmine.exe"....(一般在进程在最下面,扫雷默认是这个名字,你要是改了扫雷的文件名就选择你改的名字)
首先来找插旗数的基址:
可以看到,现在插旗数的数量是10
所以我们在CE里输入10,点击首次扫描
扫描出好多结果,
我们在扫雷上随便插一下旗,让插旗数减少
现在插旗数是9
所以我们在CE里输入9,点击再次扫描
我们在扫雷上随便插一下旗,让插旗数减少
现在插旗数是8
所以我们在CE里输入8,点击再次扫描
我们在扫雷上随便插一下旗,让插旗数减少
现在插旗数是7
所以我们在CE里输入7,点击再次扫描
反反复复的这样搜索,直到搜到我们想要的扫雷插旗数的内存地址
下面来测试下我们找到的地址正不正确,双击我们找到的地址,就把地址移到下面的操作区域了,我们在数值的地方双击,随便输入个数值,比如99,回到扫雷,再插个旗,现在看到,插旗数是98了,这就说明我们找对了,
旗数基址:01005194
呵呵,下面继续
下面我们来找扫雷的时间:
开始玩扫雷吧,通过观察我们可以发现,扫雷的时间是不断增多的,
点击CE的新扫描,由于扫雷的时间不固定,所以我们在扫描类型上选择"未知初始化数值",点首次扫描
由于扫雷的时间是不断增多的,所以我们在扫描类型上选择"增加的数值",点再次扫描
由于扫雷的时间又增多了,所以我们在扫描类型上选择"增加的数值",点再次扫描
由于扫雷的时间又增多了,所以我们在扫描类型上选择"增加的数值",点再次扫描
由于扫雷的时间又增多了,所以我们在扫描类型上选择"增加的数值",点再次扫描
直到出现我们想要的值,我们看到,有一个地址的值和我们扫雷的时间是一样的,就是那个了,双击它.把它移到下面的操作区域,在数值那随便输入个数值,比如1,可以看见,扫雷窗口上的时间也跟着改变了,呵呵,成功了吧,但这个数值还在不断增加,烦死了,这个地址前有个锁定的选项,把锁定的选项勾上,把时间锁住,时间就不会一直增加啦
扫雷的时间基址:0100579C
下面找扫雷开局按钮判断
找这个开局按钮的判断有好几种方法
一,开局按钮的判断肯定是个逻辑型变量啦,一般的话都是0代表假,1代表真,所以我们在还没有开局的时候输入0搜索,开局后输入1搜索,重复几次,直到找到开局的判断地址
二,通过"未知初始化数值"和"更改的数值"搜索,在还没开局的时候搜"未知初始化数值",开局后搜"更改的数值",再重新开局,继续搜"更改的数值",直到找到开局的判断地址
开局按钮判断基址:001005164
把找到的地址记下来,后面找开局call时要用到
CE的使用到这基本上就说完了,CE的使用其实很简单,OD的使用才有一定的难度,下面开始使用OD
2.OD找call
扫雷开局call
启动扫雷,启动OD,
点击OD的 文件-附加-选择扫雷的进程
接着在OD的命令行框框里输入DW 001005164,下个开局按钮判断基址的硬件写入断点,回车键
只要向内存001005164写入数据就会被断下来,因为开局肯定会向开局判断写入数据的嘛
回到扫雷,重新开局,马上就被OD断下来了
按ctrl+F9,执行到返回
我们会看到很多个call,我们要的call是被断下来的地方上面的那个call,记住,是上面的那个call
010014D6 |. E8 9F210000 call 0100367A
现在打开call测试工具来测试这个是不是我们要的call吧
打开call测试工具,点击那个电脑样子的图标,附加扫雷的进程
输入call 0100367A,点击创建远程线程,测试下call是否正确
哈哈,扫雷没有出错,并且重新开局了是吧,运气真好,一个就找到了扫雷开局call
找扫雷秒杀call
秒杀扫雷是最爽的,直接调用扫雷成功的call,很黄很暴力
扫雷成功会弹个对话框,我们就下个对话框的断点
命令行输入bp DialogBoxParamW
由于会弹出两个对话框,所以会被先后断下来两次,并且有两个call,我们就是要找到这两个call
先玩胜利一盘扫雷,使OD断下来,断下来后按ctrl+F9,执行到返回,点击扫雷的确定按钮,又被断下来了,按ctrl+F9,执行到返回,接着我们就看见了一个call,
01003505 |. E8 77E6FFFF call 01001B81
这个call有一个参数,mov dword ptr [eax], ecx
测试下这个call是否正确,
打开call测试工具,点击那个电脑样子的图标,附加扫雷的进程
输入
mov edx,0
mov [010056cc],edx
call 01001b81
edx是扫雷所花的时间,点击创建远程线程,扫雷弹出个对话框,没有出错,说明我们找的这个call是正确的
好,我们再找另一个call,同样是断下来后按ctrl+F9,执行到返回,接着我们就看见了一个call,
0100350A |. E8 9BE6FFFF call 01001BAA
打开call测试工具测试下是否正确,
输入
mov edx,0
mov [010056cc],edx
call 01001b81
call 01001BAA
创建远程线程
结果没有出错,是正确的,
呵呵,扫雷的秒杀call也被我们轻松找到了
扫雷点击call(鼠标左键):
大家自己练习一下,看看能不能自己找到,
下面贴出我找到的,对比下你找是是否正确
push 2 //纵坐标
push 4 //横坐标
call 01003512


IP属地:上海1楼2013-08-27 16:33回复
    OD: 鼠标插旗call(鼠标右键):
    这个是留给各位的作业


    IP属地:上海2楼2013-08-27 16:33
    回复
      你这分明是转载,估计你自己连个插旗call都找不到


      3楼2016-09-17 07:29
      回复
        楼主还在么?CE我发现找不到雷的基地址,用CE扫每次数值都会变化,扫了两次后就找不到任何值了


        IP属地:美国来自Android客户端4楼2016-12-03 12:25
        回复