Como procurar por valores Hexadecimais em arquivos?

Bom dia!!!
Preciso encontrar valores hexadecimais em um arquivo, e pegar a posição desse valor encontrado.
São 5 valores.
Por exemplor encontrar o valor hex1: BCFDA1 (esse valor pode ser procurando como uma String).
Na verdade é um prog que extrai texto de arquivos, esse valor hex indica o inicio do bloco de texto.
Ex.:
arquivo.bin aberto

BCFDA1
@Perfect timing. I just got an
important piece of info.

sendo o arquivo de 500Mb, qual seria a melhor forma de fazer isso?
Muito obrigado!!!

Bom dia!!!

public void ExtrairDados(){
        String[] ini_diag = "05300D","100C40","060A30","060530","100C40","100C"};
        try{
             RandomAccessFile rFile = new RandomAccessFile(file,"rw");
             Scanner scanner = new Scanner(new File(file));
             int size = rFile.length();
             //com esse metodo posso procurar uma string mas não tenho a posição da mesma
 quando for encontrada
             scanner.findWithinHorizon("100C40",0);
             for(int z = 0; z < size; z++){
                  rFile.seek(z);
                  //como posso aqui procurar pelo array acima, de uma forma dinamica?
             }
        }catch(FileNotFoundException f){
                 
        }catch(IOException io){

        }

}

preciso saber o local de onde foi encontrada a string com o valor procurado.