Below, you mix Serial.print() and Serial.write(). Stop doing that.
for (byte i = 0; i < characters; i++)
{
Serial.write(buffer[i]);
Serial.print("gesendet: ");
Serial.println(buffer[i]);
}
The squares on the monitor result from the unprintable characters you send to it using Serial.write(), as shown below:
Serial.write('\0');
Serial.write(buffer[crcIndex]);
//Serial.print("gesendet CRC: ");
//Serial.println(buffer[crcIndex],HEX);
Serial.write(buffer[crcIndex2]);
//Serial.print("gesendet CRC: ");
//Serial.println(buffer[crcIndex2],HEX);