怎么防止反编译

如何防止反编译
危害:
相对于编译而言的,它是将二进制程序转换成人们易读的一种描述语言的形式,是逆向工程中的常见手段。反编译的结果是易读的代码,这样就暴露了客户端的所有逻辑,比如与服务端的通讯方式,加解密算法、密钥,转账业务流程、软键盘技术实现等等。

请教怎么防止反编译
------解决方案--------------------
java和C#是没办法的,即使混淆了也是能看懂的, 可以用C/C++,被反出来的是汇编,现在能看汇编的不多了.