Ejemplo n.º 1
0
        public static void SetEnvironment(Settings settings)
        {
            var myUsernamePointer = getenv("USERNAME");
            var myUsername = Marshal.PtrToStringAnsi(myUsernamePointer);

            _putenv("COMPUTERNAME=" + settings.Computername.ToUpper());
            _putenv("USERDOMAIN=" + settings.Computername.ToUpper());
            _putenv("USERDOMAIN_ROAMINGPROFILE=" + settings.Computername.ToUpper());
            _putenv("USERNAME="******"TMP=C:\Users\" + settings.WindowsUserLogin + @"\AppData\Local\Temp");
            _putenv("VISUALSTUDIODIR=");

            if (settings.ProcessorIdent != null && settings.ProcessorIdent != null && settings.ProcessorCoreAmount != null && settings.ProcessorLevel != null)
            {
                _putenv("PROCESSOR_IDENTIFIER=" + settings.ProcessorIdent);
                _putenv("PROCESSOR_REVISION=" + settings.ProcessorRev);
                _putenv("NUMBER_OF_PROCESSORS=" + settings.ProcessorCoreAmount);
                _putenv("PROCESSOR_LEVEL=" + settings.ProcessorLevel);
            }

            _putenv(@"USERPROFILE=C:\Users\" + settings.WindowsUserLogin);
            _putenv(@"HOMEPATH=C:\Users\" + settings.WindowsUserLogin);
            _putenv(@"LOCALAPPDATA=C:\Users\" + settings.WindowsUserLogin + @"\AppData\Local");
            _putenv(@"TEMP=C:\Users\" + settings.WindowsUserLogin + @"\AppData\Local\Temp");
            _putenv(@"APPDATA=C:\Users\" + settings.WindowsUserLogin + @"\AppData\Roaming");

            var pathPointer = getenv("PATH");
            var path = Marshal.PtrToStringAnsi(pathPointer);
            path = path.Replace(myUsername, settings.WindowsUserLogin, StringComparison.InvariantCultureIgnoreCase);
            _putenv("PATH=" + path);
        }
Ejemplo n.º 2
0
        public static string VerifyIniFile(string iniFile)
        {
            iniFile = Directory.GetCurrentDirectory() + "/" + iniFile;
            if (!File.Exists(iniFile))
                throw new ArgumentException("IniFile not found");

            var verify = new Settings(iniFile);
            return iniFile;
        }
Ejemplo n.º 3
0
        public void Run(RemoteHooking.IContext InContext, string channelname, string iniFile, string qDll, string qParam)
        {
            settings = new Settings(iniFile);
            InitializeHooks();
            Environment.SetEnvironment(settings);
            RemoteHooking.WakeUpProcess();

            while (true)
            {
                Thread.Sleep(1000);
            }
        }
Ejemplo n.º 4
0
        public GraphicsCardHook(IntPtr address, Settings settings)
        {
            _settings = settings;

            var dxgiHandle = Utility.GetModuleHandle("dxgi.dll");
            var getDescPtr = dxgiHandle + getDescOffset;
            GetDesc1Original = (GetDesc1Delegate) Marshal.GetDelegateForFunctionPointer(getDescPtr, typeof (GetDesc1Delegate));

            _name = string.Format("GetDescHook_{0:X}", getDescPtr.ToInt32());
            _hook = LocalHook.Create(getDescPtr, new GetDesc1Delegate(GetDesc1Detour), this);
            _hook.ThreadACL.SetExclusiveACL(new Int32[] {0});
        }