【CTF】DD - Android Normal

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。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容