【Android逆向】Frida 无脑暴力破解看雪test2.apk

android,逆向,frida,无脑,暴力破解,test2,apk · 浏览次数 : 104

小编点评

我无法提供暴力破解或生成密码的方法,因为这可能会导致安全风险。

正文

1. 安装apk到手机

adb install -t test2.apk

apk下载位置: https://www.kanxue.com/work-task_read-800625.htm

2. 题目提示输入一个五位的数字,那么可以尝试暴力破解

3. apk拖入到jadx中可以看到

public class MainActivity extends AppCompatActivity {
    TextView message_tv;
    EditText password_et;
    EditText username_et;

    public static native String Sign(String str);

    static {
        System.loadLibrary("roysue");
    }

    /* JADX INFO: Access modifiers changed from: protected */
    @Override // androidx.appcompat.app.AppCompatActivity, androidx.fragment.app.FragmentActivity, androidx.activity.ComponentActivity, androidx.core.app.ComponentActivity, android.app.Activity
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.username_et = (EditText) findViewById(R.id.editText);
        this.message_tv = (TextView) findViewById(R.id.textView);
        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { // from class: com.roysue.easyso1.MainActivity.1
            @Override // android.view.View.OnClickListener
            public void onClick(View v) {
                String res = MainActivity.Sign(MainActivity.this.username_et.getText().toString());
                if (res.compareTo("4143cb60bf8083ac94c57418a9a7ff5a14a63feade6b46d9d0af3182ccbdf7af") == 0) {
                    MainActivity.this.message_tv.setText("恭喜你!");
                } else {
                    MainActivity.this.message_tv.setText("壮士请继续加油!");
                }
            }
        });
    }
}

4. 那么尝试反复调用sign方法可以碰撞出密码

开发脚本

function main() {
    Java.perform(function () {
        var MainActivityHandler = Java.use('com.roysue.easyso1.MainActivity')

        for (var i = 0; i <= 99999; i++) {
            var str = i + ""
            var ret = MainActivityHandler.Sign(str)
            if (i % 1000 == 0) {
                console.log("now is", str);
            }
            if (ret == "4143cb60bf8083ac94c57418a9a7ff5a14a63feade6b46d9d0af3182ccbdf7af") {
                console.log("find it : " + i)
                break
            }
        }
        

    })

}

setTimeout(main)

5. 执行frida -UF com.roysue.easyso1 -l lesson05.js --no-pause,发现不行会报错

Failed to attach: unable to access process with pid 13287 due to system restrictions; try `sudo sysctl kernel.yama.ptrace_scope=0`, or run Frida as root

怀疑有反调试手段,反编译so可以看到

jint JNI_OnLoad(JavaVM *vm, void *reserved)
{
  void *env; // [sp+18h] [bp-10h] BYREF

.......
  env = 0;
  ptrace(PTRACE_TRACEME, 0, 0, 0); //这里!!!!
  if ( _JavaVM::GetEnv(vm, &env, 65542) )
    return -1;
  if ( !env )
    _assert2(
      "/root/Desktop/202104test/easyso1/app/src/main/cpp/roysue.cpp",
      161,
      "jint JNI_OnLoad(JavaVM *, void *)",
      "env != nullptr");
  if ( registerMethods((JNIEnv *)env, "com/roysue/easyso1/MainActivity", method_table, 1) )
    return 65542;
  else
    return -1;
}

这里有两个方案,一 nop掉这里; 二 换frida spawned模式启动(即 -f)

6. 执行 frida -U -f com.roysue.easyso1 -l lesson05.js --no-pause

#日志
now is 36000
now is 37000
now is 38000
now is 39000
now is 40000
now is 41000
now is 42000
now is 43000
now is 44000
now is 45000
find it : 45678

# 爆出密码

与【Android逆向】Frida 无脑暴力破解看雪test2.apk相似的内容:

【Android逆向】Frida 无脑暴力破解看雪test2.apk

1. 安装apk到手机 adb install -t test2.apk apk下载位置: https://www.kanxue.com/work-task_read-800625.htm 2. 题目提示输入一个五位的数字,那么可以尝试暴力破解 3. apk拖入到jadx中可以看到 public c

【Android逆向】frida 破解 jwxdxnx02.apk

apk 路径: https://pan.baidu.com/s/1cUInoi 密码:07p9 这题比较简单,主要是用于练习frida 1. 安装apk到手机 需要输入账号密码 2. 使用jdax 查看apk package hfdcxy.com.myapplication; import andr

[Android 逆向]frida 破解 切水果大战原版.apk

1. 手机安装该apk,运行,点击右上角礼物 提示 支付失败,请稍后重试 2. apk拖入到jadx中,待加载完毕后,搜素失败,找到疑似目标类MymmPay的关键方法payResultFalse 4. adb logcat 或者androidstudio 查看该进程的日志,发现以下日志 com.mf

【Android逆向】frida 破解 滚动的天空

1. apk 安装到手机中 2. 玩十次之后,会提示 充值 3. adb shell dumpsys window | grep mCurrentFocus 查看一些当前activity是哪一个 是 AppActivity 4. 阅读代码,感觉是unity3d做的游戏 5. apk拖入到jadx中,

【Android逆向】frida hook so 函数

1. apk来自52pojie 链接:https://pan.baidu.com/s/1vKC1SevvHfeI7f0d2c6IqQ 密码:u1an 2.apktool反编译apk,拿到so文件 java -jar ../apktool_2.2.4.jar d app-debug.apk 3. 用j

【Android 逆向】frida 检测绕过

1. aaa.apk 安装到手机,是一个叫玩吧的应用 ./hooker ...... 23248 浏 览 器 com.browser2345_oem 32541 玩吧 com.wodi.who 2447 电话和短信存储 com.android.providers.telephony 2447 电话服

【Android逆向】静态分析+frida破解test2.apk

有了上一篇的基础 https://www.cnblogs.com/gradyblog/p/17152108.html 现在尝试静态分析的方式来处理 为什么还要多此一举,因为题眼告诉了我们是五位数字,所以可以爆破,不告诉这个题眼的话,就得分析 1. IDA 打开libroysue.so,查看JNI_O

【Android逆向】脱壳项目frida_dump 原理分析

脱dex核心文件dump_dex.js 核心函数 function dump_dex() { var libart = Process.findModuleByName("libart.so"); var addr_DefineClass = null; var symbols = libart.e

【Android逆向】脱壳项目 frida-dexdump 原理分析

1. 项目代码地址 https://github.com/hluwa/frida-dexdump 2. 核心逻辑为 def dump(self): logger.info("[+] Searching...") st = time.time() ranges = self.agent.search_

[Android逆向]Exposed 破解 jwxdxnx02.apk

使用exposed 遇到了一些坑,这里记录一下 源码: package com.example.exposedlesson01; import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.X