吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1763|回复: 9
收起左侧

[Android 脱壳] android脱壳日记3-一键自动脱修

  [复制链接]
chicwalking 发表于 2024-7-1 07:28

androidGRPC

废话

  上个周发现关注项目的人变少了,然后最近又没什么产出想起来有个脱壳项目,搞一下。
 前天搞到晚上4点半,发现被单防了,然后第二天又搞了搞,真忍不住,发现好像搞错了,我这个心情啊。今天又修了一下发现确实有一定的防御。。有效果,效果不大。
 这次其实没什么新技术的更新,只是把原来的项目整合到一起了。

项目相关

项目说明

  • 一键dexdump + 主动类加载调用+修复 methodCodeItem
  • 主要用于修复methodCodeItem 的偏移进行过处理,从内存中直接把二进制dump出来然后修复进去
  • 不能修复方法需要真正调用才能还原指令的加固
  • 不能修复dex vmp,指令偏移表
  • 不能修复格式有问题,被破坏的dex文件,还有cdex文件不支持
  • 同时支持类回调和方法回调,如果想对单个方法处理也可以

提供功能

FixDexMethodCodeItem                    单个dex文件修复,回直接从手机上用grpc拉去codeItem修这个文件
OnlyDumpDexFile(OutDexDir);               只进行dex文件的dump
dumpWholeDexFileAndFix(OutDexDir);           一键dumpdex + 自动dump codeItem +修复
dumpDexByClassAndFix                    dump传入的某个类的dex文件

OutDexDir 和worDir                     OutDexDir= worDir  + 包名 ,会dump到 OutDexDir    
blockClassList                       搞了个黑名单,我没试,群友提供的,是谁自己认领
jobs                                线程个数单个线程跑非常慢,多个线程可能有问题,没专门做兼容,慢慢跑吧

建议和可能出现的问题

  • 不能usb,grpc需要局域网

  • dump 这东西,很多时候你也不知道对抗在哪里,所以需要不断调试,提供了很多个dump方法,配合使用

  • dumpDexByClassAndFix这个,本来是没有的,但是后来发现有对抗,有的类明明存在但是dump的dex中不存在,然后我就去验证这个类确实存在,但是dump不出来,应该是被对抗了,对象全局遍历的函数估计是被处理了导致有些类加载器不返回

  • 满,极慢,需要有耐心,每个classloader进行一次grpc调用

  • 崩溃,可能有各种崩溃,不要慌,再试试

  • dump运行中报错,别慌,有些类修复可能出问题,但是会继续跑

一些技术问题

解决的问题

  • 以前dex的dump都是需要到内存里去拦截dex加载,但是我通过全局的对象遍历获取dex(frida-dexdump也可以)
  • codeitem偏移超出dex文件内存修复
  • 提供了一个修改的smali项目,你可以在这个基础上直接通过字节对dex文件进行修复

未解决问题

  • dex文件不能损坏,如果损坏可能导致baksmali无法识别,或者文件格式不规范导致反编译失败
  • 需要真正调用才恢复CodeItem的方法的dump
  • dex vmp,这个其实不属于dump的访问
  • 类对象遍历接口VisitClassLoaders被对抗或者某些位置被对抗,导致类加载器不能找到

使用

  • 这个是一个rxposed模块,通过rxposed注入到目标进程中
  • 当进程启动以后会自动运行,然后用idea打开grpc_client,进行设置和dump
  • 没有打包成工具,而是通过idea来运行,因为脱壳本身就可能遇到各种问题,我提供了尽可能多的接口
  • 如果你使用的是lsposed,需要你自己修改接口,完成注入

测试

测试效果就不说了,目前还可以使用

android dex文件和类加载器结构


ClassLoader{         对应java classloader 
     DexPathList pathList;{     这个应该是版本遗留问题,可以可以是apk ,甚至可以是apk列表,多个apk,和下面含义重合
         Element[] dexElements;{     单个对应一个apk 或者多个apk,
            DexFile dexFile;{        是dex列表
                private Object mCookie;  实际是long[] ,这个一个实际的dex文件列表
            }
         }
    }
}

项目地址
https://github.com/Thehepta/androidGRPC
https://github.com/Thehepta/FixDexSmali

最后

有什么问题直接提出来,文档发现没什么需要写的,后续可以改一改



屏幕截图 2024-07-01 065655.png
屏幕截图 2024-07-01 070752.png

免费评分

参与人数 2吾爱币 +2 收起 理由
朮小凯 + 1 谢谢@Thanks!
beatone + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wwb66668 发表于 2024-7-1 21:18
感谢楼主的分享
风生·水起 发表于 2024-7-2 09:16
 楼主| chicwalking 发表于 2024-7-2 09:57
swearl 发表于 2024-7-2 10:58
感谢分享, 学习一下
xixicoco 发表于 2024-7-2 12:00
支持原创,就是看着有些复杂
zrw528 发表于 2024-7-2 15:44
支持支持
月清晖 发表于 2024-7-2 16:53
很厉害的项目了
79957864 发表于 2024-7-3 00:18
不会,怎么用
n1kOvO 发表于 2024-7-3 09:43
支持一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-9-8 09:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表