Exemplo n.º 1
0
        private void PatchEXE(ExecutablePatchInfo executable)
        {
            label1.Visible = true;
            label1.Text    = "Patching...";
            BinaryWriter writer = new BinaryWriter(new FileStream(fileName, FileMode.Open, FileAccess.Write));

            if (checkBox1.Checked)
            {
                writer.BaseStream.Position = executable.ArchiveOff;
                while (writer.BaseStream.Position < executable.ArchiveOff + executable.ArchiveSize)
                {
                    writer.Write((byte)0);
                }
                writer.BaseStream.Position = executable.ArchiveOff;
                for (int i = 0; i < executable.ArchiveSize && writer.BaseStream.Position < executable.ArchiveOff + executable.ArchiveSize && i < textBox1.Text.Length; ++i)
                {
                    writer.Write(textBox1.Text[i]);
                }
            }
            if (checkBox2.Checked)
            {
                writer.BaseStream.Position = executable.LevelOff;
                while (writer.BaseStream.Position < executable.LevelOff + executable.LevelSize)
                {
                    writer.Write((byte)0);
                }
                writer.BaseStream.Position = executable.LevelOff;
                for (int i = 0; i < executable.LevelSize && writer.BaseStream.Position < executable.LevelOff + executable.LevelSize && i < textBox2.Text.Length; ++i)
                {
                    writer.Write(textBox2.Text[i]);
                }
            }
            writer.Close();
            label1.Text = "Patched!";
        }
Exemplo n.º 2
0
        private void LoadEXE(ExecutablePatchInfo executable)
        {
            this.executable = executable;
            BinaryReader reader = new BinaryReader(new FileStream(fileName, FileMode.Open, FileAccess.Read));

            textBox1.MaxLength         = executable.ArchiveSize;
            textBox2.MaxLength         = executable.LevelSize;
            reader.BaseStream.Position = executable.ArchiveOff;
            char ch = '\0';

            do
            {
                ch             = reader.ReadChar();
                textBox1.Text += ch;
            }while (ch != '\0');
            reader.BaseStream.Position = executable.LevelOff;
            do
            {
                ch             = reader.ReadChar();
                textBox2.Text += ch;
            }while (ch != '\0');
            reader.Close();
        }