首页
论坛
课程
招聘
[原创]读写端口的方法总结1
2011-6-30 03:29 5946

[原创]读写端口的方法总结1

2011-6-30 03:29
5946
//以下都是我的个人理解 有什么不妥之处欢迎跟帖指正  
1什么是I/O端口? CPU使用什么指令与外设进行数据交换?  CPU与I/O设备通过硬件接口或控制器相连接,这些接口或控制器都有数量不等的端口,这些端口有统一的地址编码,CPU通过这些端口使用输入输出指令IN、OUT与外设进行数据交换。
2读写端口有什么意义  
    其实读写端口就是在读写硬件了 在这几个小例子中 我仅仅是向CMOS(注意与BIOS的区别 BIOS存放在ROM CMOS存放在RAM中 断电信息就会丢失 ) 写入垃圾数据达到清除密码的目的实际上端口是CPU与硬件交互的桥梁 举个具体的例子 比方说软件还原卡 分为两种吧 一种是磁盘过滤型的 比方说无盘系统常用的顺网   还有一种就是MBR型的 还原精灵
其实都可以用读写硬盘的端口来绕过这些还原卡的保护
大家都知道有一个软件叫MHDD  很神奇 没有BIOS依然可以对硬盘进行各种操作  BIOS提供了INT13H 以及扩展INT13H标准(只支持到128GB的硬盘如果没记错的话)现在用的应该是扩扩展的标准  很明显了 通过直接读写硬盘的端口来读取修改数据是可以绕过INT13h的限制的 采用端口读写硬盘这种技术的话足以让很多基于接管INT13H的还原卡下岗的了  
3读写端口的方法
   @1使用六个宏定义
READ_PORT_UCHAR READ_PORT_USHORT READ_PORT_ULONG WRITE_PORT_UCHAR WRITE_PORT_USHORT WRITE_PORT_ULONG
(其实VC中也有Inp、Outp 这样的宏 汇编代码都是用in out实现的)
@2VC中内嵌汇编代码  和@1中的原理是一样的
@3
BOOLEAN Ke386QueryIoAccessMap(ULONG MapNumber, PKIO_ACCESS_MAP IoAccessMap); BOOLEAN Ke386SetIoAccessMap(ULONG MapNumber, PKIO_ACCESS_MAP IoAccessMap); BOOLEAN Ke386IoSetAccessProcess(PKPROCESS Process, ULONG MapNumber);  
未文档化函数的使用操纵IOPM
@4NtSystemDebugControl    ntsetinformationproces 等windows系统内功能繁杂的函数
的使用 可以实现无驱读写端口   
@5如果要实现较为稳定和兼容性好点的读写端口可以用第三方库 非常好用
WinIo  目前可以支持到Win7 X64

先把我总结的@1@2的方法发上来 代码在XP SP3虚拟机上运行通过
证明读写端口成功的标志就是CMOS的密码被清空了  所以提前先在给虚拟机的CMOS设置上密码

另外 哪个兄弟有通过端口读写硬盘的代码 希望能给个连接或者发份到我的邮箱(KMSRussian@163.com) 先谢谢了

解压的时候将我的帖子.apk改名为 我的帖子.7z  否则无法解压

因为文件大小超了

[公告]请完善个人简历信息,好工作来找你!

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 627
活跃值: 活跃值 (28)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
KMSRussian 活跃值 8 2011-6-30 03:33
2
0
http://dl.dbank.com/c0dpznidp1   附件dbank的下载地址
雪    币: 627
活跃值: 活跃值 (28)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
KMSRussian 活跃值 8 2011-6-30 03:43
3
0
请先用驱动加载工具加载驱动 然后再在CMD中运行R3下的cui程序 就会看到CMOS密码被清除

源代码都是从张帆前辈windows驱动开发技术详解上面摘的
很多代码都是一个模具下来 可能是时间太匆忙了 没来得及删减 导致很多不必要的东西 我删减了一下
上面的驱动比方说内联汇编源代码里面有两处错误 我自己改了过来
全部R3 R0代码都在XP SP3下测试通过 后来有一次测试的时候卸载驱动的时候蓝屏 提示访问了禁止访问的内存
不知道为什么
发帖子真的很不容易啊 现在想想combojia大侠的rootkit专题 真的很不容易
感谢achillis zyq8709 灰灰版主和RootSule 在我初学驱动的时候给了我很大信心

很谢谢你们

因为曾经用SCM加载驱动多次出问题 自己做了一个SCM驱动加载的表
雪    币: 579
活跃值: 活跃值 (32)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
RootSuLe 活跃值 4 2011-6-30 10:36
4
0
凌晨发帖,真不容易啊!!支持!!!
这些东西我都不会,又学到东西了,我慢慢消化
谢谢
雪    币: 627
活跃值: 活跃值 (28)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
KMSRussian 活跃值 8 2011-6-30 10:58
5
0
谢谢楼上顶帖  我先顶楼上一下
雪    币: 184
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
霹雳狂风 活跃值 2011-7-3 14:35
6
0
友情提示, 嘿嘿
http://bbs.pediy.com/showthread.php?t=136465
游客
登录 | 注册 方可回帖
返回