Licenças - Qual usar?

Boa tarde, GUJ!

Estou desenvolvendo uma biblioteca em Java e pretendo disponibilizá-la para todos. O problema é: sob qual licença eu devo disponibilizá-la? Existem várias licenças (Apache, BSD, GPL…) mas não sei qual delas protegeria meu trabalho do modo que eu quero que ele seja protegido:

A pessoa que utilizá-la pode utilizar de maneira comercial ou não-comercial, porém deve incluir em algum lugar no programa o uso da biblioteca (i.e.: No “sobre”). Como eu sei que até mesmo um programa Java compilado pode ser descompilado, seria interessante também que não permitisse engenharia reversa ou, caso não seja possível, impossibilite o uso de maneira comercial com o código modificado

Qual licença usar?

Deixa eu ver se entendi. Você vai disponibilizar a biblioteca, mas sem os fontes? (Porque as licenças que citou são para código aberto.)

Creio que você mesmo pode estipular as licenças para sua biblioteca, ditando as condições para uso comercial e não-comercial. Acho que o software FMOD é um bom exemplo para você se basear:
http://www.fmod.org/fmod-sales.html
Como disse o Ataxexe, as licenças que você citou são para código aberto. Não conheço a licença Apache, mas a licença BSD não impõe restrições ao uso (ou seja, você não pode impedir que sua biblioteca seja modificada, nem que seja usada em programas de qualquer natureza), e a licença GPL não restringe a modificação nem o uso comercial, contanto que o código-fonte das modificações esteja disponível para todos.

Bem… Visto que mesmo compilado o código-fonte da livraria ainda pode ser obtido, pretendo sim disponibilizá-lo. Então, basicamente, eu gostaria de uma licença que diga “Use como quiser, mas me dê créditos!”

Então acho que o mais adequado para a sua biblioteca seria uma licença BSD ou a licença Apache.
http://en.wikipedia.org/wiki/BSD_licenses
http://en.wikipedia.org/wiki/Apache_license