- 博客(27)
- 资源 (8)
- 收藏
- 关注
原创 追逐自己的梦想----------辅助制作第三十一课:向仓库存入N个物品对象分析
首先,要准备多个不同的物品,并且都是具有多个数量的物品例如:金疮药 雪原参等可以利用bp WSASend 检测发包的数据缓冲区来实现发包函数的分析,从而达到向仓库存入N个物品的功能下面就开始测试然后找到发包call,然后在ESP堆栈中发现一个地址,跟进去就可以发现这个地址007A91CE |. F3:A5 REP MOVS DWORD PTR ES:[EDI],D
2015-03-31 13:15:12 478
原创 追逐自己的梦想----------辅助制作第三十课:NPC对话更正以及封装查找NPC对象函数
今天我们就是测试了上次写的NPC对话和仓库,发现上次找到call并不是真正的打开NPC的call,所以我们需要接着上节课的分析来分析真正的打开仓库call,本次我们要测试的就是上节课中测试的15个关键位置 004D02B8 - 81 FA 0F270000 - cmp edx,0000270F 004D02BE - 0F87 C8000000 - ja Client.ex
2015-03-30 16:42:03 1240
原创 追逐自己的梦想----------辅助制作第二十九课:分析打开NPC后功能打开
在打开NPC后,我们需要打开相应要使用的功能才行。菜单选择分析,要实现这个,可以选择封包逆向的方法来进行分析通过硬件断电 bp WSASend 断下,然后逆向来寻找关键call然后执行到返回可以得到以下几个关键call00743DE0 . 803D C1671B03>CMP BYTE PTR DS:[31B67C1],100743DE7 . 0F84
2015-03-29 16:24:04 608
原创 追逐自己的梦想----------辅助制作第二十八课:打开系统NPC CALL分析
分析思路:1.打开NPC对话时,一般会访问NPC对象,可以用CE尝试找出对NPC对象访问的代码,然后回溯2.打开NPC对话是 可能会与服务器通讯,可以尝试发包函数处下断电回溯dd [31DBEAC] 玩家对象 +8 == 31 +0c [31DBEB0]de xiabiao+18 玩家名字+14b8 0xffff 未选中怪物,选中时为所有对象ID004EC9
2015-03-28 09:39:49 1835
原创 追逐自己的梦想----------辅助制作第二十七课:身上装备更换的分析与实现
分析装备更换相关功能:1.肯定会想服务器发送数据,表示更换某件装备2.访问物品对象3.访问对象属性服务器ID //为了分辨不同物品分析思路:1.从发包回溯分析2.从物品对象访问的代码分析由于也访问到了背包移动物品对象,所以我们可以接着上面几课分析007B382D |> 8B8F 08160000 MOV ECX,DWORD PTR DS:[EDI+1608]007B383
2015-03-26 20:36:00 454
原创 追逐自己的梦想----------辅助制作第二十六课:存仓库call实现
本次我们对存放仓库进行c++代码的实现,我们将这几个函数都封装在宝宝列表结构体中,具体代码如下:#define nSizePackBack 36typedef struct TBACKPACK_LIST{ TBACK_PACK_OBJ mtGoodList[nSizePackBack]; TBACKPACK_LIST* GetData(); int UseGoodsForInde
2015-03-26 19:48:58 582
原创 Cocos2d-x中瞬时动作
瞬时动作就是不等待立即执行的动作,瞬时动作的基类是ActionInstant ,具体类图参见cocos2d的文档我们通过一个实例来学习cocos2d-x中的瞬时动作首先在HelloWorld.h头文件中添加枚举,用来作为选择的标识typedef enum ActionTypes{PLACE_TAG = 102,FLIPX_TAG,FLIPY_TAG,HIDE
2015-03-26 09:44:38 736
原创 追逐自己的梦想----------辅助制作第二十五课:存仓库call分析
数据分析:1.肯定会向服务器发送数据,表示某个物品存放仓库2.访问物品对象3.访问物品对象属性服务器ID编号 ,用来分辨不同的物品分析思路:1.从发包函数回溯分析2.从物品对象访问的代码分析007B3823 |. E8 C85FFFFF CALL Client.007A97F0007B3828 |. E9 BF000000 JMP Client.007B38E
2015-03-25 19:39:01 517
原创 cocos2d-x场景与层的使用
今天学习了Cocosd-x中场景和层的使用。本次实例有两个场景HelloWord , Setting,在HelloWord的游戏设置中可以切换到Setting场景首先我们新建一个Setting类,继承自cocos2d::Layer类具体代码如下:#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#inclu
2015-03-22 19:31:14 1288
原创 追逐自己的梦想----------辅助制作第二十四课:寻路call的分析
分析关键:1.目的地坐标(通过不断改变目的地坐标来找到目的地坐标的地址,然后分析出基址即可)(XYZ , XZY ,XY)//寻路动作0046FC0B - D9 40 E4 - fld dword ptr [eax-1C]0046FC0E - 8B 91 98020000 - mov edx,[ecx+00000298]0046FC14 - D9 9A 34020000 - f
2015-03-22 16:05:31 3879
原创 cocos2d-x坐标系
在游戏开发过程中,坐标系的使用是必不可少的,然而在不同的设备中,以及在cocos2d-x中,坐标系都是不同的。在Android和ios中都是左上角作为坐标原点,而在cocos2d-x中是以左下角作为坐标原点的,并且在cocos2d中又有世界坐标和模型坐标之分,下面就让我们来详细认识下他们的区别。1.UI坐标UI坐标就是Android和ios等应用开发时候使用的二维坐标系,他的原点在左上角
2015-03-21 11:03:22 496
原创 C0C0S2D-3.04配置
这学期y一周只有4节课,所有有很多时间来学习,学习空余之际,来学习下cocos2d-x, 首先我们要做的肯定就是cocos2d-x的环境配置。我们要开发的环境win764+VS2013用到的工具有vs2013+ python+cocos2d-x首先就是vs2013的下载:MSDN-我告诉你,里面直接可以下载然后就是python,直接去python官网下载2.7版本就可以了,然后就是
2015-03-21 10:39:47 519
原创 追逐自己的梦想----------辅助制作第二十三课:挂机选项卡的实现
要实现挂机选项卡,首先我们就要新建一个对话框类,并为该对话框类添加关联类,然后在这个对话框上面添加TAB CTRL控件,并为其添加成员变量然后在主对话框中 的initdialog函数中添加m_pageMainTabe.Create(CPageMain::IDD);并且添加一个按钮来显式窗口m_pageMainTabe.ShowWindow(SW_SHOW);下面就可
2015-03-19 14:47:37 1022
原创 追逐自己的梦想----------辅助制作第二十二课:分析修炼条件的判断
人物名字基址:0x2f93d48+34 (byte) 等级+ac (dword) 历练值技能对象[0x31B85B0+ 0x410 + 4*i]+1f6 是否修炼+268 技能所需要的历练值+AC 技能所需要的等级只有当BOOL isCanStudy(){ if(isuseable){return false;}i
2015-03-18 14:45:26 579
原创 追逐自己的梦想----------辅助制作第二十一课:分析技能自动修炼call
发包函数:WSASend WSASendTo send sendtobp WSASend 004AAD0E 8985 44DFFFFF MOV DWORD PTR SS:[EBP-20BC],EAX004AAD14 8B47 10 MOV EAX,DWORD PTR DS:[EDI+10]004AAD17 52 PUSH
2015-03-18 11:18:08 1225
原创 追逐自己的梦想----------辅助制作第二十课:完善自动技能打怪
继上节完成了对快捷栏技能使用的封装,所以我们完成了自动技能打怪的版本下面给出下载地址:点击下载本次并没有做太多功能性的函数封装,只是把一些大的函数拆分成了两个小的函数。还有就是重载了拖拽技能到快捷栏的函数,使它不再是每次都执行拖拽,减少了内存的使用等。
2015-03-17 15:55:37 695
原创 追逐自己的梦想----------辅助制作第十九课:快捷栏使用物品或者技能
0069EFF1 - 8B 15 54851B03 - mov edx,[Client.exe+2DB8554]0069EFF7 - A1 58851B03 - mov eax,[Client.exe+2DB8558]0069EFFC - 39 9C B8 10040000 - cmp [eax+edi*4+00000410],ebx 0069F003 - 0F84 DE03000
2015-03-16 13:45:36 787
原创 追逐自己的梦想----------辅助制作第十八课:拖拽技能到快捷栏
007AFFC1 - A1 0CA4F500 - mov eax,[Client.exe+B5A40C]007AFFC6 - 83 C4 10 - add esp,10007AFFC9 - C7 80 28020000 00000000 - mov [eax+00000228],00000000 <<007AFFD3 - E9 7799FFFF - jmp Client.exe+3A994F
2015-03-15 15:54:07 673
原创 c++错误和异常处理
一:标准异常类标准异常类分为一下三组:1.语言支持2.逻辑错误3.运行时错误语言支持异常类:以下操作会抛出异常* 异常类bad_cast,头文件中,当dynamic_cast在运行时转化失败时抛出* 异常类bad_typeid,头文件中,当参数运算符为0或者空指针的时候抛出异常* 异常类bad_exception ,头文件中,被用来处理不期待的异常,它通常有
2015-03-15 15:50:57 507
原创 追逐自己的梦想----------辅助制作第十七课:实现技能列表的遍历及判断技能是否可用
typedef struct TSkillObj{ DWORD ndBaseObj;//返回对象基址 DWORD ndType; //分类 1B技能书分类 1C 才是使用技能分类 DWORD ndIndexForSkill; //技能列表里面的下表分类 char* szpName; DWORD ndIndexForAll; //+0c 所有对象ID BOOL IsUseable;/
2015-03-15 10:46:39 632
原创 追逐自己的梦想----------辅助制作第十六课:分析技能列表
007B3105 - 8B 84 9F 10040000 - mov eax,[edi+ebx*4+00000410]007B310C - 8B 0D 0CA4F500 - mov ecx,[Client.exe+B5A40C]007B3112 - 89 81 28020000 - mov [ecx+00000228],eax <<007B3118 - 8B 15 0CA4F500
2015-03-15 08:39:24 518
原创 c++中命名空间的使用
1.严格保证定义std::cout2.使用using 申明 using std::cout;using std::endl;cout3.可以直接申明命名空间using namespace std;cout
2015-03-14 13:19:43 367
原创 c++特性基本类型的显式初始化
以下就是初始化与未初始化的区别int i1;//未初始化int i2 = int();//初始化未0int i3{};//初始化未0 (c++11标准)同样,你可以在模板函数中使用显式初始化确定values有一个确定的值例如:templete void f(){T x = T();} 如果模板强制初始化未0,则这个值也被初始化未0,
2015-03-12 11:17:27 491
转载 c++中模板使用时候typename和class的区别
在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为: template...... 在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typ
2015-03-12 10:32:18 9983 1
原创 c11特性------------------lambdas的使用
lambdas的语法无参数的lambsad表达式auto l = []{std::cout };l();以上就完成了无参数的lambdas的使用有参数的lambdas的使用两种语法: [...] {...}或者[...] (...)#include#include带有参数的lambdas函数i
2015-03-11 12:49:11 673
原创 c++模板特性---------可变参数的使用
1.可变参数模板// c11Test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includetemplate void print(const T& arg){ std::cout << arg << std::endl;}template void print(const T& firstArg, const Typ
2015-03-11 12:30:51 733
原创 追逐自己的梦想----------辅助制作第十五课:实现动态更新基址
由于游戏更新,我们不得不去更新游戏的基址,如果每次都手动去找基址,那肯定是相当麻烦的,所以我们要做的就是利用编程来实现基址的动态更新。需要写的函数:HexStrCmp(IN const char* szpHexStr1 , IN const char* szpHexStr1);ScanFeatureCode();等一系列函数。然后再实现通配符支持就可以实现基址的自动更新了。
2015-03-11 12:20:52 2725
windows网络编程
2013-12-20
深度探索c++对象
2013-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人