Respondiendo tu pregunta a nivel basico, si lo que deseas es aprender a analizar binarios (OJO...codigo fuente compilado para una plataforma especifica), la respuesta es que
no necesitas conocimientos previos de C o C++. La ingenieria inversa es un tema sumamente amplio y debes saber en lo que te quieres enfocar. Puedes dedicarte a analizar firmwares, ejecutables, etc. En cada una de esas categorias tienes otras subcategorias (tipo de arquitectura de binario, lenguaje utilizado, compilado/interpretado, etc) y asi continua. Luego siguiendo con mi afirmacion inicial, para iniciarte en el analisis de ejecutables solo necesitas de un basico a medio entendimiento de lenguaje ensamblador y un conocimiento elemental de las APIs de windows, su uso y funcionamiento (si es que usaras este sistema operativo) o lo mismo para Unix, Android, OSX o cualquier otra plataforma donde trabajaras. Luego dependiendo de la arquitectura que desees analizar deberas enfocarte en ella (ARM, x86, x64, etc), el set de instrucciones de cada uno mas su sintaxis para cada caso (Intel, AT&T, etc). Con esto tendrias lo necesario para empezar un nivel 0 facilmente, aunque como dije al principio, todo depende de tu enfoque y lo que desees abordar.
Luego modificando tu pregunta un poco, seria bueno conocer C/C++ para realizar ingenieria inversa? Hombre, todo lo que puedas aprender nunca esta de mas en algun momento seguro lo necesitaras y aun mas, si deseas pasar de nivel 0 a niveles mas intermedios o avanzados tarde o temprano es un conocimiento muy valioso. Te ayudara a entender muchos conceptos y abrira tu mente en temas que quizas ahora consideres demasiado obscuros como para pensar en ellos.
Suerte
PD: Mis recomendaciones para iniciarte (elimina el espacio)
1-
http://ricardonarvaja. info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/
2-
http://ricardonarvaja. info/WEB/INTRODUCCION%20AL%20REVERSING%20CON%20IDA%20PRO%20DESDE%20CERO/
3-
http://ricardonarvaja. info/WEB/C%20Y%20REVERSING/