吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2078|回复: 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] 纯文本查看 复制代码
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, 2024-11-24 14:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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