Chinaunix首页 | 论坛 | 博客
  • 博客访问: 249796
  • 博文数量: 65
  • 博客积分: 2758
  • 博客等级: 少校
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-25 00:23
文章分类

全部博文(65)

文章存档

2011年(4)

2010年(1)

2009年(60)

我的朋友

分类: 网络与安全

2009-11-14 17:22:57

地面物品的查找方法及其call的写法

吴僚编写 qq: 58160782  转载请说明

1.     开始. 游戏 武林外传 .  工具 od  ce 遍历

2.     地面物品的查找由于游戏放置在地面上的物品有时间的限制所以我们应该找个固定的物品,这里我选择了挖矿或采集为地面物品.

3.     开动..启动游戏 打开ce

我用的是猪圈.嘿嘿……

说明下: 我主要是根据人与物品的距离来找, 距离在游戏中是浮点形式,所以ce要设置浮点形式找未知数值….

 结果

奥运快要到了,比赛规则大家都看过吧 去掉一个最高分 去掉一个最低分 最后得分为XXX  我们也是要去掉负数 去掉大于5.000000的数(因为我们贴近他所以距离很小一般是1.xxxxxxx) 最后结果为

 然后我们要移动找 增加 减少的数值.得到2个数值

这里都是人物与物品的距离 浮点数…..single

看看谁动了我的奶酪. 查找写入该地址的代码.如下图.

找吧ebx寄存器偏移15c 开动….

结果为: 双击 填入

在这里我还是说明下,我还是用我的习惯 就是每次都把我要建立的指针复制一份放下来 这样的好处是 错了你可以重新开始上一步不用重头开始,这是笨人的习惯. 你可以学 可以不学….嘿嘿

添加指针吧.

结果这样 继续看谁访问了我的奶酪继续…..

是这样了

这里有个问题了 这个edx+4 不是每次都能出现的.原因我不知道.但是我发现个问题

这个是我编写好的程序如果我找的东西编号最小 也就是说 循环次数少(i*4)的话 edx+4就容易出来.

搜索填入指针吧

继续找下一个….这里我用的是访问

这个也是很难找到 一般不出现的.(eax+edx*4)

结果这样了.看到了有个数组的.大概是了,跟下看看哦 天热 没老婆 闲着没事干

这样了.继续吧

 

有人要问我了这个偏移你是怎么搞出来的, 那个那个那个 呵呵 这个2cc

 

那里面的edx=? 怎么办 不知道啊 告诉你 计算机本来带个工具叫计算器,呵呵如果这个不会 可以去看看ce教程的第8,看了也不会….郁闷 我教你吧..看下如果我不填写2cc 上一个指针什么样.

这样的那上次做好的指针什么样呢?  这样看图

看看这两个值

 计算一下你的偏移 会了吧 呵呵

好了我们继续找吧

这里的18也是相当难找.

现我知道的笨方法有两个 一是访问然后等,等会就出来你想要的了.要不就是读的方式

继续

以后的我不说了,根本就是很正常的找了 没难度了

结果这样.

偏移出来了吧.

写代码了.

这谁都会 哎不发了我写的太烂 那遍历吧 好的 遍历先

这几个都能找到的 放心.

下面捡物call od   bp send ctrl+f9 1 2 3 发包层 过了 差不多了 开始注意,捡物 肯定不是无参call  找有参的

004745EE    8B0D 74749300   mov     ecx, dword ptr [937474]          ; ElementC.0093AF20

004745F4    8B97 10010000   mov     edx, dword ptr [edi+110]

004745FA    8B46 20         mov     eax, dword ptr [esi+20]

004745FD    52              push    edx

004745FE    8B49 20         mov     ecx, dword ptr [ecx+20]

00474601    50              push    eax

00474602    81C1 D4000000   add     ecx, 0D4

00474608    E8 B3B01000     call    0057F6C0

 

我知道我晓得这个就是,怎么知道的试验出来的,呵呵,这个铁面在行不会的请教他吧

我们单步走看看每句的内容第一句 这个是call的基址不解释.

这些逐条解释下.先全部下断.

看到了吗eax edx的值了吗变化,

这里说明下我一边写这个文档还给一边调试忙不过来 还有个领导给一直关照 ,所以我没有办法保证及时 慢了物品就消失了.所以我就一会我讲这两个值怎么来的时候可能变化的但是如果你按我这么做肯定对.

来看看这两个值是什么.第一个eax c001aeeb 这个我不知道 不管他 edx=ba4,十进制就是2980 =物品的ID 这个你要是不知道也没有关系 下面我们遍历这两个值看看他具体偏移多少,我相信现在你应该把显示距离的那个程序编写好了吧.开始

我编写的这样.

我加了个编号就是为了好调试,效果是这样

看到编号了吧

代码是这样 d是我的循环因子.这样以来我就知道了这个物品现在在数组的那个偏移里的对吧.打开遍历工具吧

编号就是偏移对吧填入遍历898

搜那个id 然后看偏移偏移

一个参数搞定. 物品捡起来 这个游戏我级低 物品少 禁不住折腾 ,下面来第二个参数.

同理 扔一个,od,然后找偏移 填入 搜索

编号818

Od断了这个值 c001b94a

换算后这样

填入偏移818

填入搜索条件

结果这样

偏移出来了

现在我们知道了 这个是把物品的

这个偏移地址的值

是物品的

这个偏移地址的值

开写吧,

框架这样

Sub Call_jw()

Dim asm As New clsASM '自动拣物

With asm

.Pushad .Mov_ECX_DWORD_Ptr &H937474 这句不解释

.Mov_EDX

.Mov_EAX

.Push_EDX

.Mov_ECX_DWORD_Ptr_ECX_Add &H20

.Push_EAX

.Add_ECX &HD4

.Mov_EAX &H57F6C0

.Call_EAX

.Popad

.Ret

End With

asm.Run_ASM pid

End Sub

这样call就写好了,如果你要捡取你最近或是你需要捡取的物品你在你的物品循环里就要加点料了,我是挑最近的捡取的

完事 ok

一边聊天 一边写 很注意了还是没有了3个物品 心疼啊,不过值得了

 

 


 



 

 



 


 


 

阅读(3785) | 评论(0) | 转发(0) |
0

上一篇:利用ALT+ K 合理找CALL

下一篇:什么是基址

给主人留下些什么吧!~~