首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

驱动开发:内核通过PEB得到进程参数

PEB结构(Process Envirorment Block Structure)其中文名是进程环境块信息,进程环境块内部包含了进程运行的详细参数信息,每一个进程在运行后都会存在一个特有的PEB结构,...通过附加进程并遍历这段结构即可得到非常多的有用信息。...在应用层下,如果想要得到PEB的基地址只需要取fs:[0x30]即可,TEB线程环境块则是fs:[0x18],如果在内核层想要得到应用层进程的PEB信息我们需要调用特定的内核函数来获取,如下案例将教大家如何在内核层取到应用层进程的...pPeb64 = NULL;__try{// HANDLE)4656 进程PIDstatus = PsLookupProcessByProcessId((HANDLE)4656, &eproc);// 得到...pPeb32 = NULL;__try{// HANDLE)4656 进程PIDstatus = PsLookupProcessByProcessId((HANDLE)6164, &eproc);// 得到

60520
您找到你想要的搜索结果了吗?
是的
没有找到

完善测试匹配符号得到特征码

, 0x100, fp); ​ ​ fclose(fp); delete[]CodeBuff; return TRUE; } 完善3: 封装一个偏移值,因为如果找到了特征码但是得到的是特征码的基址...,我们还要知道怎么从这个基址偏移得到我们想要的内容,所以这里就在字符串里面添加一些特征码: 比如这里: image.png 要往下偏移,也就是+地址,+8个byte才得到我们想要的地址,那么我们就可以把字符串写成这样...{ vc.push_back(temp); } ​ } 完善4: 一个文件里面肯定有很多内容,需要把整个文件的字符串提出来,然后分割,然后把特征码拿去匹配,匹配到之后通过偏移得到具体的基址的位置...这个功能我就不实现了,后面要用可以自己DIY一下 最终代码: 最后我加了一个文件来保存得到的基址。 总结 通过匹配特征码,这里机器码特征码硬编码不区分。...然后通过匹配到的特征码(因为特征码必须来多一点,不然很容易有相同的),特征码里面有一些值是会变的就采用模糊匹配来实现,然后得到特征码匹配上了的首地址,再通过字符串里面的首地址偏移,得到了要的数据的起始地址

64830
领券