Beispiel #1
0
        //读取职业技能被单击
        private void button3_Click(object sender, EventArgs e)
        {
            uint   i = 0x4300, 技能地址;
            string 技能名称 = "";
            int    技能等级;
            string 总技能 = "";

            ListView_Skill.Items.Clear();
            while (i <= 0x5000)
            {
                技能地址 = (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.人物基址) + i);
                技能等级 = EncDec.Decrypt(全局变量.进程ID, 技能地址 + 基址.技能等级偏移, 基址.解密基址);
                if (技能等级 >= 0 && 技能等级 < 100)
                {
                    技能名称 = TransCtr.UnicodeToAnsi(ReadWriteCtr.ReadMemByteArray(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, 技能地址 + 基址.技能名称偏移), 50));
                    if (技能名称.Length > 1 && 技能名称.IndexOf("?") == -1 && 技能名称.IndexOf("不使用") == -1 && 总技能.IndexOf(技能名称) == -1 && 技能等级 > 0)
                    {
                        this.ListView_Skill.Update();
                        ListViewItem lvi = this.ListView_Skill.Items.Add(Convert.ToString(i));
                        lvi.SubItems.Add(技能名称);
                        lvi.SubItems.Add(Convert.ToString(技能等级));
                        this.ListView_Skill.EndUpdate();
                        总技能 += 技能名称;
                    }
                }
                i += 4;
            }
        }
Beispiel #2
0
        public static void 一键评分()
        {
            int 地址;

            地址 = ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.评分基址);
            EncDec.超级加密(地址 + (int)基址.评分偏移, 5201314);
        }
Beispiel #3
0
        private void 修改属性()
        {
            //声明变量
            int  index = -1, index2, t_level, i = 0;
            uint t_add, t_pet, t_skilladd = 0;

            //ListView_SkillProperties_Edit中有项目才进行修改
            if (this.ListView_SkillProperties_Edit.Items.Count > 0)
            {
                //循环项目数次
                for (i = 0; i < this.ListView_SkillProperties_Edit.Items.Count; i++)
                {
                    index      = -1;
                    index2     = 0;
                    index2     = this.ListView_SkillProperties_Edit.Items[i].SubItems[0].Text.IndexOf("+", index + 1);                                    //公式第一个+号位置
                    t_pet      = Convert.ToUInt32(this.ListView_SkillProperties_Edit.Items[i].SubItems[0].Text.Substring(index + 1, index2 - index - 1)); //技能偏移
                    t_skilladd = (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.人物基址) + t_pet);                     //技能地址
                    t_level    = EncDec.Decrypt(全局变量.进程ID, (uint)t_skilladd + 基址.技能等级偏移, 基址.解密基址);                                                        //技能等级
                    Thread.Sleep(30);                                                                                                                     //延迟30毫秒
                    t_add = (uint)ReadWriteCtr.ReadMemCode(全局变量.进程ID, Convert.ToString(基址.人物基址) + "+" + this.ListView_SkillProperties_Edit.Items[i].SubItems[0].Text);
                    //加密
                    EncDec.Encryption(全局变量.进程ID, (uint)(t_add + 8 * (t_level - 1)), TransCtr.IntToFloat(this.ListView_SkillProperties_Edit.Items[i].SubItems[1].Text), 基址.解密基址);
                    Thread.Sleep(30);   //延迟30毫秒进入下一循环
                }
            }
            else
            {
                MessageBox.Show("List中没有数据", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #4
0
        public static void 技能无CD()
        {
            uint   i = 0x4300, 技能地址;
            string 技能名称 = "";
            int    技能等级;
            string 总技能 = "";

            while (i <= 0x5000)
            {
                技能地址 = (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.人物基址) + i);
                技能等级 = EncDec.Decrypt(全局变量.进程ID, 技能地址 + 基址.技能等级偏移, 基址.解密基址);
                if (技能等级 >= 0 && 技能等级 < 100)
                {
                    技能名称 = TransCtr.UnicodeToAnsi(ReadWriteCtr.ReadMemByteArray(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, 技能地址 + 基址.技能名称偏移), 50));
                    if (技能名称.Length > 1 && 技能名称.IndexOf("?") == -1 && 技能名称.IndexOf("不使用") == -1 && 总技能.IndexOf(技能名称) == -1 && 技能等级 > 0)
                    {
                        EncDec.超级加密((int)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址 + 基址.技能冷却1偏移) + 8 * (uint)(技能等级 - 1)), 1000);
                        EncDec.超级加密((int)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址 + 基址.技能冷却2偏移) + 8 * (uint)(技能等级 - 1)), 1000);
                        EncDec.超级加密((int)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址 + 基址.技能冷却3偏移) + 8 * (uint)(技能等级 - 1)), 1000);
                        EncDec.超级加密((int)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址 + 基址.技能冷却4偏移) + 8 * (uint)(技能等级 - 1)), 1000);
                        EncDec.超级加密((int)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址 + 基址.技能冷却5偏移) + 8 * (uint)(技能等级 - 1)), 1000);
                    }
                }
                i += 4;
            }
        }
Beispiel #5
0
        private static int 判断_游戏状态()
        {
            int i;

            i = ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.游戏状态);
            return(i);
        }
Beispiel #6
0
        public static void 超级三速()
        {
            int i;

            i = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.人物基址) + 基址.衣偏移);
            EncDec.超级加密(i + (int)基址.攻速偏移, 1500);
            EncDec.超级加密(i + (int)基址.释放偏移, 1500);
            EncDec.超级加密(i + (int)基址.移速偏移, 3000);
            //MessageBox.Show(Convert.ToString(i), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
Beispiel #7
0
        /// <summary>
        /// 解密,照搬E语言
        /// </summary>
        /// <param name="ProcessID">进程ID</param>
        /// <param name="Address">地址</param>
        /// <param name="DecryptionAdd">解密基址</param>
        /// <returns>返回解密值,失败返回0</returns>
        public static int Decrypt(int ProcessID, uint Address, uint DecryptionAdd)
        {
            //声明变量
            int eax, edx, esi = 0;

            eax = ReadWriteCtr.ReadMemInt(ProcessID, Address);
            esi = ReadWriteCtr.ReadMemInt(ProcessID, DecryptionAdd);
            edx = eax >> 16;
            edx = ReadWriteCtr.ReadMemInt(ProcessID, (uint)(esi + edx * 4 + 36));
            eax = eax & 65535;
            eax = ReadWriteCtr.ReadMemInt(ProcessID, (uint)(edx + eax * 4 + 8468));
            edx = eax & 65535;
            esi = edx << 16;
            esi = esi | edx;
            esi = esi ^ ReadWriteCtr.ReadMemInt(ProcessID, Address + 4);
            return(esi);
        }
Beispiel #8
0
        /// <summary>
        /// 加密,照搬E语言
        /// </summary>
        /// <param name="ProcessID">进程ID</param>
        /// <param name="Address">地址</param>
        /// <param name="Data">加密数据</param>
        /// <param name="DecryptionAdd">解密基址</param>
        public static void Encryption(int ProcessID, uint Address, int Data, uint DecryptionAdd)
        {
            //声明变量
            int encryptionid, offsetpara, offsetadd, data, tailofadd, decryptadd, ax, si = 0;

            encryptionid = ReadWriteCtr.ReadMemInt(ProcessID, Address);
            decryptadd   = ReadWriteCtr.ReadMemInt(ProcessID, DecryptionAdd);
            offsetpara   = ReadWriteCtr.ReadMemInt(ProcessID, (uint)(decryptadd + (encryptionid >> 16) * 4 + 36));
            offsetadd    = offsetpara + (encryptionid & 65535) * 4 + 8468;
            offsetpara   = ReadWriteCtr.ReadMemInt(ProcessID, (uint)offsetadd);
            data         = offsetpara & 65535;
            data         = data + (data << 16);
            ax           = offsetpara & 65535;

            tailofadd = (int)Address & 15;
            switch (tailofadd)
            {
            case 0:
                si = Data >> 16;
                si = si - ax;
                si = si + Data;
                break;

            case 4:
                si = (Data & 65535) - (Data >> 16);
                break;

            case 8:
                si = Data >> 16;
                si = si * Data;
                break;

            case 12:
                si = Data >> 16;
                si = si + Data;
                si = si + ax;
                break;

            default:
                return;
            }
            ax = si ^ ax;
            byte[] temp = BitConverter.GetBytes(ax);
            ReadWriteCtr.WriteMemByteArray(ProcessID, (uint)(offsetadd + 2), temp, temp.Length);
            ReadWriteCtr.WriteMemInt(ProcessID, Address + 4, data ^ Data);
        }
Beispiel #9
0
        /// <summary>
        /// Timer2:全屏吸物
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public static void 全屏吸物()
        {
            int 人物地址;
            int 地图地址;
            int 对象数量;
            int Time = 0;
            int OBJ数据;
            int OBJ类型;
            int x;
            int y;
            int z;

            if (判断_游戏状态() == 3)
            {
                ReadWriteCtr.WriteMemInt(全局变量.进程ID, 基址.自动捡物, 1300955444);
                人物地址 = ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.人物基址);
                地图地址 = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(人物地址) + 基址.地图偏移);
                对象数量 = (ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(地图地址 + 196)) - ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(地图地址 + 192))) / 4;
                for (int i = 1; i <= 对象数量; i++)
                {
                    OBJ数据 = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(地图地址 + 192)) + (uint)Time);
                    Time  = Time + 4;
                    OBJ类型 = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(OBJ数据 + 基址.类型偏移));
                    if (OBJ类型 == 289)
                    {
                        x = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(人物地址 + 488)) + 0);
                        y = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(人物地址 + 488)) + 4);
                        ReadWriteCtr.WriteMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(OBJ数据 + 200)) + 16, x);
                        ReadWriteCtr.WriteMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(OBJ数据 + 200)) + 20, y);
                    }
                }
            }
            else
            {
                return;
            }
            ReadWriteCtr.WriteMemInt(全局变量.进程ID, 基址.自动捡物, 1300959860);
        }
Beispiel #10
0
        //listview_skill事件被双击
        private void ListView_Skill_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int    技能地址1, 技能等级, 技能CD, 技能数据;
            uint   i1, i2, i3, i4, i5, 技能地址2;
            string 总技能公式 = "", 技能数据2 = "";

            //int 技能等级代码;
            全局变量.技能名 = this.ListView_Skill.SelectedItems[0].SubItems[1].Text;
            技能地址1    = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.人物基址) + Convert.ToUInt32(this.ListView_Skill.SelectedItems[0].Text));
            技能等级     = EncDec.Decrypt(全局变量.进程ID, (uint)技能地址1 + 基址.技能等级偏移, 基址.解密基址);
            this.ListView_SkillProperties.Items.Clear(); //清空ListView_SkillProperties内容
            技能CD        = EncDec.Decrypt(全局变量.进程ID, (uint)ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址1 + 基址.技能冷却1偏移) + 8 * (uint)(技能等级 - 1), 基址.解密基址) / 1000;
            label1.Text = "当前技能cd为:" + 技能CD + "秒";
            //第一层遍历
            i1 = 0;
            while (i1 < 13)
            {
                技能地址2 = (uint)Math.Abs(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址1 + 基址.超级技能偏移)) + i1)) + 20));

                if (总技能公式.IndexOf(Convert.ToString(技能地址2)) == -1 && 技能地址2 > 1000000000)
                {
                    技能数据 = EncDec.Decrypt(全局变量.进程ID, (uint)(技能地址2 + 8 * (技能等级 - 1)), 基址.解密基址);
                    if (技能数据 > 1)
                    {
                        技能数据2 = TransCtr.FloatToInt(技能数据);
                        this.ListView_SkillProperties.Update();
                        ListViewItem lvi = this.ListView_SkillProperties.Items.Add(技能数据2);                                                                                //liseview添加项
                        lvi.SubItems.Add(this.ListView_Skill.SelectedItems[0].SubItems[0].Text + "+" + Convert.ToString(基址.超级技能偏移) + "+" + Convert.ToString(i1) + "+20"); //添加次级项
                        lvi.SubItems.Add(Convert.ToString(技能地址2));
                        this.ListView_SkillProperties.EndUpdate();
                        总技能公式 = 总技能公式 + " " + Convert.ToString(技能地址2);
                    }
                }

                i1 += 4;
            }
            //第二层遍历
            i1 = 0;
            while (i1 < 13)
            {
                i2 = 0;
                while (i2 < 13)
                {
                    技能地址2 = (uint)Math.Abs(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址1 + 基址.超级技能偏移)) + i1)) + i2)) + 20));

                    if (总技能公式.IndexOf(Convert.ToString(技能地址2)) == -1 && 技能地址2 > 10000000)
                    {
                        技能数据 = EncDec.Decrypt(全局变量.进程ID, (uint)(技能地址2 + 8 * (技能等级 - 1)), 基址.解密基址);
                        if (技能数据 > 1)
                        {
                            技能数据2 = TransCtr.FloatToInt(技能数据);
                            this.ListView_SkillProperties.Update();
                            ListViewItem lvi = this.ListView_SkillProperties.Items.Add(技能数据2);                                                                                                             //liseview添加项
                            lvi.SubItems.Add(this.ListView_Skill.SelectedItems[0].SubItems[0].Text + "+" + Convert.ToString(基址.超级技能偏移) + "+" + Convert.ToString(i1) + "+" + Convert.ToString(i2) + "+20"); //添加次级项
                            lvi.SubItems.Add(Convert.ToString(技能地址2));
                            this.ListView_SkillProperties.EndUpdate();
                            总技能公式 = 总技能公式 + " " + Convert.ToString(技能地址2);
                        }
                    }
                    i2 += 4;
                }
                i1 += 4;
            }
            //第三层遍历
            i1 = 0;
            while (i1 < 13)
            {
                i2 = 0;
                while (i2 < 13)
                {
                    i3 = 0;
                    while (i3 < 13)
                    {
                        技能地址2 = (uint)Math.Abs(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址1 + 基址.超级技能偏移)) + i1)) + i2)) + i3)) + 20));

                        if (总技能公式.IndexOf(Convert.ToString(技能地址2)) == -1 && 技能地址2 > 10000000)
                        {
                            技能数据 = EncDec.Decrypt(全局变量.进程ID, (uint)(技能地址2 + 8 * (技能等级 - 1)), 基址.解密基址);
                            if (技能数据 > 1)
                            {
                                技能数据2 = TransCtr.FloatToInt(技能数据);
                                this.ListView_SkillProperties.Update();
                                ListViewItem lvi = this.ListView_SkillProperties.Items.Add(技能数据2);                                                                                                                                          //liseview添加项
                                lvi.SubItems.Add(this.ListView_Skill.SelectedItems[0].SubItems[0].Text + "+" + Convert.ToString(基址.超级技能偏移) + "+" + Convert.ToString(i1) + "+" + Convert.ToString(i2) + "+" + Convert.ToString(i3) + "+20"); //添加次级项
                                lvi.SubItems.Add(Convert.ToString(技能地址2));
                                this.ListView_SkillProperties.EndUpdate();
                                总技能公式 = 总技能公式 + " " + Convert.ToString(技能地址2);
                            }
                        }
                        i3 += 4;
                    }
                    i2 += 4;
                }
                i1 += 4;
            }
            //第四层遍历
            i1 = 0;
            while (i1 < 13)
            {
                i2 = 0;
                while (i2 < 13)
                {
                    i3 = 0;
                    while (i3 < 13)
                    {
                        i4 = 0;
                        while (i4 < 13)
                        {
                            技能地址2 = (uint)Math.Abs(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址1 + 基址.超级技能偏移)) + i1)) + i2)) + i3)) + i4)) + 20));

                            if (总技能公式.IndexOf(Convert.ToString(技能地址2)) == -1 && 技能地址2 > 10000000)
                            {
                                技能数据 = EncDec.Decrypt(全局变量.进程ID, (uint)(技能地址2 + 8 * (技能等级 - 1)), 基址.解密基址);
                                if (技能数据 > 1)
                                {
                                    技能数据2 = TransCtr.FloatToInt(技能数据);
                                    this.ListView_SkillProperties.Update();
                                    ListViewItem lvi = this.ListView_SkillProperties.Items.Add(技能数据2);                                                                                                                                                                       //liseview添加项
                                    lvi.SubItems.Add(this.ListView_Skill.SelectedItems[0].SubItems[0].Text + "+" + Convert.ToString(基址.超级技能偏移) + "+" + Convert.ToString(i1) + "+" + Convert.ToString(i2) + "+" + Convert.ToString(i3) + "+" + Convert.ToString(i4) + "+20"); //添加次级项
                                    lvi.SubItems.Add(Convert.ToString(技能地址2));
                                    this.ListView_SkillProperties.EndUpdate();
                                    总技能公式 = 总技能公式 + " " + Convert.ToString(技能地址2);
                                }
                            }
                            i4 += 4;
                        }
                        i3 += 4;
                    }
                    i2 += 4;
                }
                i1 += 4;
            }
            //第五层遍历
            i1 = 0;
            while (i1 < 13)
            {
                i2 = 0;
                while (i2 < 13)
                {
                    i3 = 0;
                    while (i3 < 13)
                    {
                        i4 = 0;
                        while (i4 < 13)
                        {
                            i5 = 0;
                            while (i5 < 13)
                            {
                                技能地址2 = (uint)Math.Abs(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)技能地址1 + 基址.超级技能偏移)) + i1)) + i2)) + i3)) + i4)) + i5)) + 20));

                                if (总技能公式.IndexOf(Convert.ToString(技能地址2)) == -1 && 技能地址2 > 10000000)
                                {
                                    技能数据 = EncDec.Decrypt(全局变量.进程ID, (uint)(技能地址2 + 8 * (技能等级 - 1)), 基址.解密基址);
                                    if (技能数据 > 1)
                                    {
                                        技能数据2 = TransCtr.FloatToInt(技能数据);
                                        this.ListView_SkillProperties.Update();
                                        ListViewItem lvi = this.ListView_SkillProperties.Items.Add(技能数据2);                                                                                                                                                                                                    //liseview添加项
                                        lvi.SubItems.Add(this.ListView_Skill.SelectedItems[0].SubItems[0].Text + "+" + Convert.ToString(基址.超级技能偏移) + "+" + Convert.ToString(i1) + "+" + Convert.ToString(i2) + "+" + Convert.ToString(i3) + "+" + Convert.ToString(i4) + "+" + Convert.ToString(i5) + "+20"); //添加次级项
                                        lvi.SubItems.Add(Convert.ToString(技能地址2));
                                        this.ListView_SkillProperties.EndUpdate();
                                        总技能公式 = 总技能公式 + " " + Convert.ToString(技能地址2);
                                    }
                                }
                                i5 += 4;
                            }
                            i4 += 4;
                        }
                        i3 += 4;
                    }
                    i2 += 4;
                }
                i1 += 4;
            }
        }
Beispiel #11
0
        public static void 超级加密(int Address, int value, int type = 0)
        {
            int 加密ID = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)Address);
            int 偏移参数 = ReadWriteCtr.ReadMemInt(全局变量.进程ID, 基址.解密基址);

            偏移参数 = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)(偏移参数 + (加密ID >> 16) * 4 + 36));
            int 偏移地址 = 偏移参数 + (加密ID & 65535) * 4 + 8468;

            偏移参数 = ReadWriteCtr.ReadMemInt(全局变量.进程ID, (uint)偏移地址);
            int data = 偏移参数 & 0xffff;

            data = data + (data << 16);
            short ax = (short)(偏移参数 & 0xffff);
            short si = 0;

            if (type == 0)
            {
                int 地址尾 = Address & 15;
                switch (地址尾)
                {
                case 0:
                    si = (short)(value >> 16);
                    si = (short)(si - ax);
                    si = (short)(si + value);
                    break;

                case 4:
                    si = (short)((value & 0xFFFF) - (value >> 16));;
                    break;

                case 8:
                    si = (short)(value >> 16);
                    si = (short)(si * value);
                    break;

                case 12:
                    si = (short)(value >> 16);
                    si = (short)(si + value);
                    si = (short)(si + ax);
                    break;

                default:
                    break;
                }
            }
            else if (type == 1)
            {
                si = (short)(value & 16);
            }
            else if (type == 2)
            {
                si = (short)value;
            }
            else if (type == 3)
            {
                si  = (short)(value >> 16);
                si += (short)value;
            }
            else if (type == 4)
            {
                si = (short)(value >> 16);
                si = (short)(si + value & 0xFFFF);
            }
            ax = (short)(si ^ ax);
            byte[] temp = BitConverter.GetBytes(ax);
            ReadWriteCtr.WriteMemByteArray(全局变量.进程ID, (uint)(偏移地址 + 2), temp, temp.Length);
            data = data ^ value;
            int a = Address + (type != 4 ? 4 : 8);

            ReadWriteCtr.WriteMemInt(全局变量.进程ID, (uint)a, data);
        }