For instance, on the BAT ico site, you can see the crowdsale contract address, the ABI and also a string to use in the data part of your transaction if you don't want to call the contract function using the ABI.
The data to put in the transaction is 0xb4427263 that corresponds to the createTokens() function.
How did they manage to get this 0xb4427263 hex value ? Did they have to make a transaction using the ABI first then get the data from the transaction or is there a direct way to get the value without sending a transaction ?