网页游戏外挂辅助AMF模拟通讯必备
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);
else
Content.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]);
}
}
#endregion public 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
网页游戏外挂辅助AMF模拟通讯必备的更多相关文章
- 谈网页游戏外挂之用python模拟游戏(热血三国2)登陆
看web看多了,想写写页游的外挂,其实原理是一样的,就是端口不一样协议字段你不知道,而这也提高了点技术门槛,看我们来一点一点突破这些门槛,这次我们来用python发包模拟flash的客户端登陆. 以热 ...
- 初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程
详解游戏辅助编程 [目录] 1-什么是Windows API 2-Windows进程 3-Windows 的内存的运行原理 4-windows 中句柄的概念 5-Windows的变量类型 6-辅助实现 ...
- 游戏外挂四之利用CE和OD查找被选中怪物和怪物列表
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入)Q Q:408365330 E-Mail:egojit@qq.com 这一节我们利 ...
- 游戏辅助外gua篇:如何Dump内存获得游戏的辅助
转载请标明出处: https://dujinyang.blog.csdn.net/article/category/9267855 本文出自:[奥特曼超人的博客] 本篇邀请了 "阿七&quo ...
- C#简单游戏外挂制作(以Warcraft Ⅲ为例)
网上有很多外挂制作的教程,大多是讲针对大型网络游戏的,主要包含一些抓包.反汇编.C++的知识综合.事实也如此,常见的外挂都是使用VC++写的,从来没有过C#或者其他.NET语言编写的外挂. 作为微软. ...
- 用Python制作游戏外挂(上)
源地址:http://eyehere.net/2012/python-game-bot-autopy-1/ 悲剧成我这样的人,我知道肯定不止我一个,所以我一点都不悲伤:-( 所以我打开了4399小游戏 ...
- Unity网页游戏
Unity网页游戏是跑在浏览器的UnityWebPlayer插件中的,运行的模式是webplayer.unity3d+html 在嵌入UnityWebPlayer的网页中会调用UnityObject2 ...
- 一步步用python制作游戏外挂【转】
转自:http://www.cnblogs.com/xsmhero/archive/2013/01/03/2842973.html 玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过 ...
- Python论做游戏外挂,Python输过谁?
玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢? 我打开了4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜 ...
随机推荐
- Java 内部类的阐述
创建一个Computer抽象类:用来在Test类中创建匿名抽象类 package com.zhiyou; public abstract class Computer { int a = 1; /** ...
- AES 加密工具类
/** * AES 是一种可逆加密算法,对用户的敏感信息加密处理 对原始数据进行AES加密后,在进行Base64编码转化: */public class AESOperator { /* * 加密用的 ...
- Redis 支持的5种数据结构
redis的崛起绝非偶然,它确实有自己的新东西在里面,它不像Memcached,只能将数据存储在内存中,它提供了持久化机制和数据同步,避免了宕机后的雪崩的问题,即服务器出现问题后,内存中保留的原始数据 ...
- Database 'xxx' cannot be upgraded because it is read-only or has read-only file Make the database or files writeable, and rerun recovery.
在分离数据库DatabaseName(暂且用DatabaseName代替该数据库名)后,我将其数据文件以及日志文件移动到新增的磁盘上.然后附加该数据库,结果报如下错误: Database 'Dat ...
- Linux监控工具介绍系列——free
在Linux系统中,我们查看.监控系统内存使用情况,一般最常用的命令就是free.free命令其实非常简单,参数也非常简单,但是里面很多知识点未必你都掌握了.下面总结一下我所了解的free命令.如有不 ...
- SQLServer 日期函数大全
一.统计语句 1.--统计当前[>当天00点以后的数据] ) ) ORDER BY dateandtime DESC 2.--统计本周 3.--统计本月 4.统计当前 SELECT * FROM ...
- audacity开源VS2013环境搭建
audacity是非常不错的音频开源,其中音频效果处理的种类很多,非常方便借鉴和研究. 但是audacity的界面库是使用wxWidgets(一个跨平台的界面库),配置过程中需要折腾一下. 1,首先去 ...
- FineReport中如何进行Informix数据库连接
报表开发工具Finereport中,对于Informix数据库,定义数据连接处进行如下配置: 数据库:Others 驱动器:com.informix.jdbc.IfxDriver URL: jdbc: ...
- OpenStack 行业正进入拓展期:行业云将成为新一轮工业革命的基础设施和引擎
一直在关注华为2016 Connect 大会,本来没票,后来找朋友搞到了一张,参加了大会第一天下午的会议,时间虽短,但非常有收获.本来出发前还带了纸和笔,但是到了现场才发现只带了笔记本,笔却丢下了,所 ...
- Html文档流和文档对象模型DOM理解
前言 在理解浮动和定位时,触碰到文档流概念.为了更好理解浮动和定位,学习了文档流和DOM(文档对象模型). 正文 DOM(文档对象模型)简单理解就是编写的html页面所有内容构成的树形结构.例如: 根 ...