由于微信摇骰子的功能在本地进行随机后在发送,所以存在可以hook掉判断骰子数的方法进行修改作弊。

1.frida实现hook java层函数
1)写个用来测试的demo,当我们点击按钮的时候会弹出窗口显示数字。代码中我是传进的参数是4,显示为8。

package com.example.fridatest;import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import android.os.Build;public class MainActivity extends Activity {Button myButton1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fragment_main);myButton1 = (Button) findViewById(R.id.button1);myButton1.setOnClickListener( new ButtonClick());}class ButtonClick implements OnClickListener {public void onClick(View v) {switch (v.getId()) {case R.id.button1:int nRet = test(4);String strRet = nRet + "";Toast.makeText(MainActivity.this, strRet,Toast.LENGTH_LONG).show();break;default:break;}}}public int test(int num){int nRet = num*2;return nRet;}
}

2)运行结果。

2.连接手机,运行脚本。
1)启动frida-server
2)adb forward tcp:27042 tcp:27042
3)执行脚本。

import frida
import sysscr = """
Java.perform(function () {
var be= Java.use("com.example.fridatest.MainActivity");
send(typeof(be));
send(typeof(be.test));
send("start")
be.test.implementation = function(){var type = arguments[0];send("start")send("type="+type);if (type == 4){return this.test(5);}else{return 5;}};
send("end")
});
"""rdev = frida.get_usb_device(20)
session = rdev.attach("com.example.fridatest")
script = session.create_script(scr)fp = open("D:/log.txt","w") def on_message(message, data):type = message["type"]msg = messageif type == "send":msg = message["payload"]elif type == 'error':msg = message['stack']    print(msg)        script.on('message', on_message)
script.load()
sys.stdin.read()

4)再次点击,可以看到hook成功,能获取到传入的参数以及修改后界面显示成我们hook修改过后的数值。

3.修改微信骰子的判断函数。

参考网上的文章定位最新版的判断函数为com.tencent.mm.sdk.platformtools.be类的tx函数。(Randon函数)

1)编写hook代码修改实现作弊每次骰子都是6。

主要函数

scr = """
Java.perform(function () {
var be= Java.use("com.tencent.mm.sdk.platformtools.be");
send(typeof(be));
send(typeof(be.tx));
send("start")
be.tx.implementation = function(){var type = arguments[0];send("start")send("type="+type);return 5;
};
send("end")
});
"""

2)实现每次都能获取到6的结果。

ps:试过了的手机,发现4.x版本的root的最为稳定。(红米note,华为3c),坑爹三星系列的都不成功。

参考:http://www.voidcn.com/blog/autohacker/article/p-4979253.html
      :https://github.com/JAYAndroid/WeChatHook

转载于:https://www.cnblogs.com/konf/p/5998785.html

Frida HOOK微信实现骰子作弊相关推荐

  1. 逆向微信------给微信加上控件之骰子作弊

    严重声明 本文的意图只有一个就是通过分析app学习更多的逆向技术,如果有人利用本文知识和技术进行非法操作进行牟利,带来的任何法律责任都将由操作者本人承担,和本文作者无任何关系,最终还是希望大家能够秉着 ...

  2. 安卓Hook微信-计步器、万能骰子、自动回复、反撤回、抢红包思路分享

    此篇博客仅实现的思路分享,不提供最终成品 目录 学完你能收获什么 要求 前置条件 运行环境 成果 最终效果 开发耗时 最终Hook的类 实现 需知 1.选择root或VA 2.反编译代码工具 3.YA ...

  3. python xposed_GitHub - twqdev/CPWechatXposed: 使用Xposed Hook微信等APP

    使用Xposed Hook微信等APP CPWechatXposed 是笔者折腾Xposed插件的一些记录,Xposed通过Hook应用相关的方法来为应用添加一些附加的 功能.本项目仅用于技术研究学习 ...

  4. 用hook android 微信,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。

    前人栽树,后人吃桃. 准备入坑 安卓 xposed hook 微信(及时通信),好吧,第一步当然是论坛里面搜索啦,像掷骰子.计步器什么的都是小孩子过家家入门级别的,当然是要搞就搞(及时通信).微信 a ...

  5. Android挂逼修炼之行---微信摇骰子和猜拳作弊器原理解析

    一.前言 在之前的一篇文章中我们已经详细介绍了Android中Hook工作的一款神器Xposed工具:Xposed框架原理解析和使用案例分析 在那一篇文章中我们介绍了如何安装Xposed框架,以及如何 ...

  6. Android”挂逼”修炼之行—微信摇骰子和猜拳作弊器原理解析

    .猜想假设 本文就借助之前的Xposed框架来介绍如何编写微信的一个外挂功能,这个功能就是微信摇色子和剪刀石头布的作弊器,我们用过微信这个功能都知道,是一个比较常用的功能,因为在一个群聊中会很无聊就来 ...

  7. Android挂逼修炼之行---微信摇骰子和猜拳作弊器原理解析 (转载)

    该文章是我觉得当中的逆向方式以及使用工具的方式非常值得学习,转载只为记录下来,若侵则删. 一.前言 在之前的一篇文章中我们已经详细介绍了Android中Hook工作的一款神器Xposed工具:Xpos ...

  8. Java可以hook微信吗,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。

    前人栽树,后人吃桃. 准备入坑 安卓 xposed hook 微信(及时通信),好吧,第一步当然是论坛里面搜索啦,像掷骰子.计步器什么的都是小孩子过家家入门级别的,当然是要搞就搞(及时通信).微信 a ...

  9. android微信二维码收款hook,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。...

    前人栽树,后人吃桃. 准备入坑 安卓 xposed hook 微信(及时通信),好吧,第一步当然是论坛里面搜索啦,像掷骰子.计步器什么的都是小孩子过家家入门级别的,当然是要搞就搞(及时通信).微信 a ...

最新文章

  1. 改变从内部开始:开发者与管理者的协作
  2. BUUCTF(misc)变异凯撒 --二
  3. 互联网产品研发的典型流程
  4. python 空指针_Python&CType空指针错误
  5. location 拦截所有_电脑广告拦截软件 Adguard Premium
  6. excel中如何添加下拉选择框
  7. 有效利用ASP.NET用户控件的事件委托
  8. jmeter笔记02
  9. 查看电脑端口占用情况
  10. Joost-体验全球的视频节目
  11. 【Python实现】运输问题的表上作业法(二):利用位势法判断当前解的最优性
  12. eda技术试卷_EDA技术试题库-试题库
  13. matlab神经网络训练精度,关于提高MATLAB神经网络精度的问题
  14. 2012移动互联网之人在囧途
  15. 芯片封装形式(网上到处找的)
  16. RTC电池供电时二极管选择注意
  17. 黑客用我们服务器挖矿了
  18. [安装fastfds中的nginx执行make命令报错]src/core/ngx_murmurhash.c:37:11: error
  19. 一个能够屏蔽百度广告的爬虫:BaiduSpider
  20. 让程序员“#*...%#{4*”的瞬间:你是修电脑的吧?

热门文章

  1. 2018 CCSP 杭州之行
  2. html中index是什么作用,js中index是什么意思
  3. 用python去换行符
  4. 【Mac】macOS无法验证此App不包含恶意软件 解决方法
  5. JMSCorrelationID 艹草艹
  6. 无线高级设置服务器,tplink无线路由器无线高级设置里面的参数怎样设置
  7. 求sinx/x的极限
  8. css实现线条两边细中间粗
  9. mysqladmin: Can't turn off logging; error: 'Access denied; you need the SUPER privilege for this ope
  10. STM32物联网项目-低功耗模式