某app绕过root检测分享-几维加固


几维加固

  • 动应用加固系统是一款针对APK文件的自动化安全加固产品,可以提高应用程序的代码安全性、数据安全性和自主防御能力,并且符合《GBT25070-2019信息安全技术网络安全等级保护安全设计技术要求》【简称:等保 2.0】中的移动互联安全计算环境设计技术要求。可以帮助金融、手游、电商、社交等行业解决移动应用的诸多安全问题,包括核心代码被反编译、应用被仿冒、API 接口暴露、密钥被窃取、请求协议被伪造,APK 包被植入恶意代码等,提供全面的标准化安全保护功能。

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

app分析

  • 使用市面上的查壳工具出不出什么壳子。
  • 用jadx打开就一个类

  • 使用工具查壳信息https://github.com/horsicq/XAPKDetector 也查不出什么壳子。这个工具可以看详情啥的。最后利用MT工具查出的壳子是几维安全的壳子。由于刚搞app这个壳子完全没有听过。
  • 几维安全

  • 打开app正要抓包的时候弹出一个提示说设备以及root。
  • 提示设备已经root

  • 这时候的想法是我们拿出我们的神器frida 在拿出我们的hookroot的脚本搞他。或者是用objection 搞说干就干 frida报错了 Failed to attach: unexpected error while attaching to process with pid 19517 这明显是防止attach的错误。我们在测试spwn 也报错 Bad access due to invalid address
  • 0x776d5708dc /apex/com.android.runtime/lib64/libart.so
    0x76fe65d308 /data/data/com.netease.nim.avic/files/kadp_arm64-v8a
    0x76fe65d308 /data/data/com.netease.nim.avic/files/kadp_arm64-v8a
    0x76fe65d308 /data/data/com.netease.nim.avic/files/kadp_arm64-v8a
    0x76fe65d308 /data/data/com.netease.nim.avic/files/kadp_arm64-v8a
    Process crashed: Bad access due to invalid address
    
    ***
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    Build fingerprint: 'google/sailfish/sailfish:10/QP1A.191005.007.A3/5972272:user/release-keys'
    Revision: '0'
    ABI: 'arm64'
    Timestamp: 2023-04-17 16:01:22+0800
    pid: 24218, tid: 24218, name: etease.nim.avic  >>> com.netease.nim.avic <<<
    uid: 10202
    signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x76fa500000
        x0  00000076fa500000  x1  0000000000000000  x2  0000000000021000  x3  00000076fa500000
        x4  00000076fa521000  x5  0000000000000001  x6  0000000000000000  x7  000000000000d000
        x8  00000077f3bb2ed0  x9  0000000000021000  x10 884a5413cd36b29d  x11 5851f42d4c957f2d
        x12 14057b7ef767814f  x13 000000000000c000  x14 00000077f14f7000  x15 ff51afd7ed558ccd
        x16 00000077f15c68d8  x17 00000077f15537c0  x18 00000077f389c000  x19 0000000000021000
        x20 00000076fa500000  x21 0000007fed9cf504  x22 0000007fed9cf49c  x23 000000776dc025f8
        x24 00000077f2615430  x25 0000000000000040  x26 000000776dc2ddc0  x27 000000776dc2d0c0
        x28 000000776dc00980  x29 0000007fed9cf420
        sp  0000007fed9cf190  lr  00000077f153cbdc  pc  00000077f155384c
    
    backtrace:
          #00 pc 000000000007e84c  /apex/com.android.runtime/lib64/bionic/libc.so (memset+140) (BuildId: 5812256023147338b8a9538321d4c456)
          #01 pc 0000000000067bd8  /apex/com.android.runtime/lib64/bionic/libc.so (extent_recycle+3672) (BuildId: 5812256023147338b8a9538321d4c456)
          #02 pc 0000000000066d70  /apex/com.android.runtime/lib64/bionic/libc.so (je_extents_alloc+44) (BuildId: 5812256023147338b8a9538321d4c456)
          #03 pc 000000000004e8c0  /apex/com.android.runtime/lib64/bionic/libc.so (je_arena_extent_alloc_large+152) (BuildId: 5812256023147338b8a9538321d4c456)
          #04 pc 000000000006c49c  /apex/com.android.runtime/lib64/bionic/libc.so (je_large_palloc+512) (BuildId: 5812256023147338b8a9538321d4c456)
          #05 pc 0000000000046b00  /apex/com.android.runtime/lib64/bionic/libc.so (je_calloc+2508) (BuildId: 5812256023147338b8a9538321d4c456)
          #06 pc 0000000000040264  /apex/com.android.runtime/lib64/bionic/libc.so (calloc+44) (BuildId: 5812256023147338b8a9538321d4c456)
          #07 pc 00000000000a5a20  /data/app/com.netease.nim.avic-l9CVU6oTzmoWP9co9LC-iA==/lib/arm64/libKwProtectSDK.so (BuildId: ece12da60a11f31e9398bb91bf127ba9dd122b75)
          #08 pc 0000000000050cf8  /apex/com.android.runtime/bin/linker64 (__dl__ZL10call_arrayIPFviPPcS1_EEvPKcPT_mbS5_+276) (BuildId: 5415a75dd53505b7c5979e973b5d7394)
          #09 pc 0000000000050f14  /apex/com.android.runtime/bin/linker64 (__dl__ZN6soinfo17call_constructorsEv+376) (BuildId: 5415a75dd53505b7c5979e973b5d7394)
          #10 pc 000000000003c970  /apex/com.android.runtime/bin/linker64 (__dl__Z9do_dlopenPKciPK17android_dlextinfoPKv+2416) (BuildId: 5415a75dd53505b7c5979e973b5d7394)
          #11 pc 00000000000380dc  /apex/com.android.runtime/bin/linker64 (__loader_android_dlopen_ext+72) (BuildId: 5415a75dd53505b7c5979e973b5d7394)
          #12 pc 00000000000011d0  <anonymous:7764f58000>
    
    
  • 测试加载libKwProtectSDK.so 软件奔溃了。这里有两种可能一种是检测frida了 另一种是frida版本不兼容报无效访问地址。通过我的测试发现 是frida版本不稳定的原因 要多次spwn才可以正常运行。或者降低frida版本。所以遇到错误要多测试几次要不真以为spwn检测frida。但是在attach模式下是会检测的所以我们也要多次测试保证frida先于app attach上!!!!
  • 正常运行了

几维安全加固的特征脱壳演示

  • 在lib目录里有有libKwProtectSDK.so 。在assets 目录里面有 kadp_arm64-v8a。此外这个版本是整体加固所以我们使用 葫芦娃大佬的frida-dexdump进行脱壳
  • 几维安全加固特征

  • 脱壳演示
  • 脱壳成功接下来就是分析

frida hook脚本定位检测点

  • 定位root检测点
  • 定位root检测点

  • 使用我们的脚本可能由于我们的脚本检测不全所以也弹出框。所以我们直接编写hook 检测函数的脚本直接上。
  • 过掉root检测

总结

  • (1)遇到app奔溃的时候多测试几次或者换一个版本低点的进行测试
  • (2)多自己写点常用检测定的脚本方便定位
  • (3)在frida hook时候我们必须要熟练掌握常用hook api和javase基础才能够好的学习app

文章作者: peiqiF4ck
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 peiqiF4ck !
  目录