So here's my unattainable thought for how to get rid of a lot of assault rifles (which is a huge problem in the US).
Let's put human greed to work.
1. Make their sale illegal.
2. Offer a generous bounty on their return (more than their original cost.)
3. Don't require proof of ownership at the turn in.
My thought is that eventually outlaws will start stealing each other's rifles and turning them in.
There will be a slow attrition. If it slows, raise the bounty.
Police and military ones would be specially marked so they can be spotted at turn in.