Example #1
0
        static void Main(string[] args)
        {
            CascBP  cascBP = null;
            Process process;

            try
            {
                process = MagicHelpers.SelectProcess("world of warcraft");
                var debugging = false;
                Kernel32.CheckRemoteDebuggerPresent(process.Handle, ref debugging);
                if (debugging)
                {
                    throw new Exception("Already being debugged.");
                }

                cascBP = new CascBP(process);
            }
            catch (Exception e)
            {
                PrettyLogger.WriteLine(ConsoleColor.Red, "Failed to select process: \"{0}\"", e.Message);
                return;
            }

            if (!MagicHelpers.SetDebugPrivileges())
            {
                PrettyLogger.WriteLine(ConsoleColor.Red, "Failed to set debug privileges");
                return;
            }

            try
            {
                var build = ExtractBuildFromArgs(args);
                if (build != null)
                {
                    cascBP.ForceBuild((int)build);
                }

                cascBP.Start();
                cascBP.Join();
            }
            catch (Exception e)
            {
                PrettyLogger.WriteLine(ConsoleColor.Red, "Exception: {0}", e.Message);
                return;
            }
        }