防止别人反编译你的软件

翻看历史记录,可以看到之前有写过一篇文章,简单讲解了怎么反编译,或者说破解C#软件。由于大公司的项目很注重安全性,这里通过移动端APP来为例,通过几个方向点,说一下避免别人反编译你软件的几个思路,以下仅限于技术方面的处理方式,暂时想到这么多,其它的自我发散思考吧。

1.混淆代码

这是软件防反编译加密技术的必要项,也是最直接而有效的方式,对应用程序的代码进行混淆,保证源码被逆向后无法解析代码,让人几乎看不懂实现方式。这种方式现在都有用到,还有各种工具,官方和第三方都有,收费不收费都有。像Android Studio编译器都自带混淆功能,Visual Studio安装完整版也带混淆插件。

2.本地数据加密

应用程序本地配置文件,本地基本数据库,里面的数据都要通过加密算法进行加密,保护帐号和关键信息。甚至于这些配置文件的为文件名,都可以进行加密。

3.网络传输数据加密

对于c/s结构的软件来说,客户端传输数据需要提供加密方案,有效防止通过网络接口的拦截获取数据,避免网络通信数据的劫持,和通信协议格式的暴露。

4.URL编码加密

移动APP客户端,需要对程序中出现的URL进行编码加密,防止URL被静态分析。

5.程序结构混排加密

除了上面提到的代码混淆,应用软件还可以对应用程序逻辑结构进行打乱混排,保证源码可读性进一步降低。

6.加入无效代码

加入无效代码,目的也是混淆视听,以使整个程序被反编译后的代码更加复杂难懂,当然不好之处是,整个软件包变大了,这个需要酌情考虑。

7.借助第三方APP加固

这个通常是软件加密加壳工具,不多说,具体实现和思路是由该软件厂商决定的

发布了120 篇原创文章 · 获赞 50 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/u014650759/article/details/78681316