Most of the marbles are porous and even though granite looks hard, it is a porous stone (except for some granites like Warangal Black, Tan Brown etc.) that allows stains to soak into the stone. Use of acid-based cleaners, including vinegar, on granite damages the surface. Before using any cleaning product on granite countertops, we must test the solution in a hidden area.
Marble or granite can have stains of paint, rust, oil, food etc. We should first clean the surface with a neutral or mild alkaline strong cleaner like R55 Intensive Cleaner from Moeller Chemie, Germany followed by the specific stain remover. However, as always "Prevention is better than Cure"; we must seal marble or granite with a good sealant / impregnator.
Please find below the details of cleaners, cement remover and Rust Removers for soft and hard stones: