首页
社区
课程
招聘
[原创]猿人学-APP逆向2022对抗赛第八题-upx
发表于: 2022-5-17 12:02 5844

[原创]猿人学-APP逆向2022对抗赛第八题-upx

2022-5-17 12:02
5844

1、抓包请求-根据抓包查看请求,参数只有一个s,直接使用jadx搜索app8看看是否能够定位到实现位置
图片描述
2、可以看到根据app8搜索并定位到接口请求处,点击调用函数并查找用例
图片描述
图片描述
3、通过分析调用函数可以推断出,f5491OooO0O0为页数,在每次滑动时进行+1操作,通过data函数将页数当作参数传入,返回data值,最终通过OooO0oo函数进行调用

1
2
3
4
5
6
7
public /* synthetic */ void lambda$initListeners$1(o0000O o0000o2) {
        int i = this.f5491OooO0O0 + 1;
        this.f5491OooO0O0 = i;
        String data = data(i);
        o0O0O00.OooO0O0 oooO0O0 = this.f5492OooO0OO;
        oooO0O0.OooOO0O(((o0O0ooO.OooO0O0) oooO0O0.OooOOO0(o0O0ooO.OooO0O0.class)).OooO0oo(data), new OooO0O0(o0000o2));
    }

4、点击data函数,跳转声明,发现data是一个native函数
图片描述
5、使用frida尝试调用data函数,根据返回值与请求值进行对比发现格式完全一致

1
2
3
4
5
6
7
var ChallengeEightFragment = Java.use('com.yuanrenxue.match2022.fragment.challenge.ChallengeEightFragment')
ChallengeEightFragment.data.implementation = function(){
  console.log("i = " + JSON.stringify(arguments[0]))
  var result = this.OooOooo.apply(this, arguments);
  console.log("res = " + JSON.stringify(result))
  return result;
}

图片描述
6、由于比赛规则,所以使用unidbg进行so调用,发现调用失败,通过ida进行so文件分析,发现找不到JNI_OnLoad,突然意识到题目是upx
图片描述
7、先确保so文件是经过upx压缩过的,使用ExeinfoPe查看文件信息,可以看到so文件确实经过了upx压缩处理
图片描述
8、那么第一个想法就是解压缩,直接github下载upx工具进行解压缩,使用方法非常简单
图片描述

1
2
进行解压缩操作,因为我是把so文件复制到同名路径下,所以不需要输入路径
upx.exe -d libmatch08.so

图片描述
9、可以看到so文件解压缩成功了,文件由原来的约2M变成了4M左右,那么直接再次尝试通过unidbg调用data函数
图片描述
10、可以请求到接口数据了,下面是部分udb代码

1
2
3
4
5
6
public String getSign(Integer allParams) {
    DvmObject<?> context =     vm.resolveClass("com/yuanrenxue/match2022/fragment/challenge/ChallengeEightFragment").newObject(null);
    DvmObject<?> strRc = context.callJniMethodObject(emulator, "data(I)Ljava/lang/String;", allParams);
    System.out.println(strRc.getValue());
    return (String) strRc.getValue();
}

比赛链接:https://appmatch.yuanrenxue.com/


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2022-5-17 16:34 被北辰清影编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 27071
活跃值: (63057)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
2
请将APK上传一份到本地
2022-5-17 14:26
0
雪    币: 256
活跃值: (1214)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Editor 请将APK上传一份到本地
更新了比赛链接,相关APK可以直接下载
2022-5-17 15:55
0
游客
登录 | 注册 方可回帖
返回
//