基于xposed Hook框架实现个人免签支付方案
发布日期:2019-11-17 06:46   浏览次数:
53人阅读 2019-11-10 23:27:35

我的团体网站如何完成领取功用?

  想必很多顺序员都有过想开发一个本人的网站来取得一些额定的支出,但做这件事会遇到领取这个成绩。目前团体网站是无法完成领取功用的。

  明天我就给大家分享一下我的完成方案:《基于xposed逆向微信、领取宝、云闪付来完成团体免签领取方案》

测试页面(点我)

  接上去给大家复杂分享一下完成进程,这个进程其实是十分复杂的,关键点在于如何逆向微信领取宝云闪付这些App,找到中心函数钩子,然后写一个hook顺序来模仿调用这些办法,来完成依据效劳端传过去的金额,订单号自动调用微信领取宝生成领取二维码的函数失掉绝对应的领取二维码再传给效劳端,然后监听微信领取宝的领取成功音讯最终回调给效劳端完成领取成功告诉。这外面用到的中心技术点有:xposed逆向框架、apk反编译,网络抓包,apk静态调试等技术。

  像微信领取宝这些apk反编译后的代码根本上都是天书一样的,严重混杂过的代码。想从中找到中心代码并非易事,上面我贴一些中心代码吧。

hook微信二维码生成函数

private void hookQRCreat(final ClassLoader appClassLoader, final Context context) {
            Class<?> clazz = XposedHelpers.findClass("com.tencent.mm.plugin.collect.b.s", appClassLoader);
        XposedBridge.hookAllMethods(clazz, "a", new XC_MethodHook() {
            @Override
            protected void beforeHookedMethod(MethodHookParam param)
                    throws Throwable {
            }

            @Override
            protected void afterHookedMethod(MethodHookParam param) {
                try {
                    LogUtils.log("hookQRCreat start:");
                    QrBean qrBean = new QrBean();
                    qrBean.setChannel(QrBean.WECHAT);

                    Field moneyField = XposedHelpers.findField(param.thisObject.getClass(), "kcp");
                    Double money = (Double) moneyField.get(param.thisObject);
                    LogUtils.log("hookQRCreat money:"+money.toString());
                    Field markField = XposedHelpers.findField(param.thisObject.getClass(), "desc");
                    String mark = (String) markField.get(param.thisObject);
                    LogUtils.log("hookQRCreat mark:"+mark);
                    Field payurlField = XposedHelpers.findField(param.thisObject.getClass(), "kco");
                    String payurl = (String) payurlField.get(param.thisObject);
                    LogUtils.log("hookQRCreat payurl:"+payurl);

                    qrBean.setMark_sell(mark);
                    qrBean.setUrl(payurl);

                    LogUtils.log( "com.tencent.mm.plugin.collect.b.s qrBean:"+ JSON.toJSONString(qrBean));
                    Intent broadCastIntent = new Intent();
                    broadCastIntent.putExtra("data", qrBean.toString());
                    broadCastIntent.setAction(HookMain.RECEIVE_QR_WECHAT);
//                broadCastIntent.setComponent( new ComponentName( "com.sjk.tpay" ,
//                        "com.sjk.tpay.ReceiverMain") );
                    context.sendBroadcast(broadCastIntent);
                    LogUtils.log("hookQRCreat end:"+JSON.toJSONString(param));
                }catch (Exception e){
                    LogUtils.log("hookQRCreat exception:"+Log.getStackTraceString(e));
                }
            }
        });
    }
                 
            
« 上一篇:没有了
  • 友情链接:
Copyright(C) 2007-2010 EntLib.com(上海闵行区浦江镇863软件孵化基地) - 企业级的电子商务系统 基于Microsoft .Net Framework / ASP.Net / C# / AJAX 平台构建的标准电子商务系统 All Rights Reserved (R)    沪ICP备08014628号