Anthony Kevin Morais went missing on 4 September after leaving his house.
Police said they had arrested seven suspects in the case, one of whom led them to the body early on Wednesday.
One of the suspects was involved in a corruption case prosecuted by Mr Morais recently, local media quoted police as saying.
The 52-year-old armed forces medical officer is believed to have contracted the other suspects, The Star quoted police as saying.
Police were led to a river at 06:00 local time on Wednesday, Comm Datuk Seri Mohmad Salleh, director of the criminal investigation department, told reporters.
Divers confirmed the oil drum was in the river and a forklift was used to hoist it out of the water, he said. The body was found after the oil drum was broken open.
CCTV footage showed Mr Morais's car being trailed by another vehicle which rammed into him. He was abducted after the collision, police said.
The body has been sent to a Kuala Lumpur hospital for post mortem examination.
The body of a missing Malaysian deputy public prosecutor has been found in an oil drum filled with concrete near Kuala Lumpur.