安卓逆向学习之详解Hook含义及作用
2022-02-28 17:09:222391浏览
hook是逆向学习一项必学的基础知识,学好hook就更加容易上手逆向技术,作用就是去调用或者篡改APP代码。


安卓逆向学习之详解Hook含义及作用



Hook的具体含义?


在英文中,hook翻译出来是钩的意思,而在IT行业,这是一个术语;对于一个程序员来说,这是一个技术,当然也是是一个可以让逆向工程师耍帅的技能啦!
学习逆向,hook是一项必学的基础知识,必须要掌握好hook的知识,才能更加容易上手逆向技术。
那么在认识hook工具前,我们需要先了解Hook是什么。



Hook的作用?

hook英文单词意为“钩子”,很形象的,它的作用就是去调用或者篡改APP代码。

举一个简单的例子。
消消乐风靡的时候大受欢迎,相信男女老幼都对这款游戏不陌生。

开心消消乐这个小游戏,相信各位小伙伴都玩过。而在进行游戏时,闯关是很有成就感。游戏大神们自然是轻轻松松“unbelievable”、“amazing”!


而对于游戏渣来说,就很有可能闯关失败。并且游戏闯关失败后会跳出弹窗,提示让你充值一定数量的金币,好胜心强的小伙伴自然不会轻易认输,但是又不想因为这个小游戏充钱,怎么办呢?


这个时候我们安卓逆向的优势自然就突显出来了!如果我们不想充值,那么利用hook,可以直接反编译这款游戏APP,找到它控制我们充值的代码,通过Hook篡改充值代码,将需要充值改成不需要充值或直接绕过这条要求我们充值的代码,就可以实现无需充值跳过闯关。
我们可以形象地把hook的作用比喻为就像拿着一根中医的针,直插关键代码,正中要穴,解决我们的需求。

另外,再例如我们讲协议的时候,通过Hook还可以改变手机的特征码:

将androidhuawei20200103xxxx这样的特征改为androidhuawei20200528xx;


常见的Hook使用的框架?


常见的Hook使用的框架有:
sub框架该框架作用于so层
xpsoed框架作用于java层
frida框架作用于java层与so层

友情链接: