public static bool HexScan(List<long> FoundValueOffsets, long offset, long[] ValueBlock, int ValueReadCount)
{
if (Scan64)
for (int i = 0; i < ValueReadCount; i++)
{
if ((ulong)ValueBlock[i] == HexScanUlong)
{
long xoff = offset + (i * 8);
WriteColor($"Found Hex data @{offset} + {i * 8}");
FoundValueOffsets.Add(xoff);
return true;
}
}
else
for (int i = 0; i < ValueReadCount; i++)
{
if ((uint)(ValueBlock[i] & 0xffffffff) == HexScanDword)
{
long xoff = offset + (i * 8);
WriteColor($"Found Hex ({HexScanDword:x8}) data OFFSET {offset:X16} + {(i * 8):X} @{(offset + (i * 8)):X} i={i}");
WriteColor($"{ValueBlock[i]:X16} : {ValueBlock[i + 1]:X16} : {ValueBlock[i + 2]:X16} : {ValueBlock[i + 3]:X16}");
WriteColor($"{ValueBlock[i + 4]:X16} : {ValueBlock[i + 5]:X16} : {ValueBlock[i + 6]:X16} : {ValueBlock[i + 7]:X16}");
FoundValueOffsets.Add(xoff);
return true;
}
else if ((uint)(ValueBlock[i] >> 32) == HexScanDword)
{
long xoff = offset + (i * 8) + 4;
WriteColor($"Found Hex ({HexScanDword:x8}) data OFFSET {offset:X16} + {(i * 8):X} @{(offset + (i * 8)):X}");
WriteColor($"{ValueBlock[i]:X16} : {ValueBlock[i + 1]:X16} : {ValueBlock[i + 2]:X16} : {ValueBlock[i + 3]:X16}");
WriteColor($"{ValueBlock[i + 4]:X16} : {ValueBlock[i + 5]:X16} : {ValueBlock[i + 6]:X16} : {ValueBlock[i + 7]:X16}");
FoundValueOffsets.Add(xoff);
return true;
}
}
return false;
}
#endif