网页游戏外挂辅助AMF模拟通讯必备
生活随笔
收集整理的這篇文章主要介紹了
网页游戏外挂辅助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);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模拟通讯必备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度快照劫持是什么意思?如何解决百度快照
- 下一篇: matlab 阿伦方差,GitHub -