Esempio n. 1
0
 public static IEnumerable <IMiniWatch> ToDWords(this IEnumerable <long> addresses, SearchEngineSettings settings)
 => settings.IsDetailed()
                         ? addresses.ToDWords(settings.Domain, settings.BigEndian)
                         : addresses.ToDetailedDWords(settings.Domain, settings.BigEndian);
Esempio n. 2
0
        public void Start()
        {
            _history.Clear();
            var domain   = _settings.Domain;
            var listSize = domain.Size;

            if (!_settings.CheckMisAligned)
            {
                listSize /= (int)_settings.Size;
            }

            _watchList = new List <IMiniWatch>((int)listSize);

            switch (_settings.Size)
            {
            default:
            case WatchSize.Byte:
                for (int i = 0; i < domain.Size; i++)
                {
                    if (_settings.IsDetailed())
                    {
                        _watchList.Add(new MiniByteWatchDetailed(domain, i));
                    }
                    else
                    {
                        _watchList.Add(new MiniByteWatch(domain, i));
                    }
                }

                break;

            case WatchSize.Word:
                for (int i = 0; i < domain.Size - 1; i += _settings.CheckMisAligned ? 1 : 2)
                {
                    if (_settings.IsDetailed())
                    {
                        _watchList.Add(new MiniWordWatchDetailed(domain, i, _settings.BigEndian));
                    }
                    else
                    {
                        _watchList.Add(new MiniWordWatch(domain, i, _settings.BigEndian));
                    }
                }

                break;

            case WatchSize.DWord:
                for (int i = 0; i < domain.Size - 3; i += _settings.CheckMisAligned ? 1 : 4)
                {
                    if (_settings.IsDetailed())
                    {
                        _watchList.Add(new MiniDWordWatchDetailed(domain, i, _settings.BigEndian));
                    }
                    else
                    {
                        _watchList.Add(new MiniDWordWatch(domain, i, _settings.BigEndian));
                    }
                }

                break;
            }
        }
Esempio n. 3
0
 public static IEnumerable <IMiniWatch> ToBytes(this IEnumerable <long> addresses, SearchEngineSettings settings)
 => settings.IsDetailed()
                         ? addresses.ToBytes(settings.Domain)
                         : addresses.ToDetailedBytes(settings.Domain);