15授人以鱼不如授之以渔CALL的概念篇CALL出错分析文档格式.docx
- 文档编号:7279278
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:15
- 大小:1.18MB
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析文档格式.docx
《15授人以鱼不如授之以渔CALL的概念篇CALL出错分析文档格式.docx》由会员分享,可在线阅读,更多相关《15授人以鱼不如授之以渔CALL的概念篇CALL出错分析文档格式.docx(15页珍藏版)》请在冰点文库上搜索。
F8找CALL02
目的:
分析各种CALL的错误
弄过F8找CALL模拟器的朋友都知道F8CALL02是一个喊话模拟的模拟器,而且只能注入才能正确调用远程调用的话就会出错,今天我们来分析下到底错在哪里.
============================分析开始=======================
CALL我就不找了,大家可以看配套视频,在断点社区精华区可以下载.
这里就是F8CALL02的喊话功能CALL的地方
这是运行到CALL时候堆栈中的值...
这里很多朋友都不明白为何只要写一个CALL就可以实现喊话,我之前说过,我们只需要给CALL他想要的参数.
这里的堆栈分别压入了
基址
喊话内容
喊话模式
喊话对象
这个就是参数而且也没做什么处理,所以我们只要给他想要的参数按照顺序就可以了.
这里正确的写法我就不说了,我们主要来调试下错误的信息.
这里其实需要处理堆栈平衡,我们先不写,来分析下堆栈不平衡为何会出错,好了这里没有加上堆栈平衡,图中是出错的信息.我们在CALL内部第一行下断
运行代码注入器调用CALL后就会断下来,.
*这里为何会断在这里而不断在CALL地址呢?
因为,我们写一个CALL*****
其实就是从*****这个地址开始运行的,却不是从游戏调用这个CALL的代码开始.这里弄多了你就会明白,你写一个CALL其实在模拟游戏调用CALL的那部分.
我们来按F8
一直执行......一直到图中的位置才出错.出错信息跟刚刚是一样的
*45d000
一般是程序的代码段开始部分,而图中参数的存放是ebp-8已经超过了代码段的范围了,所以我们这里就会出现无法读内存的错误.
解决方法:
这里我们把存放内容的地址弄后面一点便可以了
好了我们继续往下单步运行(F8)
好了运行到这里又出错了~~重新运行吧~
我们到了上面那个地址出错~而EAX的值就是我们出错的信息地址,从调试窗口看到EAX的值是?
?
我们来看看用模拟器自身的喊话,这里是如何一个过程
图中对比了
使用自身喊话和代码注入器的调用情况
.如果这个时候我们把ECX改成8呢?
好了,这里已经解决了第二个问题,又出现第三个问题.
这个时候我们发现
错误信息中有出错代码的地址.我们跳过去看看
这里又有一处内存无法读出,这里的值是指向270这个地址(前面部分处理按照上面的来)
错误找到了我们重新再来一次这次停到错误代码地址前面
(第二个错误依旧按照上面的处理来)
我们来看看正常情况下的寄存器值
这里我们用模拟器能成功的读取到地址.
我们来跟踪一下这个值是如何产生的
这里我们从头部开始找....
头部的值还是跟上面一样所以我们返回一层看看.
463cc4就是EBX的基址.
我们把代码注入器的代码改一下
好了运行到原来出错的地方发现现在已经能正常读取内存地址了,又解决一个错误(到第二步的地方仍然需要手动解决)
我们继续运行,发现卡在了下面那个CALL那里
按运行或点程序都没反应,
这个时候我们只要在调用一次CALL就可以了.
我们继续运行到上面这里然后按F8,发现又一个错误...
这里的代码段是从45d000开始的而图中却是
4030a7
这里我们也没办法跳过去调试了.
好了今天我们的调试错误信息就到这里了,虽然最终没有解决这个问题,但也获得不少收获~
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 15 不如 CALL 概念 出错 分析