Android学习第12天-----HOOK技术

转载 2016年08月30日 11:07:44

今天学习一下hook技术 先科普一下

Windows Hook

Windows操作系统是建立在事件驱动机制之上的,系统各部分之间的沟通也都是通过消息的相互传递而实现的。但在通常情况下,应用程序只能处理来自进程内部的消息或是从其他进程发过来的消息(借助进程间通信技术,如剪贴板,管道,邮槽等),如果需要对在进程外传递的消息进行拦截处理就必须采取一种称为HOOK的技术。

钩子(Hook) 是Windows消息处理机制一的一个平台,应用程序可以在上面设置子程序以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程创建的。当消息到达后,在目标创窗口处理函数之前处理它,钩子的机制允许应用程序截获处理windows消息或者特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把他挂入系统。每当特定的消息发出,在没有到达目的窗口之前,钩子程序就先捕获这个消息,亦即钩子函数先获得控制权,这时钩子函数即可以加工处理该消息也可以不做休息继续传递该消息,还可以强制结束消息的传递。

想了解的可以先看一下链接

Windows Hook 技术简介

Hook 入门

Hook详解

Windows Hook

msdn.microsoft.com

这个很详细

下面看是Android Hook之旅

首先我采用的是Cydia框架 but … 一直都是各种错误 各种Google 看各种英文论坛但是还是不行 作为渣渣的我换了框架使用Xposed很快三分钟搞定了 上Github看教程吧

这里有一个对Xposed的分析很不错的 看看

Xpose源码剖析

最好的学习方式还是看官方地址如下

Development-tutorial

还有这个

吾爱破解

我们使用Xposed进行Hook也分为如下几个步骤:

首先要把api-53.jar,api-53-source.jar 两个文件放入app\libs目录,右键Add to library.(这还没完!注意!)
要把build.gradle下方新加上

repositories {
    jcenter();
}

并把原有的dependencies块改成

dependencies {
    provided 'de.robv.android.xposed:api:53'
    provided 'de.robv.android.xposed:api:53:sources' 
}
  1. 在AndroidManifest.xml文件中配置插件名称与Api版本号
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.robv.android.xposed.mods.tutorial"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <meta-data
            android:name="xposedmodule"
            android:value="true" />
        <meta-data
            android:name="xposeddescription"
            android:value="Xposed Hook log test" />
        <meta-data
            android:name="xposedminversion"
            android:value="53" />
    </application>
</manifest>
  1. 新建一个入口类并继承并实现IXposedHookLoadPackage接口
package de.robv.android.xposed.mods.tutorial;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;

public class Tutorial implements IXposedHookLoadPackage {
    public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
        XposedBridge.log("Loaded app: " + lpparam.packageName);
    }
}
  1. 声明主入口路径

需要在assets文件夹中新建一个xposed_init的文件,并在其中声明主入口类。

在app\src\main\assets目录(没有就新建这个目录)下新建文件xposed_init
入口assets/xposed_init配置,声明需要加载到 XposedInstaller 的入口类: (完整类名:包名+类名)

这样官网提供的例子就能实现了

代码会在下面放出

可以看看这个帖子

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

Android插件化系列第(一)篇---Hook技术之Activity的启动过程的拦截

这篇文章主要讲解如何利用动态代理技术Hook掉系统的AMS服务,来实现拦截Activity的启动流程。代码量不是很多,为了更容易的理解,需要掌握JAVA的反射,动态代理技术,以及Activity的启动...
  • u013263323
  • u013263323
  • 2017年02月09日 14:07
  • 1663

Android安全:Hook技术

一、Hook技术 1.Hook英文翻译为“钩子”,而钩子就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时,处理一些自己特定的事件; 2.Hook使它能够将自己...
  • p106786860
  • p106786860
  • 2016年08月15日 18:39
  • 15193

android的hook技术之hook所有view的监听器

这里先声明一下,由于这篇文章早已有人写过,但是并非盗取他的成果,这里的雷同确实有些偶然。。。这是做到一半的时候一个同事跟我说网上有,于是乎我看了他的思路以及demo,基本跟我差不多,只是他的代码写的可...
  • zhongwn
  • zhongwn
  • 2017年01月13日 11:49
  • 5097

Android学习心得(20) --- Hook技术( 1 )

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Hook技术Hook动态注入技术由来已久,通过Hook,我们可以改变变量或者方法的执行。在Android上进行...
  • qiyu93422
  • qiyu93422
  • 2016年08月22日 19:13
  • 612

Android Hook技术实践

  • 2016年12月27日 15:55
  • 1.8MB
  • 下载

Android安全:Hook技术

一、Hook技术 1.Hook英文翻译为“钩子”,而钩子就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时,处理一些自己特定的事件; 2.Hook使它能够将自己...
  • p106786860
  • p106786860
  • 2016年08月15日 18:39
  • 15193

Android逆向分析之Xposed的hook技术

Android逆向工程里常用到的工具除了的dex2jar,jd-gui,  Apktool之外还有一个Xposed。zhe...
  • qq_18870023
  • qq_18870023
  • 2016年07月08日 16:56
  • 12124

【转载】Android 5.1 Art Hook 技术分享

转载一篇关于Android5.1的ART HOOK方案。 首先简单介绍一下hook。所谓hook就是通过一些手段改变一个函数的执行逻辑,比如在函数调用前更改一下参数或者在调用后修改返回值,甚至直...
  • viviancheng666
  • viviancheng666
  • 2015年12月16日 14:28
  • 732

Android Art Hook 技术方案

Android Art Hook 技术方案 by 低端码农 at 2015.4.13 www.im-boy.net 0x1 开始Anddroid上的ART从5.0之后变成默认的选择,可见ART的重...
  • L173864930
  • L173864930
  • 2015年04月14日 19:59
  • 25597

【原创】Android5.1 Art Hook 技术分享

Hi,大家好,很多次的在各种技术论坛上看到大牛的分享,学到了很多。本着共建社区,共享知识的目的,在这里我和大家分享一下我最近研究到的关于Android5.1的ART HOOK方案。还是demo阶段,请...
  • orlando19860122
  • orlando19860122
  • 2015年09月16日 22:32
  • 1429
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android学习第12天-----HOOK技术
举报原因:
原因补充:

(最多只允许输入30个字)