安卓逆向学习之详解Hook含义及作用
晚上好!各位打工人。
今天我们来聊聊hook吧!
对于很多刚入行安卓逆向的打工人来说,
hook这一名词是陌生的。
那么Hook究竟是什么呢?
Hook用于什么地方?
怎么去使用?
在安卓逆向的过程中会起到什么样的作用呢?
或许许多小伙伴对于hook并没有一个明确的认知,
甚至会很疑惑。
那么今天就专门来给大家讲解讲解,
Hook的概念、使用以及起到的作用。
当然如果看完仍然不清楚或者不理解的朋友们,
也可以私聊小编!
01
Hook的具体含义?
在英文中,hook翻译出来是钩的意思,而在IT行业,这是一个术语;对于一个程序员来说,这是一个技术,当然也是是一个可以让逆向工程师耍帅的技能啦!
学习逆向,hook是一项必学的基础知识,必须要掌握好hook的知识,才能更加容易上手逆向技术。
那么在认识hook工具前,我们需要先了解Hook是什么。
02
Hook的作用?
hook英文单词意为“钩子”,很形象的,它的作用就是去调用或者篡改APP代码。
举一个简单的例子。
消消乐风靡的时候大受欢迎,相信男女老幼都对这款游戏不陌生。
开心消消乐这个小游戏,相信各位小伙伴都玩过。而在进行游戏时,闯关是很有成就感。游戏大神们自然是轻轻松松“unbelievable”、“amazing”!
而对于游戏渣来说,就很有可能闯关失败。并且游戏闯关失败后会跳出弹窗,提示让你充值一定数量的金币,好胜心强的小伙伴自然不会轻易认输,但是又不想因为这个小游戏充钱,怎么办呢?
这个时候我们安卓逆向的优势自然就突显出来了!如果我们不想充值,那么利用hook,可以直接反编译这款游戏APP,找到它控制我们充值的代码,通过Hook篡改充值代码,将需要充值改成不需要充值或直接绕过这条要求我们充值的代码,就可以实现无需充值跳过闯关。
我们可以形象地把hook的作用比喻为就像拿着一根中医的针,直插关键代码,正中要穴,解决我们的需求。
另外,再例如我们讲协议的时候,通过Hook还可以改变手机的特征码:
将androidhuawei20200103xxxx这样的特征改为androidhuawei20200528xx;
03
常见的Hook使用的框架?
常见的Hook使用的框架有:
sub框架:该框架作用于so层
xpsoed框架:作用于java层
frida框架:作用于java层与so层
这些就是hook相关的含义以及应用层面。当然啦,在实际应用中,其实还有更多你意想不到的作用哦,你可以在安卓逆向工作中去发现,然后来留言告诉小编哦~
文案:文生/编辑:陈情
文章来源:易锦课堂