喜欢美食, 旅行..
发布时间:2012-12-16 23:17:05
这里只把我的视线作为一个例子来说明一下, 读者用自己的方法去实现也没问题.关于如何把自己的DLL导入到指定的进程,请参考我的另一篇博文[windows平台] 给进程注入代码 -- 导入DLL到指定进程的地址空间1. DLL 入口函数的相关逻辑在DLL加载的时候HOOK所有我们希望追踪的系统API.在DLL卸载的时候取消所有的HOOK.#include "hooksTable.h"BOOL APIENTRY DllMain( HMODULE hModule, &nbs......【阅读全文】
发布时间:2012-12-16 23:08:51
1. 基本原理使用自己写的代码, 在指定的进程里面启动一个远程线程, 从而把相关的代码注入到这个指定进程里面去, 实施操作. 通常这样做是为了拦截一些系统的 API, 或者是操控(挟持)这个进程.2. 具体实现拿到进程的句柄, 然后用 LoadLibrary 系统函数开启一个远程的线程. 从而把我们的DLL导入到这个指定的进程.(读者可以使用自己的办法, 不过套路应该都差不多)3. 样例代码#include "windows.h"int main(){ char * lpExeFile = "D:\\src-project\\testProcess......【阅读全文】
发布时间:2012-12-16 22:55:17
这篇博文只是为了给自己留个笔记而已.1.boost::tokenizer 的用法.当一个字符串使用某个分隔符的时候, 想快速的拿到分割后的字串, 可以使用.#include <boost/tokenizer.hpp> int main(){ std::string teststr = "14,24,rt| &44,56"; boost::char_separator<char> separator(","); boost::t......【阅读全文】
发布时间:2012-12-09 19:02:14
1. 相关API介绍key_t ftok( char * fname, int id ) // fname就时你指定的文件名,id是子序号。系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。 在一般的UNIX实现中,是将文件的索引节点号取出,前面加上子序号得到key_t的返回值。查询文件索引节点号的方法是: ls -i 当删除重建文件后,索引节点号由操作系统根据当时文件系统的使用情况分配,因此与原来不同,所以得到的索引节点号也不同。如果要确保key_t值不变,要目确保ftok的文件不被删除,要么不用ftok,指定一个......【阅读全文】
发布时间:2012-12-08 17:34:33
linux下的管道机制是需要两个进程有亲缘关系才可以的.但是命名管道(FIFO)却没有这个限制. 不过命名管道却有着下面的规则:< 网上有个哥们儿总结得不错, 就先借用他的原话了. >a. 不使用O_NONBLOCK标志时,只读open要阻塞到某个其它进程为写而打开它为止b. 不使用O_NONBLOCK标志时,只写open要阻塞到某个其它进程为读而打开它为止c. 如果在open的时候指定O_NONBLOCK标志,当只读open时,没有进程为写而打开FIFO的话,会返回-1,只写open时,没有进程为读而打开FIFO的话也会返回-1表示失败。以上的情况使FIFO的使用带来了......【阅读全文】