关于Hook一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序能够在上面设置子程以监视指定窗体的某种消息,并且所监视的窗体能够是其它进程所创建的。当消息到达后,在目标窗体处理函数之前处理它。钩子机制同意应用程序截获处理window消息或特定事件。 钩子实际上是一个处....
分类:
其他好文 时间:
2014-06-19 09:05:16
阅读次数:
213
很经典的题目,而且是标准的线段树增加lazy标志的入门题目。
做了好久线段树,果然是practice makes perfect, 这次很畅快,打完一次性AC了。
标志的线段树函数。
主要是:
更新的时候只更新到需要的节点,然后最后的时候一次性把所以节点都更新完毕。
这也是线段树常用的技术。
#include
const int SIZE = 100005;
struct Node...
分类:
其他好文 时间:
2014-06-16 20:38:39
阅读次数:
182
跨平台是什么意思呢?先了解一下平台的概念以及平台的差异。我们知道一个VC编译出来的*.exe是不能在Linux运行的,不能运行的原因可以概括为以下几个方面:
1. 文件的结构与格式
可执行程序是按定义好的格式来组织的, Microsoft 他 GNU对程序文件的定义是不一样的,如GNU使用 ELF格式定义。也就是说,当操作系统(Windows/Linux)试图把一个程序文件加载到内存里准备运行...
分类:
编程语言 时间:
2014-06-15 17:17:33
阅读次数:
419
processhacker-code-5632\1.x\trunk\NProcessHacker\hook.htypedef
struct _PH_HOOK{ PVOID Function; PVOID Target; BOOLEAN Hooked; CHAR Bytes[5...
分类:
其他好文 时间:
2014-06-12 18:11:47
阅读次数:
216
问题重现:当我们运行某一个用C系列语言编译而成的程序的时候,可能会接收到这个错误——这个错误的意思是,没有找到GLIBC版本是3.4.14的相应C++标准库。
问题起源:首先,我们需要清楚,一个程序从被加载之后,需要进行动态链接,而动态链接,需要对应版本的glibc库。但是我们的可执行文件需要哪个版本的glibc库呢?
这个版本问题,已经存在于我们的可执行文件ELF格式中。我们可以用命...
分类:
编程语言 时间:
2014-06-11 06:52:26
阅读次数:
354
ldd命令用于判断某个可执行的 binary 档案含有什么动态函式库。 参数说明: --version
打印ldd的版本号 -v --verbose 打印所有信息,例如包括符号的版本信息 -d --data-relocs
执行符号重部署,并报告缺少的目标对象(只对ELF格式适用) -r -...
分类:
其他好文 时间:
2014-06-10 19:54:17
阅读次数:
258
参考文献:《ELF V1.2》《程序员的自我修养---链接、装载与库》第6章
可执行文件的装载与进程 第7章 动态链接《Linux GOT与PLT》开发平台:[root@tanghuimin dynamic_link]# uname -a
Linux tanghuimin 2.6.32-358.el...
分类:
其他好文 时间:
2014-06-08 21:36:40
阅读次数:
330
参考文献:《ELF V1.2》《程序员的自我修养---链接、装载与库》第4章
静态链接开发平台:[thm@tanghuimin static_link]$ uname -a Linux tanghuimin
2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:...
分类:
其他好文 时间:
2014-06-08 21:35:56
阅读次数:
450
1.ELF文件格式概貌readelf -h
查看elf文件头部信息可以看到Type值有三种:REL,EXEC,DYN。REL文件是只被编译没有被链接过的文件,其格式属于左边一种,elf
header+section1,2,3...+section header table,每个section对应.....
分类:
其他好文 时间:
2014-06-08 20:34:25
阅读次数:
263