美文网首页
【CTF】DD - Android Normal

【CTF】DD - Android Normal

作者: Pino_HD | 来源:发表于2017-11-07 22:44 被阅读0次

0x01 题目描述

提交下一关的邮箱地址。

解压密码 infected。

0x02 题解

这道题下载的是一个zip文件,用题目给的压缩密码解压,得到一个apk和一个readme.txt

readme.txt如下:

赛题背景:本挑战结合了Android, Java, C/C++,加密算法等知识点,考察了挑战者的binary逆向技术和加密算法能力。

赛题描述:本题是一个app,请试分析app中隐藏的key,逆向加密算法并得到对应的秘钥。可以在app中尝试输入key,如果正确会显示“correct”,如果错误会显示“Wrong”。
提   示:阅读assembly code,理解xor的加密逻辑和参数,解出答案。
评分标准:key正确则可进入下一题。

按照描述,将apk送入jeb尝试反汇编

package com.didictf.hellolibs;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private TextView mFlagEntryView;
    private TextView mFlagResultView;

    static {
        System.loadLibrary("hello-libs");
    }

    public MainActivity() {
        super();
    }

    public void onClickTest(View arg3) {
        if(this.mFlagEntryView.getText().toString().equals(this.stringFromJNI())) {
            this.mFlagResultView.setText("Correct");
        }
        else {
            this.mFlagResultView.setText("Wrong");
        }
    }

    protected void onCreate(Bundle arg2) {
        super.onCreate(arg2);
        this.setContentView(2130968602);
        this.mFlagEntryView = this.findViewById(2131427413);
        this.mFlagResultView = this.findViewById(2131427415);
    }

    public native String stringFromJNI() {
    }
}

代码没什么用,看到最后的方法有一个native关键字,知道这个是JNI,因此得调试.so文件,看到上面程序也调用了hellolibs,那么我们将hellolibs.so提取出来

用IDA打开.so文件,发现在HEX View中直接有flag。。

相关文章

网友评论

      本文标题:【CTF】DD - Android Normal

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