发布时间:2016-11-10 17:01:04
1. 基本原理使用自己写的代码, 在指定的进程里面启动一个远程线程, 从而把相关的代码注入到这个指定进程里面去, 实施操作. 通常这样做是为了拦截一些系统的 API, 或者是操控(挟持)这个进程.2. 具体实现拿到进程的句柄, 然后用 LoadLibrary 系统函数开启一个远程的线程. 从而把我们的DLL导入到这个指定的进程.(读者可以使用自己的办法, 不过套路应该都差不多)3. 样例代码#include "windows.h"int main(){ char * lpExeFile = "D:\\src-project\\testProcess......【阅读全文】
发布时间:2016-11-10 16:51:27
这里只把我的视线作为一个例子来说明一下, 读者用自己的方法去实现也没问题.关于如何把自己的DLL导入到指定的进程,请参考我的另一篇博文[windows平台] 给进程注入代码 -- 导入DLL到指定进程的地址空间1. DLL 入口函数的相关逻辑在DLL加载的时候HOOK所有我们希望追踪的系统API.在DLL卸载的时候取消所有的HOOK.#include "hooksTable.h"BOOL APIENTRY DllMain( HMODULE hModule, &nbs......【阅读全文】
发布时间:2016-11-10 16:43:36
这篇是网上一个哥们的总结, 个人觉得挺好, 原文地址:Windows内存管理的API函数数据所在的内存地址,内存最小存储单元是字节,在32位系统上使用32位数来表示内存地址.一共可以表示2^32次地址空间:32位可以使用4GB内存,那么地址空间就是0x00000000~0xFFFFFFFF物理内存:硬件系统中真实存在的存储空间称为物理内存.虚拟地址空间:windows内存管理知识:1.分段或分页内存管理2.物理地址和虚拟地址,虚拟地址空间.3.虚拟内存布局,内存分工,堆,栈.4.内存存取权限.5.标准C内存管理函数与windows内存管理API的关系. 内存保护属性和存取权限属性常量......【阅读全文】