class AMF_Post_Data{public List<byte> message;/// <summary>/// 初始化Message/// </summary>/// <param name="at"></param>/// <param name="headers"></param>/// <param name="bodies"></param>public AMF_Post_Data(AMFType at, int headers, int bodies){//AMF版本if (at == AMFType.AMF0){message = new List<byte>(new byte[] { 0x00, 0x00 });}else if (at == AMFType.AMF3){message = new List<byte>(new byte[] { 0x00, 0x03 });}//header数量message.Add(BitConverter.GetBytes(headers)[1]);message.Add(BitConverter.GetBytes(headers)[0]);//body数量message.Add(BitConverter.GetBytes(bodies)[1]);message.Add(BitConverter.GetBytes(bodies)[0]);}/// <summary>/// 添加Target/// </summary>/// <param name="target"></param>/// <param name="Response"></param>public void AddTargetAndResponse(string target, string Response){//添加Target长度message.Add(BitConverter.GetBytes(target.Length)[1]);message.Add(BitConverter.GetBytes(target.Length)[0]);//添加Target内容
            message.AddRange(Encoding.Default.GetBytes(target));//添加Response长度message.Add(BitConverter.GetBytes(Response.Length)[1]);message.Add(BitConverter.GetBytes(Response.Length)[0]);//添加Response内容
            message.AddRange(Encoding.Default.GetBytes(Response));}/// <summary>/// 添加Body/// </summary>/// <param name="length"></param>/// <param name="Content"></param>public void AddBody(AMF_Post_Data_Body apdb){message.AddRange(apdb.getLength());message.AddRange(apdb.Content.ToArray());}}class AMF_Post_Data_Body{private byte[] length = new byte[4];public List<byte> Content = new List<byte>();/// <summary>/// 初始化Body/// </summary>/// <param name="dt"></param>/// <param name="ArrayLength"></param>public AMF_Post_Data_Body(DataType dt, int ArrayLength){//添加类型标识Content.Add((byte)dt);//数组的话添加长度if (dt == DataType.Array){Content.Add(BitConverter.GetBytes(ArrayLength)[3]);Content.Add(BitConverter.GetBytes(ArrayLength)[2]);Content.Add(BitConverter.GetBytes(ArrayLength)[1]);Content.Add(BitConverter.GetBytes(ArrayLength)[0]);}}public void AddData(DataType dt, string value){//添加类型标识Content.Add((byte)dt);switch (dt){case DataType.Number:AddData_Number(double.Parse(value));break;case DataType.String:AddData_String(value);break;case DataType.Boolean:AddData_Boolean(Boolean.Parse(value));break;}}#region 更种类型处理方法/// <summary>/// Boolean/// </summary>/// <param name="p"></param>private void AddData_Boolean(bool p){if (p)Content.Add(0x01);elseContent.Add(0x00);}/// <summary>/// String/// </summary>/// <param name="value"></param>private void AddData_String(string value){//添加长度Content.Add(BitConverter.GetBytes(value.Length)[1]);Content.Add(BitConverter.GetBytes(value.Length)[0]);//添加内容
            Content.AddRange(Encoding.Default.GetBytes(value));}/// <summary>/// Number/// </summary>/// <param name="p"></param>private void AddData_Number(double p){byte[] b = new byte[8];b = BitConverter.GetBytes(p);for (int i = 7; i > -1; i--){Content.Add(b[i]);}}#endregionpublic byte[] getLength(){length[0] = BitConverter.GetBytes(Content.Count)[3];length[1] = BitConverter.GetBytes(Content.Count)[2];length[2] = BitConverter.GetBytes(Content.Count)[1];length[3] = BitConverter.GetBytes(Content.Count)[0];return length;}}#region 类型枚举public enum AMFType{AMF0,AMF3}public enum DataType{Number = 0,Boolean = 1,String = 2,UntypedObject = 3,MovieClip = 4,Null = 5,Undefined = 6,ReferencedObject = 7,MixedArray = 8,End = 9,Array = 10,//0x0A  Date = 11,//0x0B  LongString = 12,//0x0C  TypeAsObject = 13,//0x0D  Recordset = 14,//0x0E  Xml = 15,//0x0F  TypedObject = 16,//0x10  AMF3data = 17//0x11
    }#endregion

转载于:https://www.cnblogs.com/NoRoad/p/3340094.html

网页游戏外挂辅助AMF模拟通讯必备相关推荐

  1. 网页游戏外挂的设计与编写:QQ摩天大楼【一】(基本技术)

    http://ouyangjia7.iteye.com/blog/674834 网页游戏外挂的编写很简单,不需要研究其源代码,不需要懂得汇编知识,只需要分析发送到服务器和服务器发送到本地的数据包就可以 ...

  2. 我这些年对游戏外挂辅助开发的一些心得和体会

    今天闲来无事,游戏也上不了,就写点东西吧,很少在濮阳吧里发贴子,今天我也来点贡献吧,以下内容对于有些人来说,也许很有用,但对于一些不懂装懂的人来说呢,你不懂就不要乱拍砖,你可以保持沉默,大家都是有文化 ...

  3. 网页游戏封包辅助技术

    易语言网页游戏封包辅助技术 链接: https://pan.baidu.com/s/1VUCZwllr62O0ZNlFDEOJ2A 提取码: niek

  4. 《C#网络编程高级篇之网页游戏辅助程序设计(扫描版)》

    <C#网络编程高级篇之网页游戏辅助程序设计>通过编写C#网络编程语言中具有代表性的实例,向读者深入细致地讲解了如何利用C#语言进行网页游戏辅助程序设计.本书通过大量的代码引导读者一步步学习 ...

  5. 网页游戏《武林英雄》切磋的模拟(文字)

    "你对未来的规划是什么?" "单纯的说,追求科学严谨的东西." "看来你还是很迷啊." 不积跬步无以至千里,没有兴趣怎能下苦工 玩的一款网页 ...

  6. 网页游戏开发入门教程二(游戏模式+系统)

    2019独角兽企业重金招聘Python工程师标准>>> 一.游戏模式 目前webgame游戏模式大体上可以分为以下四类: 1.玩家拥有一个城市,不断的升级城市内建筑,建筑可以自动获得 ...

  7. 外挂辅助与安全技术的爱恨情仇

    番外篇--还计算机专业学生清白 "你是学计算机的啊,帮我做个外挂呗"-- "我qq密码忘了帮我找回来 ","怎么找?自己申述啊!",&quo ...

  8. \t\tFlash网页游戏辅助工具制作简析

    <热血三国>好像是比较热,玩的人也挺多的,年前一个朋友希望能让我写一个这个游戏的外挂,也出于无聊,所以去玩了一下,谁知道一玩就有点喜欢这个游戏了,当然玩归玩,东西还是要做地,当然还不能算得 ...

  9. 【游戏外挂、修改器、辅助研究1】认识外挂

    1.什么是游戏外挂 随着电子游戏的兴起,许多人都在以游戏娱乐, 自然,有人的地方就有需求,就有竞争, 人们竞争着等级.排名.装备.物品等等, 可是,要怎么获得这些东西呢? 自然是刷怪,无穷无尽地刷怪, ...

  10. C++编写网页游戏辅助工具~~~~~~~

    有人肯定会问,简单游,按键精灵,C#等, 这么轻松就能写辅助,为什么还用C++? 别人写的辅助也都用过不少,简单功能模拟按键确实能做到,但是存在非常多的问题,软件缓存大,开2个号就非常卡.等等. 而且 ...

最新文章

  1. 基于图像到UV Map映射的3D手部高保真重建网络(ICCV2021)
  2. 从难以普及的数据增强技术,看AI的性价比时代
  3. SAP concur image download on request
  4. 基于材料数值计算大数据的材料辐照机理发现
  5. .NET 技术社区之我见(中文篇)
  6. 为什么以前的电视一打雷就容易烧坏,现在的电视就不那么怕雷?
  7. php笔试有多少分钟,PHP研发工程师笔试题(半小时)
  8. Fiddler抓取HTTPS最全(强)攻略!
  9. 计算机屏幕显示不能全屏,电脑屏幕小软件显示不全
  10. python作排产计划_排产计划表
  11. get请求 params参数传递以及获取
  12. java愤怒的小鸟代码_用java实现小游戏“愤怒的小鸟”附源码和效果演示
  13. 全志科技/汇顶科技/兆易创新营收与存储器涨价潮有啥关系?
  14. 项目管理之研发人员的考核
  15. 巨杉数据库sequoiadb笔记
  16. 关于mapv点击事件无法点中问题
  17. CF练习——2020暑假第二周
  18. 手把手教你如何搭建一个自己的安卓快速开发框架之带你做自己的APP(二)
  19. 408知识框架总结——计算机网络
  20. 解决三星手机拍照默认横屏问题

热门文章

  1. requirejs+jquery表单验证
  2. 开源公告|微信云端深度学习推理框架WeChat TFCC开源啦!
  3. QuickChm 制作chm文档 chm文档脚本错误,乱码
  4. 49-从哥尼斯堡七桥问题开始
  5. 初识C++——类与对象的详细说明(二)
  6. 如何使用高德地图 API 做一个路线规划应用,展示自定义路线
  7. 农场渲染文件服务器搭建,在渲染农场部署Maya to Arnold
  8. 关于ADC采样的采样频率,采样时间的问题
  9. linux 小企鹅输入法,Linux基础操作小全及Fcitx(小企鹅五笔输入法)
  10. python中format使用