15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx

上传人:b****3 文档编号:5389713 上传时间:2023-05-08 格式:DOCX 页数:15 大小:1.18MB
下载 相关 举报
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第1页
第1页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第2页
第2页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第3页
第3页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第4页
第4页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第5页
第5页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第6页
第6页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第7页
第7页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第8页
第8页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第9页
第9页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第10页
第10页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第11页
第11页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第12页
第12页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第13页
第13页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第14页
第14页 / 共15页
15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx

《15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx》由会员分享,可在线阅读,更多相关《15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx(15页珍藏版)》请在冰点文库上搜索。

15授人以鱼不如授之以渔CALL的概念篇CALL出错分析.docx

15授人以鱼不如授之以渔CALL的概念篇CALL出错分析

15授人以鱼不如授之以渔●CALL的概念篇:

CALL出错分析

在刚开始找CALL的时候,绝大部分的时间都是在重新打开游戏和出错中度过,这个可能绝大部分朋友都有这个感受~CALL为何会出错?

今天我们就来分析下出错的原因

目标:

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 这里我们也没办法跳过去调试了. 

好了今天我们的调试错误信息就到这里了,虽然最终没有解决这个问题,但也获得不少收获~

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2