@Override
	public byte[] readBytes(long index, long length) throws IOException {
		ensureBounds(index, length);
		try {
			byte[] bytes = new byte[(int) length];
			int nRead = memory.getBytes(getAddress(index), bytes);
			if (nRead != length) {
				throw new IOException("Unable to read %d bytes at index %s".formatted(length,
					Long.toUnsignedString(index)));
			}
			return bytes;
		}
		catch (IOException e) {
			throw e;
		}
		catch (Exception e) {
			throw new IOException(e.getMessage());
		}
	}
Returns the address range of the bytes of this provider.

@return address range of first byte to last byte of this provider
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/MemoryByteProvider.java