Pues no se, quizas si pruebas con otro desensamblador, el Sice por ejemplo... De todas formas, salvo algunas excepciones, el Olly no suele equivocarse. Si ves una zona con instucciones absurdas o incomprensibles lo mas seguro es que realmente no se trate de codigo ejecutable sino de otra cosa.
Lo que pasa es que el Olly lo intenta interpretar TODO como código ensamblador (a no ser que le digas lo contrario como se puede hacer con la cabecera, etc). Si te vas a la zona de 'resources' que es donde se guarda la info sobre iconos y demás verás que el Olly tambien intenta interpretarlo como codigo ASM, aunque en realidad se trata de los bytes que componen el BMP que hace de icono, por ejemplo.
A veces, sobretodo en estos exes fabricados 'al gusto del consumidor' como son los troyanos, puedes encontrarte datos embebidos en el código de ejecución, quizas pertenecientes a algun icono para un mensaje de 'fake error' o algo similar...
En definitiva, si el troyano al final acaba funcionando a pesar de tocar esos bytes, es que no eran necesarios para su correcta ejecucion, con lo cual no hay problema.
Yo todavia no me he encontrado con el caso contrario, que el Olly no me interpretara bien una zona que luego SI fuera imprescindible para la ejecucion, al menos no en troyanos, asi que cuando me la encuentre ya veré que pasa

...
En cuanto a lo del hueco, creo (no estoy seguro) que el topo hace una búsqueda de las zona continua con mayor numero de ceros posible. Ademas te da a elegir si buscar solo dentro de la sección de ejecucion del PE o en todas las secciones. Es recomendable usar solo la sección de ejecucion porque alguna heurística se activa cuando detecta que el flujo de ejecucion del programa se sale de su sección.
En principio puedes usar cualquier zona que te aparezca con series de 4 ceros (2 bytes nulos) en el Olly, por supuesto cualquier zona rellenada con NOPs, y si sabes bastante de ensamblador pudes buscar código inutil y eliminarlo (los compiladores no son perfectos y a veces generan ese codigo inutil).
Salu2