有谁知道hook底层的具体实现吗?进程地址空间是彼此独立的,那么hook技术怎么突破这种独立空间检测将一个进程的代码注入到另一个进程中的呢?
具体来说,比如安卓有沙箱机制,那么hook是怎么绕过沙箱将一个进程的代码注入到另一个进程中的?
请不要拿hook就像“钩子”之类的比喻来说事儿,然后上那张经典的钩子图,这种比喻让寻求本质的人感到迷茫。我想知道具体的底层实现,特别是怎么突破进程空间独立这一限制的。
你说得没错,进程是独立的,所以一般都是先注入代码,也就是把要执行的代码先写入目标进程,然后再让它执行(比如说修改系统例程的入口地址表,指向你注入的代码),因为这个代码是进程内的了,所以就不存在跨进程的问题。