专栏首页逆向与安全爱加密企业版静态脱壳机编写

爱加密企业版静态脱壳机编写

0x00:APK加固简介

  •    大家都知道Android中的程序反编译比较简单,辛苦开发出一个APK轻易被人反编译了,所以现在就有很多APK加固的第三方平台,比如爱加密和梆梆加固、360加固等。
  •  一般的加固保护通常能够提供如下保护:加密、防逆向、防篡改、反调试、反窃取等功能。

0x01:爱加密流程简单分析(dalvik)

0x02:壳运行流程大致如下:

0x03:爱加密企业版加固后Apk反编译如下

从上图可以看到方法指令都被抽走了 。

0x04:静态脱壳机编写

加壳时将方法指令抽走后自定义格式加密存放在assets/ijiami.ajm文件中,通过IDA动态调试分析发现每个被抽走的方法的debuginfo值改成0X3F开始的8字节大不的值,该值在还原时做为Map的KEY。

还原后的结构大致如下:

壳还原指令时流程如下:

  • 写静态脱壳机须要还原解密算法,它的数据又做了多重加密所以要还原多个算法,其实算法本身并不复杂,但爱加密壳做了混淆,所以比较难找有用的指令,还原后的其中一个算法如下:
  • 0x05:测试与总结
    • 将解密后的指令填充到DEX后能正常反编译出源代码。
    • OLLVM混淆后的代码分析起来目前对于我个人来说有两个难点:
    • 1.很难理清程序流程逻辑。
    • 2.还原算法时不好提取出有用的代码。
    • 代码与样本下载:链接: https://pan.baidu.com/s/1slsBYxf 密码: 87xa

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android Vmp加固实现流程图

    0x00: 目前各种加固都说是VMP了,简单分析市面上的加固,然后自己实现了一个类似原理的加固,大致流程图如下:

    我是小三
  • Linux漏洞分析入门笔记-栈溢出

    1. 在进行远程调试之前需要对Linux平台进行一些准备工作。在IDA的安装目录中的dbgsrv文件夹中,选择linux_server或者linux_serve...

    我是小三
  • 一种无法被Dump的jar包加密保护解决方案

    由于Java的指令集比较简单而通用,较容易得出程序的语义信息,Java编译后的Jar包和Class文件,可以轻而易举的使用反编译工具(如JD-GUI)进行反编译...

    我是小三
  • day18_文件的上传和下载学习笔记

    作用:告知服务器请求正文的MIME类型(文件类型)。(与请求消息头中:Content-Type作用是一致的) 可选值:

    黑泽君
  • 20180914_ARTS_week12

    因为之前做过 Integer to Roman 这个 Roman to Integer 还是比较容易有思路,和 Integer to Roman 差不多,但是这...

    Bob.Chen
  • 当Facebook创造的cassandra遇上饿了么

    摘要 1、饿了么大数据为什么选择cassandra 2、 Cassandra的基本原理 3、饿了么cassandra实践 4、 Cassandra和大数据离线平...

    IT大咖说
  • 123456

    Awk是一种用于高级文本处理的通用脚本语言,其主要用作报告和分析工具,与大多数其他程序性编程语言不同,Awk是数据驱动的,也就是说需要定义一组针对输入文本要执行...

    techou
  • awk命令

    Awk是一种用于高级文本处理的通用脚本语言,其主要用作报告和分析工具,与大多数其他程序性编程语言不同,Awk是数据驱动的,也就是说需要定义一组针对输入文本要执行...

    WindrunnerMax
  • 论买奶粉的正确姿势,文本数据挖掘有话要说

    面对市场上玲琅满目的奶粉,消费者时常不知如何选择。作为一个擅长用数据解决消费问题的网红,DT君一向推崇用户评论文本数据的挖掘。来自KPMG大数据挖掘团队的数据侠...

    DT数据侠
  • 我的世界中国版发布会于4月7日在水立方召开 将公布首测日期

    Youngxj

扫码关注云+社区

领取腾讯云代金券