阅读:1909回复:9
文件过滤驱动内核中如何访问某个进程(.exe)的执行代码
如题。首先可以在驱动获得进程的EThread 因此可以获得 PID, EPROCESS等相关结构,但如何定为到这个进程(.exe)的第一条指令代码呢?我想可以通过查看PE文件结构可以定为到这个.exe的entrypoint ,从而获得指令的开始,貌似比较麻烦,想请教大虾这个思路对不对?或则可以通过EPROCESS直接定为到相关进程的执行代码么?
|
|
沙发#
发布于:2008-09-25 07:11
好象你说的方法是比较直接的,分析pe文件后拿到入口点.
|
|
|
板凳#
发布于:2008-09-25 08:35
很多时候你拿到的并不是程序真正的入口,而是系统的STUB......
|
|
|
地板#
发布于:2008-09-25 09:35
wowo公鸡说得即是,比如,那个this progam xx dos mode.
|
|
|
地下室#
发布于:2008-09-25 10:04
分析PE文件是最快的。
先使用ZwQuerySystemInfo枚举系统中加载的所有模块的基地址, 然后使用直接在内存中分析PE结构就可以了。 如果是做HOOK,可能会遇到导入表放置在INIT段中的情况, 这时候如果是做试验,可以使用PEEXPLORER直接修改段属性,阻止这个段丢弃。 如果是商业化代码,建议分析硬盘上的PE IMAGE,然后将虚拟地址转换为物理内存地址就可以了。 不过VISTA好像比较讨厌,VISTA的ASLR好像会影响虚拟地址转换为物理内存地址的算法。 《Advances in Memory Management for Windows》 |
|
|
5楼#
发布于:2008-09-26 09:59
to znsoft, wowocock,dreamsity:
谢谢你们的回复。貌似也只能这么做了。我是要做个特殊进程过滤的功能,想根据进程特征而不只是文件名来过滤进程,所以想到用文件可执行部分的二进制代码作为特征来验证。 |
|
6楼#
发布于:2008-09-26 10:09
感谢,我也有同问,不过好像对于加了壳的进程文件那就没多大希望了
|
|
7楼#
发布于:2008-09-26 10:25
呵呵。这个技术我们称呼为“进程指纹”!
|
|
|
8楼#
发布于:2008-09-26 23:24
引用第6楼eleqi于2008-09-26 10:09发表的 : 我觉得这个功能就是来加固正常进程的吧,以使正常进程能访问加密文件。而那些加壳的伪装进程(即便加壳)肯定也会因为2进制代码不同而通不过验证啊,不知道你是啥意思 |
|
9楼#
发布于:2008-09-27 10:08
不好意思,学识浅薄见笑了。个人认为加了壳可能导致很难直接分析PE IMGAGE了,我见过HASP HL狗的一个荷兰全景影像处理软件,完全就是乱码一堆,当然这只是极个别的情况可以在策略中做其它处理等多种方式来处理这种问题
|
|