支付宝金额
package com.yymjr.android.xposedpay;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class MainHook implements IXposedHookLoadPackage {
private final static String TAG = "XposedPay-MainHook";
private Class<?> NullTraceLoggerClazz;
private Class<?> LogOutClazz;
private Class<?> H5LogClazz;
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("com.eg.android.AlipayGphone")) return;
Log.d(TAG, "Hook alipay begin......");
XposedHelpers.findAndHookMethod("com.alipay.mobile.quinox.LauncherApplication",lpparam.classLoader, "attachBaseContext", Context.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
Log.d(TAG, "Hook attachBaseContext successful......" );
ClassLoader classLoader = ((Context) param.args[0]).getClassLoader();
try {
NullTraceLoggerClazz = classLoader.loadClass("com.alipay.mobile.common.logging.api.LoggerFactory$NullTraceLogger");
LogOutClazz = classLoader.loadClass("com.alipay.pushsdk.util.log.LogUtil");
findAndookNullTraceLogger("debug");
findAndookNullTraceLogger("error");
findAndookNullTraceLogger("info");
findAndookNullTraceLogger("print");
findAndookNullTraceLogger("verbose");
findAndookNullTraceLogger("warn");
findAndHookMethod(LogOutClazz,"LogOut", int.class, String.class, String.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
Log.d(TAG, "Hook LogUtil.LogOut successful.....");
Log.d(TAG, param.args[1].toString());
Log.d(TAG, param.args[2].toString());
}
});
findAndHookLogUtil("d");
findAndHookLogUtil("e");
findAndHookLogUtil("i");
findAndHookLogUtil("w");
}catch (ClassNotFoundException e){
e.printStackTrace();
}
}
});
}
private void findAndHookLogUtil(final String methodName){
findAndHookMethod(LogOutClazz, methodName, String.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
Log.d(TAG, "Hook LogUtil."+methodName+" successful....." );
Log.d(TAG, param.args[0].toString());
}
});
}
private void findAndookNullTraceLogger(final String methodName){
findAndHookMethod(NullTraceLoggerClazz, methodName, String.class, String.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
Log.d(TAG, "Hook NullTraceLogger."+methodName+" successful....." );
Log.d(TAG, param.args[0].toString() );
Log.d(TAG, param.args[1].toString() );
}
});
}
private void findAndHookMethod(Class clazz, String methodName, Object... parameterTypesAndCallback){
XposedHelpers.findAndHookMethod(clazz, methodName, parameterTypesAndCallback);
}
}package com.yymjr.android.xposedpay;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class MainHook implements IXposedHookLoadPackage {
private final static String TAG = "XposedPay-MainHook";
private Bundle PushNoticeDisplayBundle = null;
private Class<?> PushNoticeDisplayClazz;
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("com.eg.android.AlipayGphone")) return;
Log.d(TAG, "Hook alipay begin......");
XposedHelpers.findAndHookMethod("com.alipay.mobile.quinox.LauncherApplication",lpparam.classLoader, "attachBaseContext", Context.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
Log.d(TAG, "Hook attachBaseContext successful......" );
ClassLoader classLoader = ((Context) param.args[0]).getClassLoader();
try {
PushNoticeDisplayClazz = classLoader.loadClass("com.alipay.mobile.rome.pushservice.integration.d");
XposedHelpers.findAndHookConstructor(PushNoticeDisplayClazz, Context.class, Bundle.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
Log.d(TAG, "Hook PushNoticeDispaly.d successful......");
PushNoticeDisplayBundle = (Bundle) param.args[1];
if (PushNoticeDisplayBundle == null) return;
LogPushNoticeDisplay("push_show_title");
LogPushNoticeDisplay("push_show_text");
JSONObject jsonObject_data = new JSONObject(PushNoticeDisplayBundle.getString("push_msg_data"));
JSONObject paramsJsonObject = jsonObject_data.getJSONObject("params");
Log.d(TAG, "订单:"+paramsJsonObject.getString("tradeNO"));
JSONObject jsonObject_ext = new JSONObject(PushNoticeDisplayBundle.getString("push_show_ext"));
Log.d(TAG, "支付金额:"+jsonObject_ext.getString("soundValue"));
}
});
}catch (ClassNotFoundException e){
e.printStackTrace();
}
}
});
}
private void LogPushNoticeDisplay(String PushExtConstants){
Log.d(TAG, PushNoticeDisplayBundle.getString(PushExtConstants));
}
private void findAndHookMethod(Class clazz, String methodName, Object... parameterTypesAndCallback){
XposedHelpers.findAndHookMethod(clazz, methodName, parameterTypesAndCallback);
}
} 相关推荐
mbcsdn 2020-01-04
dalangtaosha0 2019-12-22
majunzhu 2019-12-14
huiguixian 2019-12-02
御翔宇内 2019-11-11
贪嘴 2019-06-29
御翔宇内 2019-06-29
huiguixian 2019-06-29
majunzhu 2019-01-15
majunzhu 2019-06-27
dalangtaosha0 2019-06-20
贪嘴 2017-10-27
thinkma 2017-01-08
opera 2016-12-26
majunzhu 2015-07-02
huiguixian 2015-07-02
majunzhu 2016-06-07