Will it matter if you don't give codes to noobs? Once the app is released, they could do the same thing. Only difference would be that they have to buy a copy then crack it.
Is there any way within your code to know if it's a cracked version or a paid version?
I don't know your app, but maybe having someone register the program otherwise they get a 'lite' version. Or have ads come up only if it's not registered.
Customer buys the app, they get everything that's advertised, but they get ads or more levels/sounds/shapes/maps ... IF they choose to register. The app then can check from time to time to make sure it's registered (say once a week) then drop it back to the lite/ad based version if it's not the machine it was registered on.
I don't know Apples rules yet, they might bark at this concept, but clearly Apple needs to step up and do something. Even given that most cracked app users wouldn't buy anyways, if you get a 20% boost, it's still YOUR app and YOU did the work.
Back in the old days, there used to be products we could buy that helped stop this, we'll probably see that happen with phone apps.