gcjb 发表于 2013-7-18 20:07:06

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

对一个没保护,没壳的游戏来说,数据拿来卖不是等于欺负菜鸟么?

//基址
#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)//任务名字

liqiao351 发表于 2013-7-18 22:23:54

请问 有没有什么特殊的功能呢?

zhang8848 发表于 2013-7-20 09:32:56

支持你!太厚道了:victory:

zwzht0428 发表于 2013-7-24 20:48:54

这个必须顶啊...楼主真是好人

海蚀魂 发表于 2013-7-29 14:58:44

支持。,交流

zhang8848 发表于 2013-8-1 21:31:05

太厚道了,非常感谢!

yuan71058 发表于 2013-8-2 16:38:22

楼主辛苦,谢谢你!
页: [1]
查看完整版本: 笑傲江湖部分工程代码 有CALL地址 有各种数据结构偏移