Hackers can't manipulate your code. They can only execute it like all other people. Smart contracts are hacker resistant. If you leave a hole in your system so anyone can enter and execute the code they see via that hole. The_Dao wasn't exactly an hack, it was an exploit, the code was written in the wrong way.
Anyone can see your compiled code on the blockchain, but in order to understand how it works they need a human readable code usually. If you don't publish the "human-version" they will only see the compiled code. At the moment, there is no tool allowing you to get the human code starting from the compiled one.
If you code is VERY easy (?!?) so maybe one can understand something from the compiled version. I could never recognize a code written by me if you show me the compiled version.
check this one
https://etherscan.io/address/0x2f593f1809876bf76d0992e0527a19d56b44754c
there is a TAB: contract code
click and see the link VERIFY AND PUBLISH,
if you know the original "human" code you can publish it,
the system will compile it and compare it to the compiled code existing online,
if they match it is accepted and shown, and people can audit the compiled one reading the human version.
This is how it works.
If I use a dapp, I can easy find in js the contract address.
You can't hide a contract.
You could fill the contract with lot of rubbish code, so the compiled version will be more complex, if you want to feel more comfortable. But so far I never met anyone very comfortable with reading the compiled code.
You can make a test, write a code, and offer a bounty to see if anyone can read it.