001 -F8找CALL实例ONE 模拟器的讲解
课程内容: 调试模拟器并找到他所调用的CALL.
002 -CALL调用方法的讲解
课程内容: 以几个CALL的反汇编模型讲解CALL的调用方式.
003 -实战,寻找第一个程序选中怪物功能
课程内容: 找到选中怪物目标的功能.
004 -实战寻找第一个程序寻路功能
课程内容: 找到游戏寻路功能.
005 -实战,寻找第一个程序技能释放功能
课程内容: 找到游戏技能释放功能.
006 -实战,寻找第一个程序普通攻击功能
课程内容: 利用 明文包CALL和 目标ID找到游戏普通攻击功能,并分析封包组的汇编代码.
007 - VC++创建工程以及简单的函数
课程内容: 创建一个空白的工程,并开始写第一个简单函数
008 -函数的机制之栈帧的形成
课程内容: 认识函数在反汇编里的机制以及栈帧的形成.
009 -函数的机制之调用约定的讲解
课程内容: 讲解函数的调用约定.
010 -数据结构篇之数组结构
课程内容: 讲解VC++中数组结构
011 -VC++TAB页的创建和辅助控件类的使用
课程内容: 讲解VC++中TAB页面的创建和辅助专用控件类的使用
012 -VC++键盘钩子注入
课程内容: 编写一个程序将DLL注入到游戏当中并讲解如何调试DLL代码.
013 -物结构分析(汇编代码分析)
课程内容: 分析怪物结构遍历的汇编代码
014 -第一个程序怪物结构遍历(用程序遍历链表)
课程内容: 用程序遍历怪物结构,讲解VC++TRY异常,调试输出,以及DLL调试.
015 -怪物结构其他成员的寻找
课程内容: 寻找除了ID之外的其他主要成员的偏移.
016 -VC++指针的应用(用结构指针遍历怪物数据结构)
课程内容: 利用自定义结构遍历游戏的数据.
017 -第一个程序背包结构分析
课程内容: 分析第一个程序的背包结构
018 -第一个程序背包结构汇编代码遍历
课程内容: 用汇编代码遍历背包结构
019 -用代码模拟背包结构
课程内容: 用代码模拟背包结构
020 -用自定义结构遍历背包结构
课程内容: 用自定义结构遍历背包结构
021 -第一小节结束
[第二小节:侧重于CALL的寻找及参数的分析,简单数组分析以及简单挂机流程]
022 -第二个程序人物属性分析
课程内容: 用自定义结构遍历背包结构
023 -分析程序发包流程
课程内容: 分析程序的发包模式,以及他的过程.
024 -寻找普通攻击CALL
课程内容: 分析寻找普通攻击CALL封包组成过程以及整个攻击代码流程.
025 -技能CALL的寻找与分析
课程内容: 分析和寻找游戏的技能攻击CALL.
026 -游戏功能框架以及游戏循环攻击功能分析
课程内容: 根据技能和普通攻击分析出游戏大概的循环攻击功能框架.
027 -编写程序读取血量并显示
课程内容: 编写血量等信息的读取.
028 -编写程序调用普通攻击及技能攻击
课程内容: 编写调用普通攻击以及技能攻击的调用.
029 -怪物结构分析
课程内容: 分析程序的怪物结构公式.
030 -怪物结构分析(2)-怪物坐标的分析以及寻路和坐标加密的分析
课程内容: 分析了寻路CALL,和怪物坐标的偏移以及怪物坐标加密的分析.
031 -人物选怪功能和怪物选人功能的分析
课程内容: 分析人物选怪和怪物选人的思路.
032 -用程序遍历怪物
课程内容: 遍历怪物的属性.
033 -冒泡算法得到最近的怪物
课程内容: 选取最近的怪物功能的实现.
034 -从代码分析出目标类型的偏移
课程内容: 从普通攻击入手,分析出目标类型的偏移(是否是怪物).
035 -做一个最简单的自动打怪
课程内容: 编写一个最简单的打怪流程.
036 -完善自动打怪-增加范围挂机
课程内容: 增加范围挂机功能.
037 -跨图寻路CALL的寻找与分析
课程内容:寻找游戏中跨图寻路CALL的分析与寻找..
038 -完善自动打怪-增加地图判断
课程内容:增加对挂机的时候地图判断.
039 -吃药CALL的分析以及背包数组的分析
课程内容: 通过明文包找到吃药CALL,分析吃药CALL的时候发现参数是一个结构,从物品指针+14C传递过来,通过这个物品指针我们找到了背包结构,分析发现+8是物品横坐标+C是物品纵坐标,+4是物品的ID,我们又发现更改物品的ID会导致鼠标放在物品上显示信息的改变,那么我们知道这个显示物品的信息是由这个+4这个ID值改变,监视这个地址,我们找到了读取物品信息的CALL.
040 -背包遍历及数量名字寻找和使用物品CALL的调用
课程内容:首先我们整理了上节课找的背包ID以及背包公式.但是光光是ID值还不够,因为你得知道其他的信息,比如说数量,名字等等,数量我们通过CE可以直接搜索到.而名字我们发现搜索到的名字的指针并没有在我们的背包结构内存中,我们继续通过名字来查找,发现他是来自另外一个结构,那么新的问题出现了这个物品结构是如何匹配物品名字的呢?通过分析我们发现原来那个ID值就是这个结构的下标,接下来我们成功的遍历出名字ID数量.并写出使用物品的CALL.
041 -智能判断吃药的实现
课程内容:今天我们要实现智能加血,什么是智能加血呢,我们要自动判断背包里哪个物品是药,那么如何判断呢,首先我们尝试了类型的判断发现补蓝和补血的类型名字一样,那么排除掉,那样的话我们只好用名字匹配了,幸好这个药品名字不多,那么我们可以直接匹配了2个.但是测试的时候发现出错了,这个时候我们发现使用物品并没有检测这个ID是否为0也就是有没有物品,加入判断后,我们发现已经可以正常加血了.
042 -吃药的完善-增加吃药间隔的判断以及等级判断
课程内容:首先了解下如何通过代码分析出CD和LV的偏移.通过逆向分析代码,我们找到了这个CD和LV的偏移,并且把判断的功能加入了智能吃药,经过不断的调试,我们成功的判断了物品的CD和LV,我们的智能加血更加完美了.
043 -技能结构的分析(1)
课程内容: 今天我们讲解了由名字逆向回结构,发现找到的并不是我们想要的技能结构而是技能信息结构,为什么会找到这样的一个结构,而不是技能结构呢?这是这节课留给大家的作业,请大家好好思考一下!
044 -技能结构的分析(2)
课程内容:我们从上一节课找的鼠标取技能信息的CALL开始寻找我们的技能结构,发现返回到了另外一个模块,没办法我们只好从技能使用CALL开始寻找,我们用快捷键使用技能,逆向到了快捷键结构,当然这不是我们所要找的,我们又用右键使用技能面板的技能,这时候我们遍历到了门派的技能结构.这个是不是我们想要找的呢?
045 -技能结构的分析(3)
课程内容:遍历的时候我们发现,结构中只有当前选中卷宗的技能,那么我们就明白了,这里也并不是真正的技能结构,那么我们又发现切换的同时技能也随之改变,没办法我们只有又开始分析了ID的来源,分析后我们发现他来自一个结构中,而这个结构呢,就是传说中的二叉树.!
046 -二叉树的原理讲解与遍历
课程内容: 二叉树在VC++中的结构的模型,在内存当中的模型,结构的图形,以及框架示意图像.最后我们用递归遍历了整个二叉树结构.
047 -技能结构的分析(4)
课程内容: 上节课我们把二叉树信息遍历出来了,但是发现里面有很多值,那么我们该如何确定那个是技能ID呢?通过代码发现他对比的是心法的ID,那么心法的ID来源是哪里呢?通过分析参数的来源,我们找到了心法的结构,这样我们通过心法的结构就可以准确的找到我们所学的技能.
048 -技能信息结构的分析
课程内容:首先我们按照技能分析1当中分析出了名字的偏移,然后我们开始按照背包找CD的找法去寻找技能的CD,终于按照一步步分析,我们找到了正确的地方,通过代码分析,他通过当前的时间减去记录的时间来判断是否在CD当中,这样我们的CD的偏移也就找到了,是在怪物结构中人物结构指针里.
049 -技能结构的遍历
课程内容: 今天我们来设计技能遍历以及结构,这个游戏的技能结构不像背包一样都在1,2个结构里,这个技能结构经过一个结构,一个二叉树遍历,两个信息属性结构,如果每次都重新遍历的话效率会非常低,这样我们就需要设计一个自定义结构来储存技能,刷新的话只需要刷新几个值就可以了.
050 -技能面板写入技能ID的分析
课程内容: 通过代码写入我们找到了处理技能结构ID的代码,通过分析我们知道他是如何一个过程,对于我们来说无须在去写一次,直接调用游戏内部的代码即可.
051 -技能流程处理(1)
课程内容: 设计自动技能攻击流程.
052 -技能流程处理(2)
课程内容: 讲解了C++宏在辅助中的应用,以及技能流程的调试.
053 -技能流程处理(3)
课程内容: 通过输出CD和上次使用时间我们发现上次使用时间变量当中储存的并不是最后一次使用时间,而是下一次使用的时间,那么通过改变代码,我们成功的修复了使用技能造成的崩溃,并加上了自动补蓝功能.
054 -HOOK的应用-行为监测
课程内容: 首先我们讲解了下HOOK的原理,然后我们找到行为CALL,HOOK了他的头部,成功后,我们自定义消息输出了行为动作,并分析了攻击行为和移动行为.
055 -坐标加密后续以及挂机捡取思路
课程内容: 修复不同地图坐标值错误,以及讲解了挂机捡取流程.
056 -第二小节结束语
课程内容: 第二小节结束语.
[第三小节:不同的方式寻找与分析CALL和结构,学会分析代码]
057 -魔法之门明文包的分析以及喊话CALL的调用
课程内容: 通过代码分析我们从封包数据指针开始寻找,找到了他的来源以及分析出了整个发包的流程,通过关键的地方我们找到了数据指针写入的地方,但是我们发现却没有发现明文的地方,于是我们继续寻找,最终我们找到了加密的地方以及真正的明文包的函数.
058 -喊话内容的一次逆向分析过程
课程内容: 我们从喊话内容查找到了喊话编辑框里储存的内容,通过分析我们发现这个是一个控件结构的内 容偏移.然后我们继续分析喊话所储存的内容,找到了清除编辑框内容的代码.
课程重点:
1.NOP的在分析数据中的作用
2.NOP的时候所要注意的地方
3.为何找喊话内容会找到结构呢,因为我们查找的是控件中的值.
4.通过结构我们可以遍历所有的控件.
5.读取以及访问的区别
6.调用CALL时,如果参数的数量正确数值正确,但又崩溃了原因可能是传递的参数是结构体.
059 -选择怪物功能分析-从明文包入手
课程内容: 从明文包返回到功能代码并不难,这节课的重点是通过代码分析到CALL的参数的构造.
课程重点:
1.通过NOP代码我们可以确认代码的功能.
2.结构也是有可能作为参数传入的.
3.重要的参数是有可能作为结构的某个成员所传递.
060 -选择怪物功能分析-从目标入手
课程内容: 用CE搜索到目标的值,通过这个值我们找到了选怪功能的CALL.这对于我们来说是一个很简单,但是我们所要了解的并非仅仅是找到,而是分析和猜测汇编代码指令他所包含的含义.
课程重点:
1.CE搜索技巧
2.汇编代码结合数据了解代码所包含的意义
3.如何分析目标的数据类型
061 -分析跳的CALL-从明文包入手
课程内容: 首先我们了解了跳的这一过程所发生的动作,通过明文包我们很快的定位了跳这个CALL并成功的调用.
课程重点:
1.参数的来源位置
2.栈参数的个数确认
3.写调用CALL的顺序
062 -跳的CALL的代码分析
课程内容: 今天我们分析了跳的代码,找到了执行动作的CALL和发包的CALL,并无意中实现了飞天的功能.可以猜测发送非正常的坐标可以达到飞天功能.
课程重点:
1.NOP代码的堆栈平衡细说
2.通过NOP代码来猜测CALL所表达的含义
3.通过修改参数来定位参数的作用.
063 -跳的坐标来源分析
课程内容: 上一节课我们分析了本地执行跳的功能代码,里面有一个坐标那么这个坐标值是从哪里来的呢?
课程重点:
1.栈参数的来源分析(类似[ESP+**][EBP+**])
064 -对话NPC功能的分析-从明文包入手
课程内容: 今天我们找了跟NPC对话的功能CALL,并且分析了他的代码.
课程重点:
1.如何猜测代码的作用;
065 -接受和放弃任务的分析-从明文包入手
课程内容: 从明文包找到接受和放弃任务的代码.
课程重点:
1.学会分析RETN不带数字尾部没有手动平衡CALL的参数数量
2.学会分析从内部分析参数的数量
066 -使用物品的调用与背包结构的分析
课程内容: 经过上面几节课大家应该很简单的知道如何去调用这个CALL,那么我们今天的重点就放在分析CALL的代码上,我们经过测试发现参数是一个背包的位置,那么我们该从哪里去分析背包结构呢?以前我们都是从调用CALL前面分析,今天我们分析下从CALL里面分析,为何?因为我们发现发包的时候一些物品的值,这些值不可能凭空生产,那么最有可能的就是调用发包CALL前面的代码所遍历出来的.
课程重点:
1.任何一个数据都不会无缘无故的出现
2.测试数据最好的方法就是更改他的值
3.值的改变导致了结果改变,那么结果跟值肯定会有关联
067 -使用物品的分析-从物品数量入手
课程内容: 今天我们从物品的数量跳转到使用物品CALL的代码,但是我们发现返回上去后并不是我们想要的数据看来对于这个游戏我们想要从物品数量找到使用物品的CALL是不行了.
课程重点:
1.继续对代码分析进行一个学习
2.参数来源逆向分析
课后思考:
为何无法从物品的数量返回?
为何有些游戏可以有些游戏不行?
068 -打开怪物背包以及捡取CALL-从明文包入手
课程内容: 今天我们来找下打开怪物背包以及捡取的功能,经过上面几节课我相信同学对于找CALL应该不是太难,所以这节课还是侧重于对代码的分析以及数据来源的分析.
课程重点:
1.数据来源的分析
2.参数作用的判断
3.代码的分析
069 -技能CALL的分析与调用-从明文包入手
课程内容: 今天我们从明文包分析技能CALL,分析出每一层他经历的CALL后,我们还原了游戏技能框架结构,并且找到了适合的CALL.
课程重点:
1.游戏技能框架的分析与还原
2.参数的来源的分析
070 -收包明文包的寻找
课程内容: 今天我们讲解了收包明文包的寻找,首先我们通过代码访问找到了处理封包的地方,然后经过参数判断我们找到了解密的过程,最后找到了我们想要找的明文包,其实收包的明文包就是解密后的封包,以及封包分解归类的功能函数
课程重点:
1.数据读取的应用
2.CALL参数的分析
071-CALL的经验总结篇
课程内容:什么是CALL?栈的平衡.CALL的参数.参数的传递.参数的构造方式.CALL的返回值.CALL的表现形式.
072-编程逆向及数据分析.
课程内容:数据分析的几个方面的经验总结.
073-背包结构之结构内存形态的辨析及成员作用的分析.
课程内容: 今天我们以背包结构讲解了数组在内存中的表现形态,以及以成员为索引取出其他信息,并分析了游戏显示物品信息的代码
课程重点
1.数组在内存的形态
2.结构成员的含义
3.物品信息代码的分析
074-任务结构之结构成员及相关代码的分析.
课程内容: 从任务的数量分析,我们找到了数量成员的结构,但是发现他并没有其他的信息,靠分析我们找到了任务信息整理的代码,通过分析我们了解了这个游戏的任务结构框架.
课程重点:
1.寻找结构成员作为突破点.
2.分析结构中成员的作用.
3.分析CALL的作用.
4.数据的逆向追踪
075-快捷键结构之结构成员指针和结构分析.
课程内容: 今天我们找的是快捷键结构,从快捷键存放的技能ID中我们分析出了临时存放的内存数据地址,从这个地址我们找到了快捷键技能ID的来源以及快捷键的结构.
课程重点:
1.确定找到中数据来源以及作用
2.数值的回逆
3.结构公式的分析
076-明文包寻找与分析.
课程内容: 某游戏的明文包的分析.
课程重点:
1.找到明文包重要的参数.
077-与NPC对话功能代码的分析.
课程内容: 分析对话功能代码,找到NPC结构,角色结构,游戏计算距离的函数以及坐标数据.
课程重点:
1.学会分析重要的跳转
2.学会从一般功能分析数据
078-NPC对话列表结构的分析.
课程内容:分析了NPC对话框列表结构.
课程重点:
1.结构分析的步骤讲解
2.结构成员的内存定位
3.数据来源的分析讲解
4.ID计算公式的分析.
079-如何开阔思路分析结构数据.
课程内容:通过血量分析到物品信息结构,在通过物品结构指针逆向到吃药所读取的CALL以及他保存结构指针的二叉树.并且最后分析到了,整个控件的结构,通过分析我们得到了,生活技能,宠物技能,聊天表情等数据.
课程重点:
1.结构的分析并非由一定要由结构成员去做突破点
2.学会开阔思路.
3.信息指针可能由多个结构保存.
4.每个保存的结构他的作用可能都不同.
080-从提示CALL到技能结构
课程内容:从上一节课中的提示CALL,分析出技能结构。
课程重点:
1.目标方向的分析
2.条件判断的分析
081-NPC商店物品列表结构的分析
课程内容:搜索物品的名称我们找到了很多个地址,那么哪个是正确的呢?通过改变内容的值我们找到了真正的地址,并通过分析我们分析出了他的结构.
课程重点:
1.定位结构内存
2.参数的来源
链接:http://pan.baidu.com/share/link?shareid=1517445948&uk=2721496444
密码: akek
剩下的部分:
链接: http://pan.baidu.com/share/init?shareid=3364638444&uk=3929205671
密码: 7m24
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)