【转帖】JIURL键盘驱动

2009-8-5 Nie.Meining Coding

0 概述

    我们将讨论 ps/2 键盘的驱动。主要讨论的内容有,ps/2 键盘的硬件,使用键盘驱动的应用层,键盘驱动的初始化,键盘驱动如何完成自己的工作,以及一些涉及到的相关内容。需要注意的是,以后我们提到的键盘,如果没有特殊说明,都是指 ps/2 键盘。

1 ps/2 键盘的硬件

    要以写一个硬件的驱动为目的的话,需要对这个硬件有一定的了解,但并不需要太深入,只要对于写驱动足够就可以了。关于 ps/2 键盘的硬件知识,我们也是对讨论键盘驱动足够就可以了,一些对于驱动没有帮助的硬件实现的细节,我们不讨论。

阅读全文>>

评论(0) 浏览(32887)

GameKiller之妈妈叫你回家吃饭

2009-8-4 Nie.Meining Coding

多谢Sudami大牛的指点,改了一些地方,内存清0也可以不蓝屏了,哈哈。
上代码:

#include <ntifs.h>

//GameKiller 2.0 [纯娱乐]

//内存使用太多就视为游戏摧毁掉!确实有点暴力……

//想像一下,WOW的时候突然妈妈叫你回家吃饭,嘿嘿

//By Fypher

//http://hi.baidu.com/nmn714

阅读全文>>

评论(0) 浏览(2470)

获取进程ID和线程ID——直接、暴力

2009-8-3 Nie.Meining Debug

发现一种在Ring3层获取PID和TID的方法,很有意思,转过来:
PID:
    mov pid,fs:[0x20];
TID:
    mov tid,fs:[0x24];

利用了在用户态下,fs始终与TEB对齐这个事实。
那GetCurrentProcessId是不是也是利用读取TEB里的CLIENT_ID来实现的呢?
看看逆向代码吧:

阅读全文>>

评论(0) 浏览(23988)

关于页面保护

2009-8-1 Nie.Meining Coding

解决了一个一直困扰我的问题……原来无论CR0如何,Ring3都是小弟中的小弟……
thanks to FlowerCode from 0ginr.

以下摘自Inter手册:
CR0.WP allows pages to be protected from supervisor-mode writes. If CR0.WP= 0, software operating with CPL< 3 (supervisor mode) can write to linear addresses with
read-only access rights; if CR0.WP= 1, it cannot. (Software operating with CPL= 3
— user mode — cannot write to linear addresses with read-only access rights,
regardless of the value of CR0.WP.) Section 4.6 explains how access rights are deter-
mined.

阅读全文>>

评论(0) 浏览(2579)

Powered by emlog