看流星社区

 找回密码
 注册账号
查看: 6090|回复: 6

笑傲江湖部分工程代码 有CALL地址 有各种数据结构偏移

[复制链接]

该用户从未签到

发表于 2013-7-18 20:07:06 | 显示全部楼层 |阅读模式
对一个没保护,没壳的游戏来说,数据拿来卖不是等于欺负菜鸟么?

//基址
#define BASE_ADDR     0x01320A18          //全局地址
#define AUTO_MOVE     0x006F36E0          //自动寻路
#define USE_SKILL     0x00709EB0          //使用技能
#define CALL_BASE     0x00B976C0          //明文发包
//数据
#define BASE_ADD     (*(DWORD *)BASE_ADDR)       //全局基址
#define DYNAMIC_ADDR    (*(DWORD *)(BASE_ADD+0x24))      //动态基址
#define WINDOWS_ADDR    (*(DWORD *)(DYNAMIC_ADDR+0x8))     //窗口基址
#define ENVIRON_ADDR    (*(DWORD *)(DYNAMIC_ADDR+0xC))     //环境基址
#define ROLE_ATTRIBUTE    (*(DWORD *)(DYNAMIC_ADDR+0x8C))     //角色属性
#define ROLE_DATA_BASE    (*(DWORD *)(DYNAMIC_ADDR+0x90))     //角色数据
//窗口数据
#define WINDOWS_BASE    (*(DWORD *)(WINDOWS_ADDR+0x324))    //窗口控件
#define FACE_WINDOW     (*(DWORD *)(WINDOWS_BASE+0x78))     //当前窗口
#define FACE_WINDOW_NAME   (CHAR*)(*(DWORD *)(FACE_WINDOW+0x4C))   //当前窗口名
//环境数据
#define PLAYER_BASE     (*(DWORD *)(ENVIRON_ADDR+0x70))     //周围玩家基址
#define MONSTER_BASE    (*(DWORD *)(ENVIRON_ADDR+0x74))     //周围怪物基址
#define MAP_NAME_SMALL    (WCHAR *)(*(DWORD *(DWORD *)(ENVIRON_ADDR+0xB8)+4))//小地图名
#define MAP_ID      (*(DWORD *)(ENVIRON_ADDR+0x138))    //地图ID
#define MAP_NAME_BIG    (WCHAR *)(*(DWORD *(DWORD *)(ENVIRON_ADDR+0x140)+8))//小地图名
#define PLAYER_LIST     (*(DWORD *)(PLAYER_BASE+0x114))     //周围玩家列表
#define PLAYER_COUNT    (*(DWORD *)(PLAYER_BASE+0x118))     //周围玩家列表
#define PLAYER_POINT(i)    (*(DWORD *)(PLAYER_LIST+(i)*4))     //相应玩家指针
#define PLAYER_X(i)     (*(FLOAT *)(PLAYER_POINT(i)+0x3C))    //玩家坐标X
#define PLAYER_Z(i)     (*(FLOAT *)(PLAYER_POINT(i)+0x40))    //玩家坐标Z
#define PLAYER_Y(i)     (*(FLOAT *)(PLAYER_POINT(i)+0x44))    //玩家坐标Y
#define PLAYER_ID(i)    (*(DWORD *)(PLAYER_POINT(i)+0x140))    //玩家ID
#define PLAYER_NAME(i)    ((WCHAR *)(*(DWORD *)(PLAYER_POINT(i)+0x478))) //玩家名字
#define PLAYER_TITLE(i)    (WCHAR *)(*(DWORD *)(PLAYER_POINT(i)+0x480)) //玩家称号
#define PLAYER_LEVEL(i)    (*(DWORD *)(PLAYER_POINT(i)+0x68E))    //玩家等级
#define MONSTER_LIST    (*(DWORD *)(MONSTER_BASE+0xA4))     //周围怪物列表
#define MONSTER_COUNT    (*(DWORD *)(MONSTER_BASE+0xA8))     //周围怪物数量
#define MONSTER_POINT(i)   (*(DWORD *)(MONSTER_LIST+(i)*4))    //相应怪物指针
#define MONSTER_X(i)    (*(FLOAT *)(MONSTER_POINT(i)+0x3C))    //怪物坐标X
#define MONSTER_Z(i)    (*(FLOAT *)(MONSTER_POINT(i)+0x40))    //怪物坐标Z
#define MONSTER_Y(i)    (*(FLOAT *)(MONSTER_POINT(i)+0x44))    //怪物坐标Y
#define MONSTER_TYPE(i)    (*(DWORD *)(MONSTER_POINT(i)+0x138))   //怪物种类(22怪物,23NPC,25门徒)
#define MONSTER_ID(i)    (*(DWORD *)(MONSTER_POINT(i)+0x140))   //怪物ID
#define MONSTER_DIST(i)    (*(FLOAT *)(MONSTER_POINT(i)+0x17C))   //怪物距离
#define MONSTER_TAG(i)    (*(DWORD *)(MONSTER_POINT(i)+0x268))   //怪物目标
#define MONSTER_ACTION(i)   (*(DWORD *)(MONSTER_POINT(i)+0x27C))   //怪物动作
#define MONSTER_LEVEL(i)   (*(DWORD *)(MONSTER_POINT(i)+0x4B8))   //怪物等级
#define MONSTER_NAME(i)    (WCHAR *)(*(DWORD *)(MONSTER_POINT(i)+0x834)) //怪物名字
//角色属性
#define ROLE_ATT_X     (*(FLOAT *)(ROLE_ATTRIBUTE+0x3C))    //角色X
#define ROLE_ATT_Z     (*(FLOAT *)(ROLE_ATTRIBUTE+0x40))    //角色Z
#define ROLE_ATT_Y     (*(FLOAT *)(ROLE_ATTRIBUTE+0x44))    //角色Y
#define ROLE_ATT_ID     (*(DWORD *)(ROLE_ATTRIBUTE+0x140))    //角色ID
#define ROLE_ATT_STATIC    (*(BYTE *)(ROLE_ATTRIBUTE+0x35A))    //角色是否静止(1动作)
#define ROLE_ATT_NAME    (WCHAR *)(*(DWORD *)(ROLE_ATTRIBUTE+0x478))     //角色名字
#define ROLE_ATT_LEVEL    (*(DWORD *)(ROLE_ATTRIBUTE+0x68E))    //角色ID
#define ROLE_ATT_EXP    (*(DWORD *)(ROLE_ATTRIBUTE+0x6AA))    //角色经验
#define ROLE_ATT_HP     (*(FLOAT *)(ROLE_ATTRIBUTE+0x6C1))    //角色HP
#define ROLE_ATT_MP     (*(FLOAT *)(ROLE_ATTRIBUTE+0x6C5))    //角色MP
#define ROLE_ATT_HPMAX    (*(FLOAT *)(ROLE_ATTRIBUTE+0x715))    //角色HPMAX
#define ROLE_ATT_MPMAX    (*(FLOAT *)(ROLE_ATTRIBUTE+0x719))    //角色MPMAX
#define ROLE_ATT_FBCOUNT   (*(FLOAT *)(ROLE_ATTRIBUTE+0xC04))    //角色精力
#define ROLE_ATT_GJCOUNT   (*(FLOAT *)(ROLE_ATTRIBUTE+0xC08))    //角色活力
#define ROLE_ATT_STUDY    (*(DWORD *)(ROLE_ATTRIBUTE+0xE64))    //是否在学技能
#define ROLE_ATT_TAG    (*(DWORD *)(ROLE_ATTRIBUTE+0xF08))    //角色目标
//角色数据

#define PACKAGE_ADDR    (*(DWORD *)(ROLE_DATA_BASE+0x8))    //背包基址
//#define SKILL_ADDR     (*(DWORD *)(ROLE_DATA_BASE+0x1C))    //技能基址
#define TASK_ADDR     (*(DWORD *)(ROLE_DATA_BASE+0x28))    //任务基址
//角色背包B键
#define PACKAGE_EQUIP1    (*(DWORD *)(PACKAGE_ADDR+0xC))     //装备1
#define PACKAGE_USUAL    (*(DWORD *)(PACKAGE_ADDR+0x14))     //普通背包
#define PACKAGE_SMALL1    (*(DWORD *)(PACKAGE_ADDR+0x18))     //小布兜1
#define PACKAGE_SMALL2    (*(DWORD *)(PACKAGE_ADDR+0x1C))     //小布兜2
#define PACKAGE_STUFF    (*(DWORD *)(PACKAGE_ADDR+0x24))     //材料包
//装备遍历
#define PACKAGE_EQUIP1_ADDR   (*(DWORD *)(PACKAGE_EQUIP1+0x2C))    //装备基址
#define PACKAGE_EQUIP1_SIZE   (*(DWORD *)(PACKAGE_EQUIP1+0x30))    //装备格数
#define PACKAGE_EQUIP1_POINT(i)  (*(DWORD *)(PACKAGE_EQUIP1_ADDR+(i)*4))   //相应格地址
#define PACKAGE_EQUIP1_PRICE(i)  (*(DWORD *)(PACKAGE_EQUIP1_POINT(i)+0x24))  //装备价格
#define PACKAGE_EQUIP1_NAME(i)  (WCHAR *)(DWORD*(PACKAGE_EQUIP1_POINT(i)+0xE0)+0x4)//装备名字
//背包遍历
#define PACKAGE_USUAL_ADDR   (*(DWORD *)(PACKAGE_USUAL+0x2C))    //背包基址
#define PACKAGE_USUAL_SIZE   (*(DWORD *)(PACKAGE_USUAL+0x30))    //背包格数
#define PACKAGE_USUAL_POINT(i)  (*(DWORD *)(PACKAGE_USUAL_ADDR+(i)*4))   //相应格地址
#define PACKAGE_USUAL_PRICE(i)  (*(DWORD *)(PACKAGE_USUAL_POINT(i)+0x24))  //物品价格
#define PACKAGE_USUAL_COUNTMAX(i) (*(DWORD *)(PACKAGE_USUAL_POINT(i)+0x48))  //物品最大数量
#define PACKAGE_USUAL_COUNT(i)  (*(DWORD *)(PACKAGE_USUAL_POINT(i)+0x6C))  //物品数量
//小布兜1
#define PACKAGE_SMALL1_ADDR   (*(DWORD *)(PACKAGE_USUAL+0x2C))    //背包基址
#define PACKAGE_SMALL1_SIZE   (*(DWORD *)(PACKAGE_USUAL+0x30))    //背包格数
#define PACKAGE_SMALL1_POINT(i)  (*(DWORD *)(PACKAGE_SMALL1_ADDR+(i)*4))   //相应格地址
#define PACKAGE_SMALL1_PRICE(i)  (*(DWORD *)(PACKAGE_SMALL1_POINT(i)+0x24))  //物品价格
#define PACKAGE_SMALL1_COUNTMAX(i) (*(DWORD *)(PACKAGE_SMALL1_POINT(i)+0x48))  //物品最大数量
#define PACKAGE_SMALL1_COUNT(i)  (*(DWORD *)(PACKAGE_SMALL1_POINT(i)+0x6C))  //物品数量
//小布兜2
#define PACKAGE_SMALL2_ADDR   (*(DWORD *)(PACKAGE_USUAL+0x2C))    //背包基址
#define PACKAGE_SMALL2_SIZE   (*(DWORD *)(PACKAGE_USUAL+0x30))    //背包格数
#define PACKAGE_SMALL2_POINT(i)  (*(DWORD *)(PACKAGE_SMALL2_ADDR+(i)*4))   //相应格地址
#define PACKAGE_SMALL2_PRICE(i)  (*(DWORD *)(PACKAGE_SMALL2_POINT(i)+0x24))  //物品价格
#define PACKAGE_SMALL2_COUNTMAX(i) (*(DWORD *)(PACKAGE_SMALL2_POINT(i)+0x48))  //物品最大数量
#define PACKAGE_SMALL2_COUNT(i)  (*(DWORD *)(PACKAGE_SMALL2_POINT(i)+0x6C))  //物品数量
//材料遍历
#define PACKAGE_STUFF_ADDR   (*(DWORD *)(PACKAGE_USUAL+0x2C))    //背包基址
#define PACKAGE_STUFF_SIZE   (*(DWORD *)(PACKAGE_USUAL+0x30))    //背包格数
#define PACKAGE_STUFF_POINT(i)  (*(DWORD *)(PACKAGE_STUFF_ADDR+(i)*4))   //相应格地址
#define PACKAGE_STUFF_PRICE(i)  (*(DWORD *)(PACKAGE_STUFF_POINT(i)+0x24))  //物品价格
#define PACKAGE_STUFF_COUNTMAX(i) (*(DWORD *)(PACKAGE_STUFF_POINT(i)+0x48))  //物品最大数量
#define PACKAGE_STUFF_COUNT(i)  (*(DWORD *)(PACKAGE_STUFF_POINT(i)+0x6C))  //物品数量
//技能数据
//#define SKILL_ADDR1     (*(DWORD *)(SKILL_ADDR+0x10))     //技能基址1
//任务数据
#define TASK_ADDR_INF    (*(DWORD *)(TASK_ADDR+0x4))      //任务列表
#define TASK_COUNT     (*(DWORD *)(TASK_ADDR_INF))      //任务数量
#define TASK_POINT(i)    (*(DWORD *)(TASK_ADDR_INF+(i)*0x7E))   //相应任务地址
#define TASK_ID(i)     (*(DWORD *)(TASK_POINT(i)+0x1F))    //任务ID
#define TASK_NAME(i)    (WCHAR *)(DWORD*(TASK_POINT(i)+0x3B)+0x8)  //任务名字

评分

参与人数 1流星币 +1 收起 理由
海蚀魂 + 1 不知道是什么工具看的

查看全部评分

该用户从未签到

发表于 2013-7-18 22:23:54 | 显示全部楼层
请问 有没有什么特殊的功能呢?

该用户从未签到

发表于 2013-7-20 09:32:56 | 显示全部楼层
支持你!太厚道了

该用户从未签到

发表于 2013-7-24 20:48:54 | 显示全部楼层
这个必须顶啊...楼主真是好人

该用户从未签到

发表于 2013-7-29 14:58:44 | 显示全部楼层
支持。,交流

该用户从未签到

发表于 2013-8-1 21:31:05 | 显示全部楼层
太厚道了,非常感谢!

该用户从未签到

发表于 2013-8-2 16:38:22 | 显示全部楼层
楼主辛苦,谢谢你!
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-20 01:54

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表