当前位置:首页 » 密码管理 » 程序源代码加密

程序源代码加密

发布时间: 2024-04-28 22:10:42

Ⅰ iOS代码加密的几种方式

众所周知的是大部分iOS代码一般不会做加密加固,因为iOS
APP一般是通过AppStore发布的,而且苹果的系统难以攻破,所以在iOS里做代码加固一般是一件出力不讨好的事情。万事皆有例外,不管iOS、adr还是js,加密的目的是为了代码的安全性,虽然现在开源畅行,但是不管个人开发者还是大厂皆有保护代码安全的需求,所以iOS代码加固有了生存的土壤。下面简单介绍下iOS代码加密的几种方式。

iOS代码加密的几种方式

1.字符串加密

字符串会暴露APP的很多关键信息,攻击者可以根据从界面获取的字符串,快速找到相关逻辑的处理函数,从而进行分析破解。加密字符串可以增加攻击者阅读代码的难度以及根据字符串静态搜索的难度。

一般的处理方式是对需要加密的字符串加密,并保存加密后的数据,再在使用字符串的地方插入解密算法。简单的加密算法可以把NSString转为byte或者NSData的方式,还可以把字符串放到后端来返回,尽量少的暴露页面信息。下面举个简单例子,把NSString转为16进制的字符串:

2.符号混淆

符号混淆的中心思想是将类名、方法名、变量名替换为无意义符号,提高应用安全性;防止敏感符号被class-mp工具提取,防止IDA Pro等工具反编译后分析业务代码。目前市面上的IOS应用基本上是没有使用类名方法名混淆的。

  • 别名

  • 在编写代码的时候直接用别名可能是最简单的一种方式,也是比较管用的一种方式。因为你的app被破解后,假如很容易就能从你的类名中寻找到蛛丝马迹,那离hook只是一步之遥,之前微信抢红包的插件应该就是用hook的方式执行的。

    b.C重写

    编写别名的方式不是很易读,而且也不利于后续维护,这时你可能需要升级一下你的保护方式,用C来重写你的代码吧。这样把函数名隐藏在结构体中,用函数指针成员的形式存储,编译后,只留下了地址,去掉了名字和参数表,让他们无从下手( from 念茜)。如下例子:

    c.脚本处理

    稍微高级一点的是脚本扫描处理替换代码,因为要用到linux命令来编写脚本,可能会有一点门槛,不过学了之后你就可以出去吹嘘你全栈工程师的名头啦。。。

    linux脚本比较常用的几个命令如下:

    脚本混淆替换是用上述几个命令扫描出来需要替换的字符串,比如方法名,类名,变量名,并做替换,如果你能熟练应用上述几个命令,恭喜你,已经了解了脚本的一点皮毛了。

    如以下脚本搜索遍历了代码目录下的需要混淆的关键字:

    替换的方式可以直接扫描文件并对文件中的所有内容替换,也可以采用define的方式定义别名。例如:

    d.开源项目ios-class-guard

    该项目是基于class-mp的扩展,和脚本处理类似,是用class-mp扫描出编译后的类名、方法名、属性名等并做替换,只是不支持隐式C方法的替换,有兴趣的同学可以使用下。

    3.代码逻辑混淆

    代码逻辑混淆有以下几个方面的含义:

    对方法体进行混淆,保证源码被逆向后该部分的代码有很大的迷惑性,因为有一些垃圾代码的存在;

    对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低,这很容易把破解者带到沟里去;

    它拥有和原始的代码一样的功能,这是最最关键的。

    一般使用obfuscator-llvm来做代码逻辑混淆,或许会对该开源工具做个简单介绍。

    4.加固SDK

    adr中一般比较常见的加固等操作,iOS也有一些第三方提供这样的服务,但是没有真正使用过,不知道效果如何。

    当然还有一些第三方服务的加固产品,基本上都是采用了以上一种或几种混淆方式做的封装,如果想要直接可以拿来使用的服务,可以采用下,常用的一些服务如下:

    几维安全

    iOS加密可能市场很小,但是存在必有道理,在越狱/开源/极客的眼中,你的APP并没有你想象的那么安全,如果希望你的代码更加安全,就应给iOS代码加密。

Ⅱ 如何给源码加密

部署合力天下数据防泄密系统,对源代码加密,启用保密U盘,SVN 服务器准入控制,实现源码只能在公司运行,复制粘贴到微信,QQ,邮件乱码,个人U盘插入公司计算机无法识别,私自带出公司打开乱码。

上传到SVN服务器文档自动解密,下载到客户机文档自动加密,没有安装防泄密软件的计算机无法接入到SVN服务器。

Ⅲ 怎么保障源代码安全

可以使用源代码版本管理SVN,源代码防泄密管理DSA 等各种工具。
这些工具会有泄密的可能,比如员工离职时拷贝走、通过U盘,串口,网口拷贝走,我们应该通过断网、拔掉U口串口网口的操作来防止员工拷贝,或者安装监控,或者通过防火墙、杀毒软件等防止黑客入侵盗取。
但是这些方法都是很让员工反感的,员工不能通过上网查资料,必要时不能通过U口拷贝资料,不能通过串口调试,推荐使用SDC沙盒,即可以使用网口U口串口,也能保障了企业内部的源代码安全,也能防止黑客入侵。

热点内容
sql表中输入数据 发布:2024-05-13 13:31:01 浏览:878
生成函数语法树编译原理 发布:2024-05-13 13:29:18 浏览:662
快手上传视频有钱吗 发布:2024-05-13 13:24:08 浏览:171
thinkphp缓存文件写入失败 发布:2024-05-13 13:17:20 浏览:530
linux数据迁移 发布:2024-05-13 13:12:08 浏览:88
模糊算法java 发布:2024-05-13 13:10:54 浏览:748
java反转字符串 发布:2024-05-13 13:10:39 浏览:552
京东电脑配置哪个好 发布:2024-05-13 12:25:22 浏览:543
城堡争霸台服脚本精灵 发布:2024-05-13 12:19:38 浏览:242
压缩档已损坏 发布:2024-05-13 12:06:22 浏览:412