安装
python3.6 -m pip install objection
objection注入指定应用。
objection -g cxa.com.logindemo explore
查找所有可用activities
android hooking list activities
结果
cxa.com.logindemo.MainActivity
Found 1 classes
之后可以查在这个类下面有哪些方法
android hooking list class_methods cxa.com.logindemo.MainActivity
结果
public static java.lang.Object cxa.com.logindemo.MainActivity.access$super(cxa.com.logindemo.MainActivity,java.lang.String,java.lang.Object...)
public void cxa.com.logindemo.MainActivity.onCreate(android.os.Bundle)
实际的android代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Name = (EditText) findViewById(R.id.TEXT_NAME);//通过findViewById找到输入框控件对应的id,并给他起个名字
Pass = (EditText) findViewById(R.id.TEST_PASS);//通过findViewById找到输入框控件对应的id,并给他起个名字
message_tv = ((TextView) findViewById(R.id.textView3));
Button Login = (Button) findViewById(R.id.BTN_LOGIN);
Login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//check(Name.getText().toString().trim(), Pass.getText().toString().trim());
//调用check函数
if (Name.getText().toString().compareTo("cxa")==0) {
message_tv.setText("你不能使用cxa这个用户登录");
return;
}
message_tv.setText("成果躲开用户判断 :" + Base64.encodeToString((Name.getText().toString() + ":" + Pass.getText().toString()).getBytes(), Base64.DEFAULT));
}
});
}
发现方法名和参数基本上一样。
之后可以通过objection生成frida的代码
android hooking generate simple cxa.com.logindemo.MainActivity
生成的结果如下:
Java.perform(function() {
var clazz = Java.use(‘cxa.com.logindemo.MainActivity‘);
clazz.access$super.implementation = function() {
//
return clazz.access$super.apply(this, arguments);
}
});
Java.perform(function() {
var clazz = Java.use(‘cxa.com.logindemo.MainActivity‘);
clazz.onCreate.implementation = function() {
//
return clazz.onCreate.apply(this, arguments);
}
});
参考链接:
https://www.anquanke.com/post/id/197657
原文:https://www.cnblogs.com/c-x-a/p/13493629.html