APP逆向 day22某仙网逆向

一.前言

今天我们讲一个非常简单的app,酒仙网,来做登录和预约功能,版本我们选择9.1.13,这个app非常简单,主要是通过这个来和大家说一下frida反调试和简单脱壳

二.登录接口抓包分析

我们进入app登录

发现账号密码都是明文,但是其中有appKey deviceIdentify pushToken 看起来很像是需要逆向的,我们改包测试一下

发现这几个值压根不需要,直接删除或者写死就好 顾登录接口直接复制curl请求就好了

三.预约接口抓包分析

点击1499台子预约,发现只有那个token需要破解,那个token不就是登录返回的嘛,顾直接复制curl就好了,这个代码简简单单,是不是一点逆向都没,那我们今天就到此为止嘛,但是不是,接下来要和大家讲的才是重头戏

四.frida增强版

之前我们做的某物和v品会是不是进行了frida反调试,当时的那个逻辑是在so文件中有检测frida的代码,我们删除那个so文件就好了,但是有的app不是采取这个逻辑,比如今天的酒仙网,而他是运行的时候检测frida的特征,检测到了就直接退出,而这个时候我们就要用frida增强版。

这里给出下载地址,我们去下载和我们python模块对应的版本

Releases · hzzheyang/strongR-frida-android (github.com)icon-default.png?t=N7T8https://github.com/hzzheyang/strongR-frida-android/releases

下载好之后我们把他推送到手机的data/local/tmp

再给他赋予可执行权限chmod 777 文件名字

这个和之前安装frida一样,不记得可以去看前面的HOOK章节

这里给出一个测试hook代码给大家感受一下hluda和frida

# 如果运行 frida-server--》hook不到

# 运行  hluda --》hook到

import frida
import sys

rdev = frida.get_remote_device()
pid = rdev.spawn(["com.jiuxianapk.ui"])
session = rdev.attach(pid)

scr = """
console.log("======Start HOOK======");
Java.perform(function () {
    var LocaleData = Java.use("libcore.icu.LocaleData");

    LocaleData.getDateFormat.implementation = function(i){
        console.log('=====>',i);
        var res = this.getDateFormat();
        console.log('=====>',res);
    }
});
"""
script = session.create_script(scr)


def on_message(message, data):
    print(message, data)


script.on("message", on_message)
script.load()
rdev.resume(pid)
sys.stdin.read()

 启动frida

启动hluda

 可以发现这里frida就打印不了值,所以我们后期,完全可以用hluda替代frida

五.app脱壳

5.1 加壳原理

1 把 酒仙app,拖到jadx中,发现反编译回来的代码很少
    -有些壳的特征:腾讯,邦邦,360。。。 包
2 加壳原理
    安卓开发:
        java代码+sdk+JNI代码 ----》apk(java代码写的:dex,JNI代码:so文件  资源文件 xml)
    app加壳了
        java代码+sdk+JNI代码--》使用第三方加壳工具(邦邦,360)---》把dex隐藏到 so文件--》dex很小,so很大
        
3 app 运行时
 app运行时:未加壳app
    把dex加载到内存中,执行了
    
  app运行时:加壳app
    先加载dex--》so文件加载进来---》dex都在so中--》逆操作--》从so中解出dex--》在内存中--》执行逻辑
  加壳后--》加载运行app--》速度慢--》大厂一般不加壳--》他们用非常强的加密方案,让咱们破解不了
  小公司--》没有很强的加密--》加壳,牺牲速度--》保证安全
    
    
4 脱壳方案(没有一种通用脱壳方案) app加壳,有很多代--》不同厂商加壳思路不一样
     #手动脱壳(难度大):
        通过动态调试,跟踪计算Dex源文件的内存偏移地址,从内存中Dump出Dex文件
        难度大,寄存器,汇编,反调试,反读写
    工具脱壳:
        HOOK技术/内存特征寻找
        简单易操作
        基于xposed 脱壳工具:
            Fdex2:Hook ClassLoader loadClass方法 通用脱壳
            dumpDex:https://github.com/WrBug/dumpDex
        基于frida的脱壳工具(咱们学习):
            frida-dexdump:https://github.com/hluwa/FRIDA-DEXDump

        自己定制脱壳机--》aosp刷机后--》自己定制脱壳机
        armPro收费脱壳(花钱)

5.2 frida-dexdump 脱壳

1 安装模块[电脑端]:
    pip install frida-dexdump
2 手机端启动frida-server,端口转发

3 执行脱壳命令即可
# frida-dexdump  -U -f 包名称
frida-dexdump -U -f com.jiuxianapk.ui 
frida-dexdump -U -d -f com.jiuxianapk.ui  # 深度脱壳

4 使用jadx打开下载后的dex即可

5 有时候一次性把dex拖进去会报错
    -某个dex可能不是这个app或这个dex有问题
    -一个个的把dex拖入,哪个报错,就把哪个删除
    -每个dex都可以反编译成一部分java,但是由于下载的dex,某个可能有问题导致整个项目都反编译不了,找出那个有错的dex把它删除即可

六.总结

今天和大家讲的酒仙网特别简单,主要是后面的frida加强版和脱壳是新东西,脱壳没有通用的,但是后边慢慢学,大家肯定会很牛逼,毕竟这个只是基础嘛

补充

有需要源码的看我主页签名名字私信我,有求必应

  • 31
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往日情怀酿做酒 V1763929638

往日情怀酿作酒 感谢你的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值