壳类型

• 压缩壳 upx (现在很少了)
• 加密壳 (1\2\3\4代)
• 混淆壳 ollvm (一般在so中)

什么是加固

其实和大多数 JS 加密一样,JS 加密是用加密算法去加密一些明文字符串,然后把得到的结果,用Base64、Hex等进行编码后提交。

加固其实也一样,只不过他通常加密的是dex文件而已。
但是dex文件加密以后,安卓系统是没法直接运行的。所以加固的核心,就是把dex文件加密,然后app运行过程中把dex文件解密,还原到内存中。

一代

其实 dex 内存中,都是完整且真实的明文
DexClassLoader 加载

dex 一开始是明文的,当第一次运行的时候对其进行加密,然后再把明文的 dex 删掉.

二代

其实 dex 内存中,都是完整且真实的明文

直接动态加载到内存中,进行加密。

三代

代码抽取型的壳2
  • 在内存中抽掉函数,这样直接在内存中得到的函数是不完整的(空壳)
  • 在函数调用的时候,会将代码还原回去!

其他

  • VMP壳
  • ollvm混淆
加固技术
    加固:CSO/CTO的摇篮
        什么是最好的加固
        CSO:向广度学习才是出路
        CTO:绝对深度
    不知防、焉知攻
        合规需求占90%
        业务安全需求占10%
    加固对技术的要求
        稳定90%
        全面8%
        深度2%
    App客户端常见漏洞
        组件控件安全
        业务安全
        数据安全
        manifest文件检测
        Webview组件安全
        sqlite安全
        网络通信安全
        加密算法安全
        敏感函数调用安全
        系统漏洞检测
        服务端通信安全
        https://github.com/guanchao/apk_auto_enforce
    反调试
        常用技巧
            调试器调试端口、进程名 
                https://bbs.pediy.com/thread-223460.htm
            父、自身进程名检测 
             apk线程检测、进程fd文件检测
                http://www.520monkey.com/archives/1263
            系统自带调试检测函数
             ptrace检测 
            函数hash值检测 
            断点指令检测 
             系统源码修改检测 
            单步调试陷阱 
            利用IDA先截获信号特性的检测 
            利用IDA解析缺陷反调试 
            五种代码执行时间检测 
                https://bbs.pediy.com/thread-248800.htm
            三种种进程信息结构检测 
            Inotify事件监控内存dump 
                梆梆:https://bbs.pediy.com/thread-223320.htm
        签名校验
            数据摘要、签名文件、证书文件
                梆梆:https://bbs.pediy.com/thread-223141.htm
            jarsign、signapk
            keystore和pk8、x509.pem
        模拟器检测
            https://bbs.pediy.com/thread-225717.htm
            应用多开对抗实战:https://bbs.pediy.com/thread-255212.htm
        hook检测
            检测Xposed、Cydia、Frida
                检查Package
                检测/proc/mypid/maps
                检测堆栈信息
                检测ActivityManagerNative
                https://github.com/qtfreet00/AntiFrida
                定制Xposed框架:https://bbs.pediy.com/thread-255836.htm
            7种Android Native Anti Hook的实现思路
                https://bbs.pediy.com/thread-254853.htm
        root检测
            检测su
            检测属性
    加固
        业务场景加固
            秘钥保护
            安全键盘
            界面防劫持
            短信保护
            反外挂
            清场
            协议加密
            白盒秘钥
        Java源码加固
            华为方舟:Java2C
                https://zhuanlan.zhihu.com/openarkcompiler
        Dex加固
            整体型壳
                https://github.com/guanchao/apk_auto_enforce
            函数抽取型壳
                http://www.520monkey.com/archives/1118
            Smali2C
                https://bbs.pediy.com/thread-253987.htm
            VMP
                https://github.com/chago/ADVMP
        so加固
            自主虚拟机:libavmpso
            汇编代码压缩及加密
            ELF数据隐藏
            seciton加密
                https://github.com/guanchao/AppProtect/tree/master/003-SectionEncrypt
            函数加密
                https://github.com/guanchao/AppProtect/tree/master/004-MethodEncrypt
            动态注册native方法
                https://github.com/guanchao/AppProtect/tree/master/003-动态注册native方法
                anit方法:https://bbs.pediy.com/thread-250435.htm
            hook重定向
            自定义linker
                https://bbs.pediy.com/thread-225798.htm
    混淆
        资源混淆
            https://github.com/shwenzhang/AndResGuard
        代码混淆
            Java层混淆
                Proguard:包、类、方法名、变量名
                obfuseSmaliText:字符串加解密
                https://mp.weixin.qq.com/s/SRv1Oar87w1iKuDXS4oaew
                https://sourceforge.net/p/dex2jar/wiki/DecryptStrings/
                https://github.com/CalebFenton/simplify
                DexGuard:商业级(全)
            Native层混淆
                ollvm:控制流
                孤挺花:字符串
                自主混淆器:libsgmainso
                对抗方法
                    主动调用:Frida、Xposed
                    unicorn
                        https://bbs.pediy.com/thread-252562.htm
                    unidbg
                        https://yifei.me/note/54/
                        https://github.com/zhkl0228/unidbg
                    https://bbs.pediy.com/thread-252321.htm
        反反编译器
            花指令
            对抗重打包apktool
            jd-gui、dex2jar、baksmali、shakaapktool、androguard
            idapro、010editor
                https://paper.seebug.org/228/
Last modification:May 12, 2021
如果觉得我的文章对你有用,请随意赞赏