前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2023年05月 攻防世界-MOBILE(app1)

【愚公系列】2023年05月 攻防世界-MOBILE(app1)

作者头像
愚公搬代码
发布2023-05-24 10:10:28
2130
发布2023-05-24 10:10:28
举报
文章被收录于专栏:历史专栏历史专栏

前言

下面介绍两个反编译工具

  • jadx是一个用于反编译Android APK文件的开源工具,静态反编译,查找索引功能强大
  • jeb和IDA很像,属于动态调试,可以看java汇编也可以生成伪代码,还可以动态attach到目标调试

对于so文件的逆向工具选择

  • IDA逆向工具是一款反汇编器,被广泛应用于软件逆向工程领域,能够反汇编各种不同平台的二进制程序代码,并还原成可读的汇编代码。

Objection是一款移动设备运行时漏洞利用工具,该工具由Frida驱动,可以帮助研究人员访问移动端应用程序,并在无需越狱或root操作的情况下对移动端应用程序的安全进行评估检查。

安装命令

代码语言:javascript
复制
pip3 install objection 

frida是一款便携的、自由的、支持全平台的hook框架,可以通过编写JavaScript、Python代码来和frida_server端进行交互

frida的安装可以参考:https://www.jianshu.com/p/60cfd3f6afde

一、app1

1.题目

在这里插入图片描述
在这里插入图片描述

2.答题

2.1 运行app

在这里插入图片描述
在这里插入图片描述

2.2 jadx反编译apk文件

搜索再接字符串

在这里插入图片描述
在这里插入图片描述

找到源码

代码语言:javascript
复制
package com.example.yaphetshan.tencentgreat;

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

/* loaded from: classes.dex */
public class MainActivity extends AppCompatActivity {
    Button btn;
    public final String pName = BuildConfig.APPLICATION_ID;
    EditText text;

    /* JADX INFO: Access modifiers changed from: protected */
    @Override // android.support.v7.app.AppCompatActivity, android.support.v4.app.FragmentActivity, android.support.v4.app.BaseFragmentActivityGingerbread, android.app.Activity
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.btn = (Button) findViewById(R.id.checBtn);
        this.text = (EditText) findViewById(R.id.input);
        this.btn.setOnClickListener(new View.OnClickListener() { // from class: com.example.yaphetshan.tencentgreat.MainActivity.1
            @Override // android.view.View.OnClickListener
            public void onClick(View v) {
                try {
                    String inputString = MainActivity.this.text.getText().toString();
                    PackageInfo pinfo = MainActivity.this.getPackageManager().getPackageInfo(BuildConfig.APPLICATION_ID, 16384);
                    String versionCode = pinfo.versionName;
                    int versionName = pinfo.versionCode;
                    int i = 0;
                    while (i < inputString.length() && i < versionCode.length()) {
                        if (inputString.charAt(i) != (versionCode.charAt(i) ^ versionName)) {
                            Toast.makeText(MainActivity.this, "再接再厉,加油~", 1).show();
                            return;
                        }
                        i++;
                    }
                    if (inputString.length() == versionCode.length()) {
                        Toast.makeText(MainActivity.this, "恭喜开启闯关之门!", 1).show();
                        return;
                    }
                } catch (PackageManager.NameNotFoundException e) {
                }
                Toast.makeText(MainActivity.this, "年轻人不要耍小聪明噢", 1).show();
            }
        });
    }
}
在这里插入图片描述
在这里插入图片描述

点击BuildConfig文件,得到这两个参数的值,如下图所示:

代码语言:javascript
复制
package com.example.yaphetshan.tencentgreat;

/* loaded from: classes.dex */
public final class BuildConfig {
    public static final String APPLICATION_ID = "com.example.yaphetshan.tencentgreat";
    public static final String BUILD_TYPE = "debug";
    public static final boolean DEBUG = Boolean.parseBoolean("true");
    public static final String FLAVOR = "";
    public static final int VERSION_CODE = 15;
    public static final String VERSION_NAME = "X<cP[?PHNB<P?aj";
}
在这里插入图片描述
在这里插入图片描述

看源码得知事进行异或运算上脚本

代码语言:javascript
复制
str = "X<cP[?PHNB<P?aj" #传入版本名
for i in str:   #对版本名进行循环
    sum = ord(i)^15  #sum接收i的每个字符串转ASCII数值并与版本号进行异或的值
    print(chr(sum),end='') #把sum的值转字符串并拼接
在这里插入图片描述
在这里插入图片描述

得到flag:W3l_T0_GAM3_0ne


总结

反编译技巧 + 读代码 + 异或代码运算

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、app1
    • 1.题目
      • 2.答题
        • 2.1 运行app
        • 2.2 jadx反编译apk文件
    • 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档