先简单说下原理:hook,即野蛮地借用jmp等指令钩住目标函数,修改运行路径使其执行我们自己的代码。方法是在指定进程中的内存里找到目标函数的地址,然后修改其首地址的前几字节为jmp指令,指向我们自己的自定义函数地址。这样,进程执行这个函数的时候,会先执行我们自己的代码,之后可以选择性执行原函数或不执...
分类:
其他好文 时间:
2015-05-22 01:45:28
阅读次数:
174
所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念。当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就 会去执行对应hook点的脚本。SVN版本库目录下有hooks目录,里面有很多.tmpl的文件。这些文件用以定义某些动作触发的 h...
分类:
其他好文 时间:
2015-05-21 15:29:24
阅读次数:
125
题意:给出n根金属棒,和操作数q,初始时每个金属棒价值都为1,每次操作可以把从x到y的金属棒更换材质,铜为1,银为2,金为3,最后统计所有的金属棒总价值是多少。
线段树成段更新,需要用到lazy标记,所谓lazy标记就是:更新一个区间的时候不更新到底,只更新到第一个满足更新范围的区间(即范围内的最大的区间),然后给节点加上lazy标记,以后需要更新到该节点的子节点的时候,就把lazy标记...
分类:
其他好文 时间:
2015-05-21 01:23:04
阅读次数:
154
模板方法模式 在一个算法中定义了一个算法骨架,而将一些算法延迟到子类中。模板方法使得子类可以再不改变算法结构的情况下,重新定义算法中的某些步骤。算法中的钩子(hook):钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,是子类能够针对算法的不同点进行挂钩。要不要挂钩,由子类自....
分类:
编程语言 时间:
2015-05-19 12:42:16
阅读次数:
133
题目传送门 1 /* 2 线段树-成段更新:第一题!只要更新区间,输出总长度就行了 3 虽然是超级裸题,但是用自己的风格写出来,还是很开心的:) 4 */ 5 #include 6 #include 7 #include 8 #include 9 #incl...
分类:
其他好文 时间:
2015-05-15 21:12:52
阅读次数:
112
r3下的inline Hook 在r0下的实现。
过ssdt保护检测。...
分类:
其他好文 时间:
2015-05-14 23:58:08
阅读次数:
352
题目传送:Just a Hook
思路:线段树,成段替换, 区间求和。成段更新时,注意延迟标记的作用,它就是用来暂停往下更新来达到节省时间的,然后每次更新每个节点的子节点之前都要判断是否需要往下更新。
AC代码:
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-05-14 22:02:43
阅读次数:
115
使用cydia框架编写cydia hook插件的时候由于initialize方法是无参的静态方法,所以不能获取上下文因此很多事情直接在initialize方法里就干不了,比如toast,发送广播等。由于hook是改变其他的类的API的执行结果。所以可以使用HOOK的那个类来获取context从而达到...
分类:
移动开发 时间:
2015-05-14 16:16:12
阅读次数:
137
我们可以把wp_head()以及wp_footer()看成是"钩子",我们可以用别的hook function来钩住它。首先wp_head只有一行代码,那就是do_action('wp_head'),而wp_footer也只有do_action('wp_footer')而已,因此我们可以使用do_action来表现的更加简洁一些。
当我们执行到输出header.php时,就会执行到wp_...
分类:
其他好文 时间:
2015-05-12 11:25:07
阅读次数:
140