首页
社区
课程
招聘
[原创]使用Unidbg在CTF-Android题目的快速解题
发表于: 2023-10-19 21:41 9945

[原创]使用Unidbg在CTF-Android题目的快速解题

2023-10-19 21:41
9945

遇到了一道android题目,最近学了Unidbg。那么就开始掏出Unidbg,皮又痒痒了,想跳跳啦,看看能不能一把嗦

做完这题,发现成了Unidbg的铁杆粉丝,真的是很方便,我再也不用辛辛苦苦动态分析so啦
题目会打包上传,完整Unidbg脚本也会放在后面,本文的重点在于使用Unidbg的分析so能力,关于Unidbg的安装可以自行搜索。

创建一个项目框架
图片描述

Java层分析

使用aapt获得对应的启动Activity

1
aapt dump badging apk名字

开始分析代码

可以看到,重点是分析so的j和p方法

so分析

有两个so文件,先看app使用的libj.so

分析 libj.so

搜索JNI_onload,说明是静态注册函数

j方法

先分析 j 方法,发现没有参数,尝试使用Unidbg跑一遍(完整脚本在后面,这里不占用文章内容了)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
int __fastcall Java_an_droid_j_MainActivity_j(JNIEnv *a1)
{
  int i; // r1
  int v2; // r0
  int v3; // r0
  char v5[32]; // [sp-40h] [bp-70h] BYREF
  _BYTE v6[36]; // [sp-20h] [bp-50h] BYREF
  JNIEnv *v7; // [sp+4h] [bp-2Ch]
  int *v8; // [sp+8h] [bp-28h]
  int v9; // [sp+Ch] [bp-24h]
  int v10; // [sp+10h] [bp-20h]
  _BYTE *v11; // [sp+14h] [bp-1Ch]
  int v12; // [sp+1Ch] [bp-14h] BYREF
 
  v8 = &v12;
  v7 = a1;
  for ( i = -1178200092; ; i = 52119689 )
  {
    do
    {
      v3 = i;
      i = 1445388760;
    }
    while ( v3 == -1178200092 );
    if ( v3 == 52119689 )
      break;
    v11 = v6;
    strcpy(v5, "FlagLostHelpMeGetItBack");
    v10 = 30;
    v9 = 97;
    v5[29] = 0;
    *(_WORD *)&v5[27] = 0;
    v5[24] = 0;
    *(_WORD *)&v5[25] = 0;
    v5[30] = 80;
    qmemcpy(v6, v5, 0x1Eu);
    v2 = (int)(*v7)->NewStringUTF(v7, v6);
    *v8 = v2;
  }
  return *v8;
}
1
2
3
4
5
6
public String func_j(){
    DvmClass dvmClass=vm.resolveClass("an.droid.j.MainActivity");
    DvmObject object = dvmClass.newObject(null);
    DvmObject object1 = object.callJniMethodObject(emulator, "j()Ljava/lang/String;");
    return object1.getValue().toString();
}

就说这个函数其实并没有什么用,总是返回固定值!

p方法

这里可以使用葫芦娃大佬的插件,Obpo(ca8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6G2j5Y4m8G2i4K6u0V1M7s2u0G2K9X3g2U0N6q4)9J5c8X3!0T1M7r3!0Q4x3X3c8H3L8s2g2Y4K9h3&6Q4x3U0W2Q4c8e0u0Q4z5o6m8Q4z5p5t1`.

使用插件来进行恢复即可(详细使用开看Obpo文档)

耐心等待


[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 4008
活跃值: (31441)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2023-10-20 16:17
1
雪    币: 200
活跃值: (525)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Obpo现在好可以使用吗?
2024-8-7 11:10
0
雪    币: 1474
活跃值: (2153)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
zchuang Obpo现在好可以使用吗?
现在好像不能用了,ollvm现在自己写脚本也可以快速去除的
2024-8-26 11:48
0
游客
登录 | 注册 方可回帖
返回