示例#1
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);
            }
        }
示例#2
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);
            }
        }
        public static void Init()
        {
            var _firstclass = (IntPtr)SigScan.ScanPattern(Managers.Modules.ClientDLLName, "A1 ? ? ? ? C3 CC CC CC CC CC CC CC CC CC CC A1 ? ? ? ? B9", 1, 0, false); // dwGetAllClasses

            _firstclass = (IntPtr)CylMem.ReadInt((int)_firstclass);

            if (_firstclass == IntPtr.Zero)
            {
                //Environment.Exit(-1);
            }

            do
            {
                var table = (IntPtr)CylMem.ReadInt((int)_firstclass + 0xC);
                if (table != IntPtr.Zero)
                {
                    var table_name = CylMem.ReadString(CylMem.ReadInt((int)table + 0xC));
                    ScanTable(table, 0, 0, table_name);
                }

                _firstclass = (IntPtr)CylMem.ReadInt((int)_firstclass + 0x10);
            } while (_firstclass != IntPtr.Zero);
        }