示例#1
0
        public static IntPtr ScanPatterna(string mModuleName, string mPattern)
        {
            IntPtr        hProcess       = CylMem.hProcess.Handle;
            ProcessModule SelectedModule = null;

            foreach (ProcessModule module in CylMem.hProcess.Modules)
            {
                if (Path.GetFileName(module.FileName) == mModuleName)
                {
                    SelectedModule = module;
                }
            }
            if (SelectedModule == null)
            {
                throw new Exception("Selected Module is Null !");
            }
            var scanner = new SigScan(hProcess);

            scanner.SelectModule(SelectedModule.BaseAddress, SelectedModule.ModuleMemorySize);
            IntPtr Scaned = (IntPtr)scanner.FindPattern(mPattern, out long time);

            if (Scaned != IntPtr.Zero)
            {
                return(Scaned);
            }
            else
            {
                return(IntPtr.Zero);
            }
        }
示例#2
0
        public static int ScanPattern(string mModuleName, string mPattern, int Offset = 0, int Extra = 0, bool ModuleSubract = false)
        {
            IntPtr        hProcess       = CylMem.hProcess.Handle;
            ProcessModule SelectedModule = null;

            foreach (ProcessModule module in CylMem.hProcess.Modules)
            {
                if (Path.GetFileName(module.FileName) == mModuleName)
                {
                    SelectedModule = module;
                }
            }
            if (SelectedModule == null)
            {
                throw new Exception("Selected Module is Null !");
            }
            var scanner = new SigScan(hProcess);

            scanner.SelectModule(SelectedModule.BaseAddress, SelectedModule.ModuleMemorySize);
            int Scaned = (int)scanner.FindPattern(mPattern, out long time);

            if (Scaned != 0)
            {
                var Scan = CylMem.ReadInt(Scaned + Offset) + Extra;
                if (ModuleSubract)
                {
                    Scan -= (Int32)SelectedModule.BaseAddress;
                }
                return(Scan);
            }
            else
            {
                return(0);
            }
        }