If you are running BetaFlight, you can program and flash your BLHeli ESCs directly through the flight controller, without disconnecting the signal wires or disassembling up the copter at all. This method originally worked only with ESCs having the BLHeli bootloader, but as of Betaflight 2.6.1 and BLHeli 14.5, it can work with SimonK bootloader too, or even mixed bootloader scenarios!
PLEASE NOTE! This does not work on the following boards.
Moto Tornado, because the 5v buffers on the motor outputs are uni-directional and do not support bi-directional communication. These buffers make the motor outputs more stable, but prevent passthrough. There is no software fix for this. The only fix would be a re-design of the board to remove the buffers or change them to bi-directional buffers.