吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2225|回复: 10
收起左侧

[Android CTF] 2023春节解题领红包安卓三、四

[复制链接]
jc021227 发表于 2023-2-7 19:13
第三题

打开软件,提示点击999下获得flag,不多想,直接上连点器,顺利获取flag

1.jpg

这种方法有个bug,点击速度太快会卡死,设置点击间隔500ms放一会就出答案了
下面来分析一下代码

8.png

只有一步decrypt,修改掉kotlin的方法运行即可得到答案


第四题

打开软件,要求输入uid和flag,随便输入提示flag错误
直接拖进jadx反编译

3.png
2.png

关键的类就几个,看判断条件是调用A类的B方法验证,两个参数其实就是输入的uid和flag
下面直接找到A类的B方法

4.png

第一个判断条件的意思是flag要以"flag{"开头,"}"结束,然后截取大括号里面的字符串用作判断
接下来把uid和字符串"Wuaipojie2023"进行拼接
还有几行是用来创建对象,类型转换,直接跳过看返回值,发现这一串方法调用:c.cipher(mD5Utils.MD5(base64Utils.encodeToString(bytes)), 5)
第一层加密是base64,第二层是md5,不用多说
第三层这个cipher并不是库函数,发现它位于自定义的C类,直接找到源码

5.png

思路是复制下来运行,但它用到了kotlin库的compare,简单改写一下就能运行了
java代码如下:
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import java.util.Base64;
import java.security.MessageDigest;
public class Solve {
    public static void main(String args[]) {
        String p0 = "1048772Wuaipojie2023";
        p0 = encode(p0);
        byte bytes[] = p0.getBytes();
        p0 = Base64.getEncoder().encodeToString(bytes);
        p0 = getMD5(p0);
        p0 = cipher(p0, 5);
        System.out.println("flag{" + p0 + "}");
    }
 
    public static String encode(String p0) {
        int i = p0.length();
        char uocharArray[] = new char[i];
        i = i - 1;
        while (i >= 0) {
            int i1 = i - 1;
            int i2 = p0.charAt(i) ^ 0x35;
            uocharArray[i] = (char) i2;
            if (i1 < 0) {
                break;
            } else {
                i = i1 - 1;
                i2 = p0.charAt(i1) ^ 0x32;
                uocharArray[i1] = (char) i2;
            }
        }
        return new String(uocharArray);
    }
 
    public static char cipher(char p0, int p1) {
        int i = (Character.isUpperCase(p0)) ? 65 : 97;
        return (char)((char)((((char)(p0 - i) + (p1 % 26)) + 26) % 26) + i);
    }
 
    public static String cipher(String p0, int p1) {
        String str = "";
        int i = p0.length();
        int i1 = 0;
        while (i1 < i) {
            if ((p0.charAt(i1) >= 65) && (p0.charAt(i1) <= 90)) {
                str = str + cipher(p0.charAt(i1), p1);
            } else if ((p0.charAt(i1) < 97) || (p0.charAt(i1) > 122)) {
                str = str + p0.charAt(i1);
            } else {
                str = str + cipher(p0.charAt(i1), p1);
            }
            i1 = i1 + 1;
        }
        return str;
    }
 
    public static String getMD5(String text) {
        String md5str = "";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte result[] = md.digest(text.getBytes());
            md5str = bytesToHex(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return md5str;
    }
 
    public static String bytesToHex(byte bytes[]) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < bytes.length; i++) {
            int number = bytes[i] & 0xff;
            String hex = Integer.toHexString(number);
            if (number >= 0 && number < 16) {
                sb.append("0" + hex);
            } else {
                sb.append(hex);
            }
        }
        return sb.toString();
    }
}


6.png

成功如图

7.jpg

免费评分

参与人数 4威望 +1 吾爱币 +29 热心值 +4 收起 理由
18895411830 + 1 + 1 热心回复!
开心熊猫741 + 1 + 1 我很赞同!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

侃遍天下无二人 发表于 2023-2-7 21:30
爱飞的猫 发表于 2023-2-7 21:01
下次改成 0x7fff_ffff 吧

其实改成-1就行了
侃遍天下无二人 发表于 2023-2-7 20:27
好家伙,我只是写着玩的,没想到还真有上连点器的啊

点评

下次改成 0x7fff_ffff 吧  详情 回复 发表于 2023-2-7 21:01
sw7057 发表于 2023-2-7 20:22
爱飞的猫 发表于 2023-2-7 21:01
侃遍天下无二人 发表于 2023-2-7 20:27
好家伙,我只是写着玩的,没想到还真有上连点器的啊

下次改成 0x7fff_ffff 吧

点评

便宜这些点击仔了  详情 回复 发表于 2023-2-7 21:59
其实改成-1就行了  详情 回复 发表于 2023-2-7 21:30
正己 发表于 2023-2-7 21:59
爱飞的猫 发表于 2023-2-7 21:01
下次改成 0x7fff_ffff 吧

便宜这些点击仔了
bluefirejl 发表于 2023-2-7 22:33

我把0x3e7改成0x2
xhj666 发表于 2023-2-7 22:47
哈哈,没想到
Remon1900 发表于 2023-2-7 23:07
谢谢大佬,虽然看不懂也不会用
jyjjf 发表于 2023-2-8 09:25
侃遍天下无二人 发表于 2023-2-7 20:27
好家伙,我只是写着玩的,没想到还真有上连点器的啊

我就是偷懒用的连点器,第一次还过头了没设置次数
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-3-29 06:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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