Translation:Good against evil is the theme of the book.
This is certainly a valid translation but I feel malbono lacks the oomph of the English evil. It's really just bad and includes most of the same ambiguities. I've seen the EO words for malice, immorality, vice, etc. These seem to be closer but inappropriate for this sentence.
Aesthetically the formal antonymy is nice here, but it sacrifices some of the thrust of the English. If I were writing this sentence I would probably use malbonego to emphasize that this is not your everyday "bad apple" sort of bad. Of course then I presume one couldn't maintain the symmetry because bonego probably reads closer to excellence.
Is this correct?
Not really. The “-aĉ-” suffix is deprecative about external aspects (hundaĉo = mutt). The “fi-” prefix is deprecative about moral or ethical aspects. Maybe fieco (or fiaĵo) would serve but it lacks the symmetry of bono/malbono.
I agree with you. In a novel or as a movie title simple malbono isn't strong enough. Depending on the type of evil, perhaps malico could work. That's evil, but implying volition.