新的 APK 加固方法? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kingof
V2EX    Android

新的 APK 加固方法?

  •  
  •   kingof 2020-05-27 08:01:57 +08:00 18852 次点击
    这是一个创建于 1977 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近发现一个挺有意思的 apk 加固的方式,
    简单来说,他把每个方法的方法体里面的代码全部隐藏,
    反编译出来方法体内全部是 return null,
    查看 smali 则有大量的 nop 指令。

    想请教一下大家知不知道这是什么工具实现的?


    图片如下:
    ![AowuO.png]( https://s3.jpg.cm/2020/05/27/AowuO.png)
    ![AooBw.png]( https://s3.jpg.cm/2020/05/27/AooBw.png)
    22 条回复    2024-12-18 14:41:15 +08:00
    FourAndHalf
        1
    FourAndHalf  
       2020-05-27 08:07:27 +08:00
    啥工具?
    nilai
        2
    nilai  
       2020-05-27 08:16:37 +08:00 via iPhone
    抽空 再填充
    iFlicker
        3
    iFlicker  
       2020-05-27 08:52:59 +08:00 via Android
    之前记得有个操作是把方法内容都抽到 native 层
    hugedeffing
        4
    hugedeffing  
       2020-05-27 08:59:03 +08:00
    没看到包不知道具体操作,猜测基本逻辑应该还是 java2c,dex 取 insn 块,填充 return null,批量加 tag,后续 c 层回调用 java 或者回填字节码。问题在于如何进行函数对标,考虑可能是函数签名做唯一标识,但只是猜测,直接打个 id 和用函数签名其实差不多。
    MaxLi77
        5
    MaxLi77  
       2020-05-27 09:29:13 +08:00
    这是几年前的技术了。。不过加固技术基本已经到头,以后估计也不会有太多新技术。。
    janxin
        6
    janxin  
       2020-05-27 10:10:20 +08:00
    加壳吧,抽出来放 native 里了
    /tr>
    InkStone
        7
    InkStone  
       2020-05-27 10:39:45 +08:00   1
    指令抽取。要破解的话一般是用定制 ROM,在底层主动调用触发方法 byte code 回填。

    你去看银行的 app,一般都是指令抽取的加固。
    kingof
        8
    kingof  
    OP
       2020-05-27 11:00:12 +08:00
    @MaxLi77
    @hugedeffing

    有没有类似的加固工具?
    hugedeffing
        9
    hugedeffing  
       2020-05-27 11:09:06 +08:00
    @kingof 基本大厂都有,免费的也有,github 上也有开源的
    fixend
        10
    fixend  
       2020-05-27 11:09:34 +08:00
    @kingof 网易网盾?
    ifxo
        11
    ifxo  
       2020-05-27 11:10:35 +08:00
    至少是 5 年前的方法了吧
    kingof
        12
    kingof  
    OP
       2020-05-27 12:02:07 +08:00
    @ifxo 我真是 outdate 了:),这种方我还是第一次见
    kingof
        13
    kingof  
    OP
       2020-05-27 12:02:34 +08:00
    @fixend 感谢感谢,试一下
    kingof
        14
    kingof  
    OP
       2020-05-27 12:03:12 +08:00
    @hugedeffing 开源的,能给个名字或关键词吗?
    MaxLi77
        15
    MaxLi77  
       2020-05-27 14:57:06 +08:00
    @kingof

    各大加固厂都有,稳定性,兼容性比开源的要好
    Jf35jxN3fwBXyeLh
        16
    Jf35jxN3fwBXyeLh  
       2020-05-27 19:06:20 +08:00
    这个是 smali 指令抽取,将 dex 中方法的指令抽走,然后利用 hook 技术在 dalvik/art 中注入代码,当 dalvik/art 执行到这个方法时,把抽走的的指令再填充回来;这种加固方法目前也是有比较稳定的脱壳工具的,一般都在 art 中强行回填所有的指令,再把 dex 拿下来。更强的是 dex vmp 了,鄙人不才,曾写过一篇文章, google 搜索 《 Android DEX-VMP 虚拟保护技术》

    ![]( https://note.youdao.com/yws/api/personal/file/WEB6257433f62df857cab1cb04a997a1093?method=download&shareKey=f07da1da1c99a6a7b7a982920d22ce3d)
    ![]( https://note.youdao.com/yws/api/personal/file/WEBc9611c867e699c63d5cb19fe0ee65a4b?method=download&shareKey=2007fce0d8835820ce396364350e5fb6)
    ![]( https://note.youdao.com/yws/api/personal/file/WEBaf6a6e6f036d29861b21e8db61c951d6?method=download&shareKey=1197e0cbc415de156d72509f982207c9)
    Jf35jxN3fwBXyeLh
        17
    Jf35jxN3fwBXyeLh  
       2020-05-27 19:09:17 +08:00
    @MaxLi77 哥们说得对,加固技术基本到头了
    amimo
        18
    amimo  
       2020-05-27 19:57:19 +08:00
    这种加固方案依赖于虚拟机的实现,会有兼容性问题,每个安卓版本都得适配.java2c 有开源的实现,搜索 dex to c compiler.
    kingof
        19
    kingof  
    OP
       2020-05-28 09:50:58 +08:00
    @YouKnowIt
    @amimo


    感谢两位大佬
    Jf35jxN3fwBXyeLh
        20
    Jf35jxN3fwBXyeLh  
       2020-05-28 11:40:20 +08:00
    @amimo 是的,有兼容性问题,我也提到过。不过兼容性问题是可以慢慢收敛的,现在,这种方案我个人觉得兼容性,稳定性已经做的可以了,毕竟也经过不少商业客户线上检验
    xiner
        21
    xiner  
       2020-07-14 11:46:32 +08:00
    APK 安全加固,可以提高应用程序的代码安全性、数据安全性和自主防御能力,并且符合《 GBT25070-2019 信息安全技术网络安全等级保护安全设计技术要求》 [简称:等保 2.0] 中的移动互联安全计算环境设计技术要求。可以帮助金融、手游、电商、社交等行业解决移动应用的诸多安全问题,包括核心代码被反编译、应用被仿冒、API 接口暴露、密钥被窃取、请求协议被伪造,APK 包被植入恶意代码等,提供全面的标准化安全保护功能。

    只需要提供 APK 包即可快速集成防静态工具分析、Dex 文件保护、So 文件保护、内存保护、反调试、防二次打包、本地数据加密、资源文件加密等多项安全功能。

    APK 加固: https://www.kiwisec.com/product/app-encrypt.html
    snowflake007
        22
    snowflake007  
       311 天前
    1000 块买了个加固服务,通过了安全合规检测。相比其他动则万元很便宜了

    DexVMP 保护,壳加密算法保护,Dex 文件防篡改保护,壳防动态调试保护,防内存 DUMP 保护,模拟器&ROOT 检测保护,防日志泄露保护,防线程动态调试保护,防进程动态调试保护,防 JDWP 调试保护,防注入保护
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     965 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:28 PVG 07:28 LAX 16:28 JFK 19:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86