`
iaiai
  • 浏览: 2145194 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转]android java hook(二)

 
阅读更多
第一篇文章读完之后,大家在熟悉了cydia的hook框架了,然后我们就开始下一步的学习。

本篇文章,主要是修改正常软件中方法的返回值,大家可以根据这个思路去延伸扩展,不要局限于此文一个思路。

0x1:建立新工程

新建立一个正常安卓工程,具体可以看附件
工程名:TestHook
包名:com.example.testhook
主类:MainActivity.java

编写一个测试算法的代码:
public int getMoney(){
  int aa=10;
  System.out.println("这里还是初始化的aa为-->"+aa);
  return aa;
}

代码很简单,模拟一般游戏的get方法,返回一个int类型的数据,一般用来当作游戏中的金币数量。

然后在onCreate中调用这个方法:
System.out.println("开始执行了");
                
int bb=getMoney();
                
System.out.println("现在是新版本的aa为-->"+bb);

在调用方法前后,对数据都有打印,这样我们就可以很方便的查看数据是否改变了。

好了,测试工程基本就这样了,那么我们安装看一下log日志:

一切正常,我们的目标工程完成后,那么我们就开始编写hook方面的算法。

0x2:编写hook代码

省事一点,我们直接使用上篇文章使用的Hook工程,编写一个新的方法即可。

这里是定义我们需要 hook 的类和方法。

然后就是看怎么操作那个hook的getMoney的方法了:
if(log!=null){
  final MS.MethodPointer old = new MS.MethodPointer();
  MS.hookMethod(arg0, log, new MS.MethodHook() {
    @Override
    public Object invoked(Object arg0, Object... arg1) throws Throwable {
      System.out.println("i am in---------->");
      System.out.println("i am going to fuck ---->");
                                                 
      //调用原getMoney方法,将原方法的返回值放到aa中
      int aa=(Integer) old.invoke(arg0, arg1);
                                                 
      //修改aa为999999,即原方法返回值已经修改掉了
      aa=9999999;
                                                                 
      //返回aa
      return aa;
    }
  },old);
}

好了,这样以后,我们可以开始测试了。

进行安装此插件,然后重启手机。。。

对比上面我们测试工程的打印截图,这下可以很清楚的看到,我们已经成功修改掉getMoney的返回值为999999。

好了,到现在这两篇文章,大家看完之后,也就可以大致明白了,我们是可以通过这个来操作游戏的,尤其是对有各种验证如签名或者md5的游戏,我们在本机这样修改的话,就可以算是破解掉了,那么我们下一篇文章就拿一个游戏开始测试,验证我们的想法是否可行。


相关工程附件都在下面网盘,可以直接拿来测试。

链接:http://pan.baidu.com/s/1qW2TPYO 密码:d1ad
  • 大小: 7.3 KB
  • 大小: 16.7 KB
  • 大小: 8.8 KB
分享到:
评论

相关推荐

    java hook demo

    java hook android hook java hook android hook java hook android hook

    Android native Hook工具

    Android进程so注入Hook java方法的原理和使用(一)中介绍的Android native Hook工具文件,已经在android模拟器上进行Hook测试,能够成功,提供给需要的朋友,也为自己备份一下。

    注入安卓进程,并hook java世界的方法

    看雪大牛写的

    Android native Hook的源码

    Android进程so注入Hook java方法的原理和使用(一)中提到的Android native Hook的源码工程,能够在ubuntu下编译成功,提供给向学习Android的Hook的同学,同时也自己备份一下。

    FridaAndroid02-JAVA层HOOK 示例程序

    【Frida】【Android】02_JAVA层HOOK 示例程序

    AndroidHookJava:Android如此钩JAVA

    AndroidHookJava Android so hook JAVA 网上的代码 打算在此基础上进行开发改动

    HookDemo.rar

    Hookdemo,简单的hook例子,分享简单的Hook java 在android中的使用, 可供初学者学习使用,hook java

    Xosed框架学习(JAVA Method Hook)

    详细分析了 Android神奇 Xposed框架的设计原理, 精彩章节包括若何在底层改变java框架层的函数地址(HOOK Method)、如何构建自己的Module

    Node.js-Epic是一个在虚拟机层面以JavaMethod为粒度的运行时AOPHook框架

    Epic是一个在虚拟机层面、以Java Method为粒度的 运行时 AOP Hook框架。简单来说,Epic 就是ART上的 Dexposed 。它可以拦截本进程内部几乎任意的Java方法调用,可用于实现AOP编程、运行时插桩、性能分析、安全审计等...

    hook-android:钩子的 Java 客户端 (https

    Hook-android 挂钩安卓客户端 #关于 这是一个端口。 该库是一个原生 Android 库,没有外部依赖项,面向 Android API 级别 10。它也不需要 JavaScript 客户端,库与 hook 的 REST 接口进行通信。 #如何使用 设置 ...

    注入到Java世界

    Hook到java的世界,修改mac的返回值。很有用的,项目下载下来就可以进行编译

    ddi Hook框架代码分析

    对Android的java Hook框架ddi代码的分析和学习整理,方便自己查找和学习,对Android ddi Hook框架感兴趣的同学可以下载来看看,希望能帮助到你。

    Xposed框架学习

    XposedHook技术也就是Android的Java层Hook框架,有兴趣的同学可以学习一下,里面有已经整理好的文档和XposedHook的示例demo,稍微修改一下就可以使用.

    Android代码-YAHFA

    YAHFA is a hook framework for Android ART. It provides an efficient way for Java method hooking or replacement. Currently it supports: Android 5.0(API 21) Android 5.1(API 22) Android 6.0(API 23) ...

    【推荐】超全的移动安全自学资料精编合集(43份).zip

    推荐,超全的移动安全自学资料精编合集,共43份. Android安全安全技术: Emulator模拟器的...Android安全Hook: Xposed源码分析(二) Android安全Hook: Xposed源码分析(三) Android安全Hook: Xposed源码分析(四)

    Android代码-anti-counterfeit-android

    anti-counterfeit-android 模拟器检测,多开检测,Hook检测,Root检测。 4个Java类,直接拷贝使用即可。 模拟器检测 boolean isEmulator = EmulatorDetector.isEmulator(); 多开检测 boolean isVirtual = ...

    移动安全系列教学下载共43份.zip

    Android安全Hook--37--Xposed源码分析(二).pdf Android安全Hook--38--Xposed源码分析(三).pdf Android安全Hook--39--Xposed源码分析(四).pdf Android安全安全技术--16--Android系统安全(上).pdf Android安全...

    基于java实现的在 Android 上的模拟器检测,多开检测,Hook检测

    Anti 模拟器 这个很容易理解,模拟出来的机器,每次模拟的时候生成的设备ID,只存在模拟器使用的生命周期里。可能下一次模拟时又不一样了。 应对方法:主要是检测运行模拟器的一些特征,比如驱动文件,Build类内的...

    基于Vue,快速进行Android Frida Hook并将结果美化打印到web端,方便逆向分析.zip

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...

    深入理解Android之Xposed详解

    Xposed不仅仅是一个插件加载功能,而是它从根上Hook了Android Java虚拟机,所以它需要root,所以每次为它启用新插件APP都需要重新启动。而如果仅是一个插件加载模块的话,当前有很多开源的插件加载模块,就没这么...

Global site tag (gtag.js) - Google Analytics