作者:admin发布时间:2021-11-11分类:传奇私服浏览:269评论:20
1、ce搜未知选择怪物搜变动没选择搜0。
2、访问代码双击怪物看ce数量为1的代码od跳转一般格式是
3、以上找不到就在技能栏放两个技能ce搜索未知初始化数据完后把第一个栏的技能移动到别的栏完后ce搜0完后第一个栏放上一个技能再搜变动直到找到几个类似数据选择较大的ce搜到的三个最小的数字是技能序号只查看访问大的的代码。
查看访问的代码。打开监视器。游戏里掉整一下技能位置。看监视器跳出的指令记下od查找到技能数组完后数组第一个元素是地址ce查看方位这个地址的指令od跳转到地址处完后附近call里面的某个call就是技能call一般参数0或者1比较多有个参数是可以随着技能不同而变化。
4、也可以完后向上跳转点击od上的k键复制下完后每个call都下断点没有使用技能就断下来的就pass掉完后剩余的nop掉再恢复看看有没有任何动作如果有的话就基本不可能是了。接着向上层call按同样方法nop再恢复看有没有啥动作如果一点都没有就先在这个call里面开始遇到的每一个call都同理nop掉在恢复看有没有动作没有的就进入同样道理直到找到。
发包结构发包结构{哪里改变}void发包线程(){结构{;}else{send();结构}}void封包写入(int长度地址){结构地址结构.staraddressinti0while长度0{结构地址[i]地址[i]i}结构.lastaddress结构.startaddress长度2跳到这里}struct目标技能结构{bool是否普通攻击dwordiddwordxdwordydwordobjectID}void目标攻击封包组合函数{组合封包风暴写入(长度地址)3返回这一层}void循环技能{while1{if目标技能结构.是否普通攻击true{普通封包组合函数4返回到这一层}if目标技能结构.objectID0{技能封包组合函数if目标怪物是否死亡目标技能结构id0}}}普通攻击call{}
1有时候k堆栈表啥都没有换个od或者ollyice(大陆od改进版)删掉调试udd文件再试试。
2ce搜怪物id内存地址查看访问的代码返回游戏攻击怪物完后在监视器中查看最先出来的指令(实在不行就看下一个出来的指令)完后od跳转看是不是该条指令下面吧这个怪物id访问出来后存进了别的内存地址完后ce搜这个内存地址查看访问的指令。
完后再去攻击怪物监视器中查看最后出来的访问的指令(不行就倒数第二出来的以此类推)完后od跳转看指令下面的call进入call开头下断点返回后删掉这个call再攻击怪物看行不行有没有任何动作(如果死屏的话估计不是这个call了)完后撤销修改再看有没有什么动作有的话估计也不可能是了。
3bpsend下段后返回查看堆栈表复制下来找到最后的的call(nop掉不能有任何多余动作)完后在这call里里面分三层方法
进入call后逐一排除只要nop掉什么动作都没有就行至于恢复后有什么动作无所谓。
nop掉后看光标如果有战斗的光标点击后不打怪物的话可能就是他了。
进入后查看复制的堆栈表看看哪个call在这个call的里面完后在他附近找callnop一下看看。
1、
structGoords{DWORDID;charname[32];intnum;}可以ce搜物品id物品名字或者物品数量d1911b526f83
2、提示vpprotect程序发生未知错误重新启动游戏不登陆重新打开od完后提示错误完后退出游戏在登陆游戏可解决b不行就结束qqprotect或者od进程或者换个od。
3、ce搜到药品名字修改的时候不要改数据类型为text再修改会出错。
4、od向上找基地址的时候一定要注意每次查看的找到的每次偏移不下断点的时候还有没有数据比如找血基地址[esi8c]c一定要先看c这个地址有没有原来的数据完后看esi8c里面有没有原来的数据没有的话就要查找哪里写入了。
5、搜索物品名陈有时候要搜金创药(50)的unicode编码。
6、有时候要用ce搜到的的指令(搜物品名字的unicode完后查看访问当鼠标移动到物品上监视器中弹出来的指令记下)od跳转过去遇到[local.xxx]或者堆栈内存都存在的虽然不断下来里面的一直在变化也可以通过向上条件断点[local.xxx]xx断下来可以直接记下地址完后[0x245678c]xxx245678c。
可以使内存或者堆栈地址如果此时里面数据是要找的数据说明还要往上看往上找断下来没有要找的数据就是这里存进去的。
7、我猜可能是因为当我鼠标移动到这个物品的时候才会显示物品名称。此时是更具光标位置算出移动到哪个格子才会算出哪个物品才会显示出名称。
也就是说此时你根据ce搜索访问那个地址(ce搜到的储存物品名称比如金创药)的代码完后鼠标移动到金创药上此时ce监视器中跳出几个movax[ebx]完后od跳到这里向上找ebx来源最终卡到一个地址处里面即使不断下来也是很多数据不停地变动。
因为此时你没有吧鼠标移动到金创药上所以这个地址里面的指针式垃圾指针只有当你鼠标移动到金疮药上的时候某个call才会根据光标位置算出具体是在哪个物品上完后把这个物品的关系地址发到那个内存地址里你才会看到但是因为这个地址里的数据不停地被一些垃圾数据写入你下断点会无数次断下来ce搜索出一堆根本不知道当你鼠标移动到金创药上是哪里写入数据到那个内存地址里。
8、实在od遇到第七的情况找不到名称基地址就ce遍历搜索物品数组取出来的对象。
9、通过搜索背包物品的数量比如说背包里面有个红药有100个那么我们就用CE搜索100。
然后吃掉一个改变它的数量再搜索99以此类推最后会得到一个或者几个数值剩下的就慢慢测试吧。
10、用物品在背包格里面的位置来搜索比如说红药在背包第一个格子里面我们用CE就搜索未知初始化数值。
然后改变红药在背包的位置移动到其他位置搜0移动回来搜改变的数值以此类推。(c语言编程的特性物品存在即大于0不存在为0)
11、ce搜索存储物品名字的地址要范围搜索因为物品名字前面可能还有一些字符串和它是一体的完后在结果中找最大的内存地址。完后查看访问这个地址的代码如果没有看到访问的指令那就搜索存储这个物品名字的内存地址可能是访问了这个存储物品名字的指针完后吃一下药物看看有没有显示出来的指令。
12、ce搜索物品名字最好是把文本宽度设置的宽一点可以看有多余的字符出现可能性就少了比如金创药/segobj。
13、可以先找到吃药call进入后分析找到从物品数组取出的物品结构call。
14、ce搜索名字的地址要范围搜索因为物品名字前面可能还有一些字符串和他是一体的完后结果中找最大的内存地址完后查看访问这个地址的代码如果没有看到。
访问的指令那就搜索存储这个物品名字的内存地址可能是访问了这个存储物品名字的指针完后吃一下药物看看有没有显示出来的指令。
1、条件断点eaxa247080对吗。
2、movecx,dwordptrss:[ebp0x1C]ebp到上层发现是00ce7cf0其实只要此时发现程序名字.00ce7cf0就是基地址了但是ebp00ce7cf0不是ebp[00ce7cf0]别搞错了。
3遇到这种指令movecx,dwordptrss:[ebp0x1C]别着急查看哪里写入数据到[ebp1c]里面了而是要看没有断下来此时里面的数据还是不是原来的数据如果是的话那就找ebp来源。
4ce搜素血量完后被怪物打查看变动的数值完后修改一下数值看看修改哪个后血量变动就是它了(搜出来的绿色的地址也可以但是修改数值后不能改动人物血量)。完后查看写入的指令再被怪物打完后监视其中看最后的类似于mov[],eax这种。完后od跳转向上跟最后找到后48等位置一般为怒气或者其他相关。
5、ce查看写入的指令的时候比如遇到movdwordptrds:[esi0x278],edx 找的是esi的来源而不是edx的来源切记。
1ce搜索宽字符(unicode)或者窄字符(g2b)unicode3575505b386e67720d54cf65。
2ce搜索后找movax,wordptrds:[ecxebp*2]这种类型的一般都是数组形式取出来的或者不行换一个试试。
3ce直接查看访问的指令(没有经过附加条件比如鼠标点一下完后才查看ce监视器)完后od跳转下段无限断下来这种情况下就不用条件断点直接断下来向上找。
1、
006C5802|.8B06moveax,dwordptrds:[esi]006C5804|.8B4E04movecx,dwordptrds:[esi0x4]006C5807|.3BC1cmpeax,ecx006C5809|.741Ajeshortelementc.006C5825
已有20位网友发表了看法: