cm007
驱动牛犊
驱动牛犊
  • 注册日期2007-10-31
  • 最后登录2009-11-04
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望38点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
阅读:1909回复:9

文件过滤驱动内核中如何访问某个进程(.exe)的执行代码

楼主#
更多 发布于:2008-09-23 11:58
如题。首先可以在驱动获得进程的EThread 因此可以获得 PID, EPROCESS等相关结构,但如何定为到这个进程(.exe)的第一条指令代码呢?我想可以通过查看PE文件结构可以定为到这个.exe的entrypoint ,从而获得指令的开始,貌似比较麻烦,想请教大虾这个思路对不对?或则可以通过EPROCESS直接定为到相关进程的执行代码么?
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2008-09-25 07:11
好象你说的方法是比较直接的,分析pe文件后拿到入口点.
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2008-09-25 08:35
很多时候你拿到的并不是程序真正的入口,而是系统的STUB......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地板#
发布于:2008-09-25 09:35
wowo公鸡说得即是,比如,那个this progam xx dos mode.
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2008-09-25 10:04
分析PE文件是最快的。
先使用ZwQuerySystemInfo枚举系统中加载的所有模块的基地址,
然后使用直接在内存中分析PE结构就可以了。
如果是做HOOK,可能会遇到导入表放置在INIT段中的情况,
这时候如果是做试验,可以使用PEEXPLORER直接修改段属性,阻止这个段丢弃。
如果是商业化代码,建议分析硬盘上的PE IMAGE,然后将虚拟地址转换为物理内存地址就可以了。
不过VISTA好像比较讨厌,VISTA的ASLR好像会影响虚拟地址转换为物理内存地址的算法。
《Advances in Memory Management for Windows》
一切都是时间问题!
cm007
驱动牛犊
驱动牛犊
  • 注册日期2007-10-31
  • 最后登录2009-11-04
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望38点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-09-26 09:59
to znsoft, wowocock,dreamsity:
谢谢你们的回复。貌似也只能这么做了。我是要做个特殊进程过滤的功能,想根据进程特征而不只是文件名来过滤进程,所以想到用文件可执行部分的二进制代码作为特征来验证。
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-09-26 10:09
感谢,我也有同问,不过好像对于加了壳的进程文件那就没多大希望了
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2008-09-26 10:25
呵呵。这个技术我们称呼为“进程指纹”!
一切都是时间问题!
cm007
驱动牛犊
驱动牛犊
  • 注册日期2007-10-31
  • 最后登录2009-11-04
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望38点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-09-26 23:24
引用第6楼eleqi于2008-09-26 10:09发表的  :
感谢,我也有同问,不过好像对于加了壳的进程文件那就没多大希望了



我觉得这个功能就是来加固正常进程的吧,以使正常进程能访问加密文件。而那些加壳的伪装进程(即便加壳)肯定也会因为2进制代码不同而通不过验证啊,不知道你是啥意思
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-09-27 10:08
不好意思,学识浅薄见笑了。个人认为加了壳可能导致很难直接分析PE IMGAGE了,我见过HASP HL狗的一个荷兰全景影像处理软件,完全就是乱码一堆,当然这只是极个别的情况可以在策略中做其它处理等多种方式来处理这种问题
游客

返回顶部