近日玩网页游戏七雄争霸,觉得还可以,但是玩起来太累,所以想自己开发个辅助试试

从网上找到了个《流年网页游戏辅助VIP系列教程》,看了下,遇到了一个问题

特来请高手指点。。。。。。

代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Web;
using System.Net.Sockets;
using System.IO;
using FluorineFx;
using FluorineFx.IO;
using FluorineFx.Messaging;
using FluorineFx.Messaging.Messages;
using FluorineFx.AMF3;
using FluorineFx.Net;
using System.Threading;

namespace 异步传输
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

private void Btn_CLose_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

public static byte[] bbb;
        public static byte[] ZuiZhong;
        private void Btn_ShengChengAmf_Click(object sender, EventArgs e)
        {
            txt_log.Clear();
            ByteArray g = new ByteArray();//声明一个byteArray数组

AMFMessage _amf3 = new AMFMessage(3);//定义一条AMF消息

AMFBody _amfbody = new AMFBody(txt_Target.Text, txt_Respones.Text,null);//定义一个body消息
            _amf3.AddBody(_amfbody);
            MemoryStream _Memory = new MemoryStream();//内存流
            AMFSerializer _Serializer = new AMFSerializer(_Memory);//序列化
            _Serializer.WriteMessage(_amf3);//将消息写入
         
          
            byte[] _buffer = _Memory.ToArray();
            txt_LogAmf.Text = System.BitConverter.ToString(_buffer).ToString();

byte[] pinjie = { 00, 00, 00, 12, 10, 00, 00, 00, 01, 17, 12, 09, 48, 130, 174, 83 };//需要拼接的参数
            byte[] data3 = new byte[_buffer.Length + pinjie.Length - 5];//定义data3的长度

System.Array.Copy(_buffer, 0, data3, 0, _buffer.Length - 5);//复制两个字节数组到一个字节数组,复制到data3
            System.Array.Copy(pinjie, 0, data3, _buffer.Length - 5, pinjie.Length);//↑

bbb = data3;            
txt_LogAll.Text = System.BitConverter.ToString(data3);//将data3转换成为16进制
            foreach (byte uu in data3)
            {
                txt_LogString.Text += uu.ToString()+";";//遍历data3中的十进制字节
            }
            foreach (byte jj in _buffer)
            {
                txt_log.Text += jj.ToString() + "\r\n";
        
                
            }
         
        }

private void btn_AllClearn_Click(object sender, EventArgs e)
        {
            txt_LogAmf.Clear();
            txt_log.Clear();
        }

//用Socket发送消息的封装类定义
        public class SocketSendReceiveMs
        {
            public AutoResetEvent ThreadEvent = new AutoResetEvent(false);
         
            public byte[] recvBytes = new byte[1024];
            public MemoryStream Stream1 = new MemoryStream();
            public Socket c;
            public AMFMessage SendMsg;
            public AcknowledgeMessage ReceMsg;

public object ReslutValue = null;
            public SocketSendReceiveMs()//构造函数
            {
                c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                c.ReceiveTimeout = 100;
            }
        }        
    
        private void Btn_SendAMF_Click(object sender, EventArgs e)
        {
         
            SocketSendReceiveMs ssrems = new SocketSendReceiveMs();
            
            string sendString = "POST /dynasty/messagebroker/amf HTTP/1.1\r\nAccept: */*\r\nAccept-Language: zh-CN\r\nReferer:" + txt_Referer.Text.Trim() + "\r\nx-flash-version: 11,5,502,110\r\nContent-Type: application/x-amf\r\nAccept-Encoding: gzip, deflate\r\nHost:"+txt_Host.Text+"\r\n"
                + "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)\r\n"
                + "Connection: Keep-Alive\r\nContent-Length:57\r\n"
                + "Cache-Control: no-cache\r\n"
                + "Cookie:" + txt_Cook.Text.Trim() + "\r\n\r\n";

Byte[] ByteGet = Encoding.ASCII.GetBytes(sendString);
    
            MemoryStream _MemoryStream = new MemoryStream();
            _MemoryStream.Write(ByteGet, 0, ByteGet.Length);
            _MemoryStream.Write(bbb, 0, bbb.Length);
            IPAddress _ip = IPAddress.Parse(txt_Ip.Text);
            IPEndPoint EPhost = new IPEndPoint(_ip, 80);

ssrems.c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            try
            {
                ssrems.c .Connect(EPhost);
            }
            catch
            {
                MessageBox.Show("对不起,链接出错!请检查网络链接!");
            }
            if (!ssrems.c.Connected)
            {

MessageBox.Show("链接失败!");
            }
            try
            {

ssrems.c.Send(_MemoryStream.ToArray(), _MemoryStream.ToArray().Length, 0);
                ssrems.ThreadEvent.WaitOne(6000);
            }
            catch
            {
                MessageBox.Show("sorry!SendMessage Erro!");
            }
            try
            {
           
                ssrems.c.BeginReceive(ssrems.recvBytes, 0, 1024, SocketFlags.None, new AsyncCallback(EX), ssrems);

}
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        
        public void EX(IAsyncResult ar)
        {
            SocketSendReceiveMs tmpSRMsg = (SocketSendReceiveMs)ar.AsyncState;
            int re = 0;

try
            {
                re = tmpSRMsg.c.EndReceive(ar);

tmpSRMsg.ThreadEvent.Set();
            }
            catch (Exception se)
            {
                MessageBox.Show("错误" + se.Message, "提示信息", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information);
            }
        
           
        }

private void Form1_Load(object sender, EventArgs e)
        {
            if (File.Exists(Application.StartupPath + "/文本信息.txt"))
            {
                string hh = File.ReadAllText(Application.StartupPath + "/文本信息.txt", UTF8Encoding.UTF8);
                string[] _ShuZu = hh.Split('~');
                txt_Cook.Text = _ShuZu[0].ToString();
                txt_Host.Text = _ShuZu[2].ToString();
                txt_Referer.Text = _ShuZu[1].ToString();
                txt_Ip.Text = _ShuZu[3].ToString();
                txt_Respones.Text = _ShuZu[4].ToString();
                txt_Target.Text = _ShuZu[5].ToString();
            }
            else
            {
                return;
            }
        }

private void Btn_SavePeiZhi_Click(object sender, EventArgs e)
        {
            string str = string.Format("{0}~{1}~{2}~{3}~{4}~{5}~",
                txt_Cook.Text,
                txt_Referer.Text,
                txt_Host.Text,
                txt_Ip.Text,
                txt_Respones.Text,
                txt_Target.Text);

File.WriteAllText(Application.StartupPath + "/文本信息.txt", str, UTF8Encoding.UTF8);

}

private void Btn_Close_Click_1(object sender, EventArgs e)
        {
            Application.Exit();
        }

}
}

标红的地方即为不明之处。
生成了AMF消息,序列化为字节数组。
“byte[] pinjie = { 00, 00, 00, 12, 10, 00, 00, 00, 01, 17, 12, 09, 48, 130, 174, 83 };//需要拼接的参数”,从何而来,又是干什么用的。
水平有限
请高手指点

转载于:https://www.cnblogs.com/oyzq/p/3375905.html

FluorineFx.IO.AMFMessage相关推荐

  1. 模拟登录,发送amf类型数据

    模拟登录,发送amf类型数据 参考 http://blog.csdn.net/amandag/article/details/5666219 以及 稍微修改了一下AMFPost的类  一.登录 登录过 ...

  2. flex+FluorineFx ASP.NET 视频拍照

    声明:此代码为网上代码修改而来,为与FluorineFX配合做了相应修改([Flex视频截图并通过WebService(C#)保存]) Flex代码: <?xml version="1 ...

  3. Redis 笔记(12)— 单线程架构(非阻塞 IO、多路复用)和多个异步线程

    Redis 使用了单线程架构.非阻塞 I/O .多路复用模型来实现高性能的内存数据库服务.Redis 是单线程的.那么为什么说是单线程呢? Redis 在 Reactor 模型内开发了事件处理器,这个 ...

  4. CentOS 安装docker.ce报错提示containerd.io >= 1.2.2-3问题

    centos安装docker.ce遇到报错,提示如下 # yum install -y docker-ce Last metadata expiration check: 0:01:49 ago on ...

  5. 协程和任务 异步IO 重点

    20210815 https://mp.weixin.qq.com/s/XeHaWhKztnCOIXb_2GSitQ https://mp.weixin.qq.com/s/lnox3pbpzJ2kWl ...

  6. 2021年大数据Flink(四十六):扩展阅读 异步IO

    目录 扩展阅读  异步IO 介绍 异步IO操作的需求 使用Aysnc I/O的前提条件 Async I/O API 案例演示 扩展阅读 原理深入 AsyncDataStream 消息的顺序性 扩展阅读 ...

  7. Java IO 流 学习 总结

    I/O  主要是对文件进行处理, 其主要包含3个方面的内容 1 input 输入 2 out 出入 3 File 文件 Java 流的概念 流是一组有序的数据序列,流提供了一条通道程序,可以是这条通道 ...

  8. 漫谈五种IO模型(主讲IO多路复用)

    首先引用levin的回答让我们理清楚五种IO模型 1.阻塞I/O模型 老李去火车站买票,排队三天买到一张退票. 耗费:在车站吃喝拉撒睡 3天,其他事一件没干. 2.非阻塞I/O模型 老李去火车站买票, ...

  9. [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)...

    一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...

最新文章

  1. Java后端简历模板,转疯了!
  2. cart2pol函数
  3. wxWidgets:wxChoicebook类用法
  4. linux如何全局搜索目录,Linux 全目录全文搜索
  5. 一款好用的切换目录的工具autojump
  6. SOTA集结,2020登顶关系抽取的3篇佳作
  7. 简单说 !![]==true 与 []==true 引发的思考
  8. Atitit SpringCloud 使用总结 目录 1.1. 启动一个服务注册中心EurekaServer 1 1.2. 三、创建一个服务提供者 (eureka client) 2 1.3. 创建
  9. 判断一个三位数是否为水仙花数
  10. 计算机考研复试_数据库
  11. Learning RoI Transformer for Detecting Oriented Objects in Aerial Images
  12. Word Embedding与Word2Vec
  13. mysql是网状_三种数据模型---层次模型、网状模型以及关系模型
  14. java发送邮件格式_java使用main函数进行邮件发送怎样设置邮件格式
  15. laravel5.5利用网易邮箱发送邮件
  16. Elastic:使用 ElastAlert 发送 Slack 通知
  17. 华为手机如何用微信与电脑连接服务器,华为手机也能连接苹果电脑,只需这样做...
  18. JS实现下落的树叶特效
  19. java 混淆war,java yguard混淆web工程
  20. Activiti7.0 EL NullPoint问题

热门文章

  1. 2020年淘宝天猫双十一成交额突破新高,倍赞网祝商家继续大卖
  2. 受用的人生哲言-经典中的经典
  3. 最美的时光在路上 - 记第一次深马
  4. python实现语音播放_用Python播放音频,并实现倍速播放——pyaudio模块用法(1)-nrg文件怎么播放...
  5. 特征提取邻域大小受限_您可以通过拖动装订线来更改两个邻域的大小
  6. java五星好评点评器_jQuery实现的五星点评功能【案例】
  7. 实际项目中应该避免@Async注解同类调用问题
  8. 从Excel薪资总表中拆分成各部门的表
  9. executeSql之执行增删改查
  10. PLSQL导出和导入sql脚本