tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
阅读:4995回复:11

这次不能算是原创了....源代码含

楼主#
更多 发布于:2008-10-16 14:02
checked xp sp2版的pci.sys的逆向

其实很早就弄好了
只是pci bridge的行为有些怪异
于是我就想准备个文档啥的
结果我都写的差不多了
才发现微软自己的网站上有这些文档
于是就把代码打个包放上来了

===================================================
微软的文档在这里
这里是关于pci bridge的
http://www.microsoft.com/whdc/system/bus/PCI/pcibridge-cardbus.mspx

这里是关于subtractive decode的
http://download.microsoft.com/download/5/b/5/5b5bec17-ea71-4653-9539-204a672f11cf/PCIbridge-subtr.doc
===================================================

pci的总线驱动整体上讲有主要实现4个功能
1.枚举总线上的设备..这个大家都知道了..
2.pci的电源管理,这也是pci规范里面的东西没什么特别的
3.pci总线上设备的resource仲裁....这个要占很大比例..而且资源仲裁可以说是windows的pnp架构里面一个最重要的组成部分.
   而这个本身又是一个np-complete的问题.可以看看windows在内核层来解决np-complete的有趣实现
4.pci还提供了若干个interface,

1.枚举设备都很容易.就是一个嵌套的循环去尝试读取config space.读取成功了就找到了一个新设备,然后就创建他
2.电源管理就更容易了..写写config space就成
3.资源仲裁看起来很复杂其实不难.基本都是固定的处理方式...
   各位手头有windows 2000源代码的同学可以看看ntos\arb目录.这里是aribter的实现
   然后是io\pnpres.c这个是pnp的资源分配的实现
   虽然现在windows使用的算法跟2000有很多不同了.不过原理基本是一样的
   基本上讲...这个np-complete的问题可以等同于一个背包问题..
4.若干个interface.其实每个都很简单

实际上直到2003.windows的pci总线驱动都并不完善
可以讲..windows的pci总线驱动严重依赖一个正确实现的bios
并且windows的pci总线驱动对hotplug的支持非常非常的有限

微软宣传说vista的pci总线驱动改善了若干若干问题
不过我没逆向vista的版本.具体就不清楚了...

所以...这个代码如果你想调试..请在2003/xp的环境下调试
不要到vista下面去调试...

另外...pci.sys是个boot driver.你需要一个checked版的ntldr才能使用kdfiles来替换目标系统里面的boot driver
windows自己的checked版ntldr只能over com口.请注意
如果你用windows自己的ntldr.那么你在windbg这里ctrl+break是不起作用的.你可以在选择操作系统的界面上按f10..这样会break into debugger

当然你可以选择使用我写的那个ntldr(打个广告,比windows自己的要好)

kdfiles这样写
map
\WINDOWS\system32\DRIVERS\pci.sys
d:\working\pci\bin\checked\pci.sys


注意第2行的路径...跟内核加载的驱动是不一样的
你不能使用 \Systemroot\system32\drivers\pci.sys 这样的路径

强烈要求使用kdfiles
不要去替换你的debuggee上的pci.sys...
不然系统起不来可别怪我没提醒你哟......
附件名称/大小 下载次数 最后更新
pci.rar (1066KB)  309 2008-10-16 14:02

最新喜欢:

mcs51amcs51a
lejianz
驱动中牛
驱动中牛
  • 注册日期2003-03-05
  • 最后登录2023-11-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望145点
  • 贡献值0点
  • 好评度116点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2008-10-16 20:45
tiamo大侠又有新作了,不能不看啊.谢谢精采奉献.
一起交流,共同提高!
pilixuanke
驱动中牛
驱动中牛
  • 注册日期2005-10-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1018分
  • 威望626点
  • 贡献值0点
  • 好评度512点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-10-17 13:14
顶 tiamo大侠,学习。。。
向底层开发进军!!!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地板#
发布于:2008-10-17 14:24
猛料阿,我怎么说你才好呢?兄弟,太猛了...
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地下室#
发布于:2008-10-17 14:24
今年的驱网年终原创大奖应该授给你
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2008-10-23 18:14
niu
琢磨悟真知
boywhp
驱动中牛
驱动中牛
  • 注册日期2007-08-09
  • 最后登录2015-04-24
  • 粉丝2
  • 关注0
  • 积分1105分
  • 威望515点
  • 贡献值0点
  • 好评度254点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2008-10-27 20:05
发誓要拜tiamo为师!!!!收下我吧
boywhp
驱动中牛
驱动中牛
  • 注册日期2007-08-09
  • 最后登录2015-04-24
  • 粉丝2
  • 关注0
  • 积分1105分
  • 威望515点
  • 贡献值0点
  • 好评度254点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2008-10-27 20:10
回 楼主(tiamo) 的帖子
我靠!!驱动网也太神奇了吧 ,连我住的广州市楼层都定位准了 真是6楼
z.b.Azy
驱动牛犊
驱动牛犊
  • 注册日期2006-03-11
  • 最后登录2013-04-29
  • 粉丝0
  • 关注0
  • 积分263分
  • 威望95点
  • 贡献值0点
  • 好评度91点
  • 原创分2分
  • 专家分0分
8楼#
发布于:2008-11-26 11:41
是啊,楼上真有才~
zyanswer@21cn.c
驱动牛犊
驱动牛犊
  • 注册日期2008-02-15
  • 最后登录2010-06-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望94点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-12-19 12:16
cxjnet
驱动牛犊
驱动牛犊
  • 注册日期2005-03-21
  • 最后登录2014-05-01
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望191点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2009-01-07 13:17
呵呵,tiao大侠的东西真的不错
mengfeng150
驱动牛犊
驱动牛犊
  • 注册日期2008-03-31
  • 最后登录2016-12-22
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望583点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2010-07-14 11:11
tiamo 太牛了,膜拜
游客

返回顶部