Hook的两个小插曲

    看完了前面三篇文章后,这里我们来一个小插曲~~~~

    

    第一个小插曲。是前面文章一个CM精灵的分析。我们这里使用hook代码来搞定。

第二个小插曲,是如今一些游戏,都有了支付上限,比如每天仅仅能花20块钱来购买。

好了。以下我们分开叙述~~~~

0x1:第一个小插曲


CM精灵分析的时候,打开软件能得到的最初始的信息,是软件的使用时间有限制,为30分钟,我们能够找到其上下文来继续查看一下。

软件分析方面,懒得再次打字叙述了,看以下的连接就可以:

http://www.52pojie.cn/thread-285325-1-1.html

 

我们通过分析以后,能够得到:





通过查看a()Z方法。发现是一个返回值为boolean类型的方法,所以。也能看到确定的类和方法,那么我们就開始写hook代码,hook代码简单来说,使用框架的话是非常easy的:


1.确定hook

2.确定hook类中的关键call方法

3.hook方法来怎么做


那好。有这三条流程以后,我们继续下去。

这里是确定须要hook方法所在的类:




MS.hookClassLoad("net.aisence.Touchelper.TouchelperLicense", new MS.ClassLoadHook()


这里是确定须要hook的方法名和方法的传入參数



hookvalid=arg0.getMethod("a", null);



然后就是hook那个方法,我们这里仅仅须要它的返回值为true就可以:



final MS.MethodPointer old = new MS.MethodPointer();MS.hookMethod(arg0, hookvalid, new MS.MethodHook() {@Overridepublic Object invoked(Object arg0, Object... arg1)throws Throwable {// TODO Auto-generated method stubSystem.out.println("是否注冊 hook --->");boolean aa=(Boolean) old.invoke(arg0,arg1);aa=true;System.out.println("是否注冊了呢?-->"+aa);return aa;  }}, old);



好了,我们执行安装插件,然后重新启动手机打开软件:

在点击播放一个脚本的时候,会有例如以下信息:






刚好是我们hook中的信息打印,说明一切正常。

測试方面,我仅仅是简单測了几个插件而已。没有连续搞1个多小时那么长时间。假设測试出现其它问题,那么继续依据问题寻找原因就可以。

 

0x2:第二个小插曲


游戏中想花钱也不行,人家限定了每天仅仅能花多少,所以,我们能够猜測。游戏获取手机的信息,然后推断你是不是支付了太多,那么一般常见的信息就是imeiimsi了。

这两个单词的概念。不懂的同学搜索一下,一个是手机imei,一个是sim卡的imsi,相当于人的身份证。


好了。那么我们先从imei入手:


先写下我们开发中正常获取imei的代码:




TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(this.TELEPHONY_SERVICE);String imei=mTelephonyMgr.getDeviceId();System.out.println("如今的Imei为-->"+imei);




好了,正常软件开发来获取手机的imei是这样写的,使用系统的API就可以。


然后我们须要分析下TelephonyManager 所在的类,由上面的引用import为:



import android.telephony.TelephonyManager;



所以,我们能够知道完整的类路径。同一时候又知道方法,那么我们就開始编写hook代码了:


依照前文的三部曲:



1. MS.hookClassLoad("android.telephony.TelephonyManager"new MS.ClassLoadHook() 

 

 

2. hookimei=arg0.getMethod("getDeviceId"null);

 

 

3. System.out.println("hook imei----------->");

 

        String imei=(String) old1.invoke(arg0, arg1); 

 

  imei="999996015409081";

                             

return imei;  

 

好了,然后我们安装,開始測试吧,刚好在前面我们写的正常获取的project里面測试,通过各种信息打印。我们能够知道结果的。







上面的打印是我们hook代码中的信息。最后一行的代码是我们測试获取imeiproject中的打印。说明一切正常,我们达到了所需目的!

IMEI的获取没问题了,那么我们就開始操作IMSI吧,依照上面的思路走起~



1.MS.hookClassLoad("android.telephony.TelephonyManager"new MS.ClassLoadHook()

 

2.hookimsi=arg0.getMethod("getSubscriberId"null);

 

3. System.out.println("hook imsi----------->");

String imsi=(String) old1.invoke(arg0, arg1);

imsi="460001200505666";

return imsi;  

 


測试截图:







带入正常游戏的測试,临时手上没有合适的包来測试,这里不再叙述。有需求的朋友能够自行測试就可以。

这个插件,事实上也能够做成一个界面形式的,将ImeiImsi能够做成自己想要改动的数值,有兴趣的。自己写下。


相关附件资料:


http://pan.baidu.com/s/1gd9rV2r



前面三课没有学习的,自行翻阅。一步一步来。依照文中全部的叙述操作就可以。然后自己再思考扩展一下,这样才是我们这几课程的目的。






本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序和vue双向绑定哪里不一样_个人理解Vue和React区别

本文转载自掘金,作者:binbinsilk,监听数据变化的实现原理不同Vue 通过 getter/setter 以及一些函数的劫持,能精确知道数据变化,不需要特别的优化就能达到很好的性能React 默认是通过比较引用的方式进行的,如…

JS 省,市,区

1 // 纯JS省市区三级联动2 // 2011-11-30 by http://www.cnblogs.com/zjfree3 var addressInit function (_cmbProvince, _cmbCity, _cmbArea, defaultProvince, defaultCity, defaultArea) {4 var cmbProvince document.getElementById(_cmbProvince);5 var cmbCity…

使用极链/AutoDL云服务器复盘caffe安装

继上一次倒腾caffe安装以后,因为博士毕业等原因,旧的服务器已经不能再使用,最近因论文等原因,不得不继续来安装一下我的caffe。这次运气比较好,经历了一晚上和一早上的痛苦之后,最终安装成功了,…

Samba服务

####################samba####################1.samba作用提供cifs协议实现共享文件2.安装yum install samba samba-common samba-client -ysystemctl start smb nmbsystemctl enable smb nmb3.添加smb用户smb用户必须是本机用户[rootlocalhost ~]# smbpasswd -a student New…

CodeForces 543D 树形DP Road Improvement

题意: 有一颗树,每条边是好边或者是坏边,对于一个节点为x,如果任意一个点到x的路径上的坏边不超过1条,那么这样的方案是合法的,求所有合法的方案数。 对于n个所有可能的x,输出n个答案。 分析&am…

理解Javascritp中的引用

Author: bugall Wechat: bugallF Email: 769088641qq.com Github: https://github.com/bugall一: 函数中的引用传递 我们看下下面的代码的正确输出是什么 function changeStuff(a, b, c) {a a * 10;b.item "changed";c {item: "changed"}; …

ONOS系统架构演进,实现高可用性解决方案

上一篇文章《ONOS高可用性和可扩展性实现初探》讲到了ONOS系统架构在高可用、可扩展方面技术概况,提到了系统在分布式集群中怎样保证数据的一致性。在数据终于一致性方面,ONOS採用了Gossip协议。这一部分的变化不大,而在强一致性方案的选择方…

Struts2_day01

Java Web开发常用框架 SSH(Struts2 Spring Hibernate)SSM(Struts2 Spring MyBatis)SSI(Struts2 Spring iBatis) 多种框架协同工作 Web层 -- Service层 -- Dao层 Struts2框架: Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MV…

使用 python 开发 Web Service

使用 python 开发 Web Service Python 是一种强大的面向对象脚本语言,用 python 开发应用程序往往十分快捷,非常适用于开发时间要求苛刻的原型产品。使用 python 开发 web service 同样有语言本身的简捷高速的特点,能使您快速地提供新的网络服…

java 基础5

一、 什么是数组及其作用? 定义:具有相同数据类型的一个集合 作用:存储连续的具有相同类型的数据 二、 java中如何声明和定义数组 2.1 声明和定义的语法: 数据类型[ ] 数组名;( int[ ] nums ; ) 或 数…

TFS(Team Foundation Server)介绍和入门

在本文的两个部分中,我将介绍Team Foundation Server的一些核心特征,重点介绍在本产品的日常应用中是怎样将这些特性结合在一起使用的。 作为一名软件开发者,在我的职业生涯中,我常常会用到支持软件开发过程的大量开发工具&#x…

[Hadoop] - 自定义Mapreduce InputFormatOutputFormat

在MR程序的开发过程中,经常会遇到输入数据不是HDFS或者数据输出目的地不是HDFS的,MapReduce的设计已经考虑到这种情况,它为我们提供了两个组建,只需要我们自定义适合的InputFormat和OutputFormat,就可以完成这个需求&a…

PS 色调——老照片效果

这就是通过调色使照片显得发黄。 R_new0.393*R0.769*G0.189*B; G_new0.349*R0.686*G0.168*B; B_new0.272*R0.534*G0.131*B; clc; clear all; Imageimread(9.jpg); Imagedouble(Image); Image_newImage; Image_new(:,:,1)0.393*Image(:,:,1)0.769*Image(:,:,2)0.189*Image(:,:,3…

jsp出现错误

昨天在调试页面时发生了如图显示的异常&#xff0c;它出现的原因是当<jsp:forward>或<jsp:include>标签没有参数时&#xff0c;开始标签和结束标签</jsp:forward>或</jsp:include>之间不能有空格&#xff0c;不能换行。解决办法&#xff1a;删除标签之…

门限回归模型的思想_Stata+R:门槛回归教程

来源 | 数量经济学综合整理转载请联系进行回归分析&#xff0c;一般需要研究系数的估计值是否稳定。很多经济变量都存在结构突变问题&#xff0c;使用普通回归的做法就是确定结构突变点&#xff0c;进行分段回归。这就像我们高中学习的分段函数。但是对于大样本、面板数据如何寻…

二阶传递函数的推导及几种求解方法的比较

二阶系统是指那些可用二阶微分方程描述的系统&#xff0c;其电路形式是由两个独立动态元器件组成的电路。 二阶系统电路包括二阶低通电路、二阶高通电路、二阶带通电路和二阶带阻电路。 下面分别给出以上二阶系统传递函数的推导过程&#xff0c;并以二阶低通电路的冲激响应为例…

前端技术-调试工具(上)

页面制作之调试工具 常用的调试工具有Chrome浏览器的调试工具&#xff0c;火狐浏览器的Firebug插件调试工具&#xff0c;IE的开发人员工具等。它们的功能与使用方法大致相似。Chrome浏览器简洁快速&#xff0c;功能强大这里主要介绍Chrome浏览器的调试工具。 打开 Google Chrom…

新版Microsoft Edge支持跨平台跨设备浏览

之前一直使用Google Chrome浏览器&#xff0c;可以随意安装插件扩展程序&#xff0c;无广告&#xff0c;这是我钟爱她的原因。但是之后不能登录Google账号&#xff0c;不能实现跨设备应用&#xff0c;就想找一款好用的替代品&#xff0c;近期发现了新版的Microsoft Edge&#x…

百度网盘7.3.1.10版本增加工作空间功能,可实现百度网盘与电脑文件夹同步

百度网盘新增的工作空间是一款文件同步的产品&#xff0c;支持电脑本地与云端之间的文件同步&#xff0c;多设备间文件自动保持同步、支持查看文件每次都修改的历史版本。功能类似于onedrive。如果有同步需求的小伙伴可以尝试下载最新版的百度网盘试用该功能哦。下载网址&#…

ubuntu+idea intellij配置android开发环境

最近对移动开发产生兴趣&#xff0c;决定在未来几年内利用空余时间开发一些app或游戏什么的&#xff0c;鉴于ios开发成本较高&#xff0c;且自身对java相对熟悉&#xff0c;因此选择了学习android。都说android市场不很很好&#xff0c;收益较难&#xff0c;但是仍觉得只要功夫…