美文网首页
GeekPwn邀请赛 SecretCode Writeup

GeekPwn邀请赛 SecretCode Writeup

作者: hyrathon | 来源:发表于2017-09-30 17:22 被阅读0次

Overview

题目给了一个APK, 属于MISC类型, 考察APK发现为存的加密算法分析, 没有JNI, 有Proguard混淆, 需要透过混淆分析Java层代码真实逻辑.

Analysis

程序的Android源码分为三个部分, 从一张图片读入key, 对key进行处理, 使用用户输入+key得到结果.

InputStream v0_1 = this.getResources().openRawResource(R.raw.url);

            int v1 = v0_1.available();
            byte[] v2 = new byte[v1];
            v0_1.read(v2, 0, v1);
            byte[] v0_2 = new byte[16];
            System.arraycopy(v2, 144, v0_2, 0, 16);
            this.para = new String(v0_2, "utf-8");

读取图片逻辑, 从便宜144开始读16个字符, 分析得到this_is_the_key.

    private String append(String arg4) {
        String v0_2;
        try {
            arg4.getBytes("utf-8");
            StringBuilder v1 = new StringBuilder();
            int v0_1;
            for(v0_1 = 0; v0_1 < arg4.length(); v0_1 += 2) {
                v1.append(arg4.charAt(v0_1 + 1));
                v1.append(arg4.charAt(v0_1));
            }

            v0_2 = v1.toString();
        }
        catch(UnsupportedEncodingException v0) {
            v0.printStackTrace();
            v0_2 = null;
        }

        return v0_2;
    }

对key进行处理, 简单的每两位互换位置.
接下来, 由于代码中比较阶段已经知道预期的密文是什么, 用密文加上密钥得到明文.

Solution

import javax.crypto.spec.SecretKeySpec;

public class Solve {


    public static void main(String[] args) throws Exception {
        byte[] output = new byte[]{21, -93, -68, -94, 86, 117, -19, -68,
                -92, 33, 50, 118, 16, 13, 1, -15, -13, 3, 4, 103, -18, 81, 30, 68, 54, -93, 44, -23,
                93, 98, 5, 59};


        String key_str = "this_is_the_key.";
    String key_sft = "htsii__sht_eek.y";

    SecretKeySpec secretKeySpec = new SecretKeySpec(key_sft.getBytes(), "AES");
    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
    cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
    String s = new String(cipher.doFinal(output));
    System.out.println(s);
}
}
**flag:LCTF{1t's_rea1ly_an_ea3y_ap4}**

相关文章

  • GeekPwn邀请赛 SecretCode Writeup

    Overview 题目给了一个APK, 属于MISC类型, 考察APK发现为存的加密算法分析, 没有JNI, 有P...

  • GEEKPWN前夜_1023极客棒前夜

    为了来GeekPWN朝圣,请了两天假~ 感谢给力的同事领导!感谢T哥的票!感谢GEEKPWN组织的活动!先来...

  • WriteUp: PWN1 厦门邀请赛

    Write Up 0x00: 前言 0x01: 获取信息 0x02: 确定行为 0x03: 寻找漏洞 0x04: ...

  • 第一届安洵杯writeup

    安洵官方writeup安洵writeup第一届安洵杯writeup MISC 幺元 booom 爆破 查看pass...

  • HCTF两道web题目

    HCTF WEB wp 官方Writeup: [https://bysec.io/hctf/writeup.htm...

  • Behavioral Cloning

    Behavioral Cloning Writeup Template You can use this file...

  • Jarvis OJ PWN level6 WriteUp

    终于做完了自己在pwn方向的第一道堆题,参考了writeup1和writeup2怼了四天,终于理解了整道题目,本地...

  • writeup

    Web 签到题: 点开题目地址,网页上只有一行字,查看网页源码,得到flag 签到题2: 口令为11个字符,而输入...

  • writeup

    南京邮电大学网络攻防训练平台 web writeup 签到题: 查看源代码 就可以看到 flag:nctf{fla...

  • WriteUp

    Crypto base64? 第一眼看题目提示base64,马上就进行一波解码 一眼看过去,感觉是16进制,再转一...

网友评论

      本文标题:GeekPwn邀请赛 SecretCode Writeup

      本文链接:https://www.haomeiwen.com/subject/bahnextx.html