输入检查类题型
package com.example.re11113;
import android.os.Bundle;
import android.util.Log;
import android.view.View.OnClickListener;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText editText;
private boolean legal(String paramString) {
return paramString.length() == 38 && (paramString.startsWith("flag{")) && paramString.charAt(paramString.length() - 1) == 0x7D && !inspect.inspect(paramString.substring(5, paramString.length() - 1));
}
@Override // android.view.View$OnClickListener
public void onClick(View v) {
Log.d("Button ID", "Button ID: " + v.getId());
if(v.getId() == 0x7F080003) { // id:Button
if(this.legal(this.editText.getText().toString())) {
Toast.makeText(this, "You are right.", 0).show();
return;
}
Toast.makeText(this, "You are wrong.", 0).show();
}
}
@Override // androidx.fragment.app.FragmentActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(layout.activity_main);
Button button = (Button)this.findViewById(id.Button);
this.editText = (EditText)this.findViewById(id.edit_text);
button.setOnClickListener(this);
}
}
这是重点,前面在检查flag{}
跟入inspect
函数,可以看到时DES
加密最后比较字符串(base64)JqslHrdvtgJrRs2QAp+FEVdwRPNLswrnykD/sZMivmjGRKUMVIC/rw==
这个jni文件是在so文件里面,是低层文件
apk其实是个压缩包,直接解压就可以看见so文件
IDA打开
ok,IDA关闭,不懂
┭┮﹏┭┮
动调不了
下了断点,到这直接G
我看大佬们都是HOOK ,我真不会,我调了好几天天了o(╥﹏╥)o,我勒个豆
重要弄好了
Hook神器: frida超详细安装教程_frida-tools-CSDN博客
大家看这个哥的教程吧
很详细,期间有问题,你可以重新弄一下模拟器,反正我是模拟器有问题
得到flag