共计 1361 个字符,预计需要花费 4 分钟才能阅读完成。
App 被破解的危险
App 破解的各种“姿态”在网上曾经泛滥成灾了,从 App 破解的入门常识到逆向工具下载,从破解技术视频到全图文教程,真的只有你想不到,没有他们做不到。
一旦 App 被破解,不仅使用者的照片、身份证、手机号、分割住址、邮箱和领取明码等敏感信息会泄露,还可能感化手机的操作系统,进而导致手机被入侵篡改,乃至成为攻击者操控的“僵尸网络”中的一部分。
对于没有成熟风控体系的开发者或者初创团队来说,App 的平安至关重要,不然可能最初变成“为别人做嫁衣”。
被入侵起因
App 为什么会被破解入侵?咱们不从伦理或者市场层面来说,而是从技术层面来了解一下。
大体上,常见的起因包含:
1. 逆向工程:黑客能够应用逆向工程技术,通过剖析应用程序的代码和二进制文件,理解应用程序的外部机制,以便发现破绽并进行攻打。
2. 动静调试:黑客能够应用动静调试工具,例如调试器和反汇编器,来跟踪应用程序的执行过程和外部变量的值,以便发现破绽并进行攻打。
3. 破绽利用:应用程序中的破绽可能会被黑客利用,例如缓冲区溢出、代码注入、SQL 注入等等,以取得对应用程序的控制权。
4. 破解工具:黑客能够应用破解工具来绕过应用程序的许可证验证和其余安全措施,以便在未经受权的状况下应用应用程序。
5. 网络攻击:应用程序可能会受到网络攻击,例如拒绝服务攻打、中间人攻打、网络嗅探等等,以取得对应用程序的控制权或窃取用户数据。
然而咱们这次从 更细节的层面 来说:
安卓 App 的开发除了局部性能采纳 C /C++ 编码外,其余次要都是采纳 Java 进行编码开发性能。Java 源码最终编译成 smali 字符码,以 classes.dex 保留在 App 的 APK 中。
Java 是一种解释性语言,功能强大,易用性强。初学者能轻松地学习 Java,并编写简略的应用程序。而且 Java 的根本类库(JDK)是开源的,这就使很多 Java 开发的利用被逆向破解的门槛很低。目前市面上有大量的逆向破解工具,例如:Dex2Jar、JEB、JD-GUI 等等。只有懂代码编程,利用这些工具就能够破解市面上那些进攻单薄、存在大量安全漏洞的 App。这就很好了解为什么会有如此多人去搜寻“App 破解”了。
之前曾有媒体报道,有网络黑产专门从各种渠道找到 App 的 apk,而后将 apk 文件逆向破解,再植入广告、病毒代码,最初从新打包投入公开市场,当不明真相的网友将带病毒广告的 App 下载后,带来的损失可能难以估计。
如何爱护 App?
这个问题,不论在哪里搜寻,答案都会是“加固”。通过加固能够对 App 进行安全性强化,肯定水平上达到防破解和避免被二次打包的成果。
App 加固次要对源码的爱护,混同、常量字符串加密、指令虚机转换;对汇编插花(防 IDA F5)、控制流扁平化等;抹除二进制 ELF 信息、ELF 壳、自定义 Linker 等;对安卓的可执行文件加壳,抽取可执行文件指定等。此外,还能够对 js、html、图片、自定义资源进行爱护,对 anti-debug 等环境进行查看等。
App 平安防护技术已经验了动静加载、不落地加载、指令抽离、指令转换 /VMP、虚机源码爱护等五个阶段。每一阶段的平安技术都是一次降级。这五代技术有什么特点呢?(手都敲痛了!)
其实这些内容,之前也讲过,这次用表格间接整理出来了,没有带上代码。感兴趣的敌人能够去翻翻我之前的记录。
以上。