驱动开发
Icoding_F2014
相信代码可以变化世界
展开
-
WinDivert+VS2015——安装、学习、示例
背景导师布置一个主动测量的小任务:在windows是实现主动修改某特定进程发出的IP数据包的IPID字段。这个任务,说简单不简单,说复杂不复杂。主要是解决两个问题:如何确定特定进程的数据包?简单起见能确定到传输层就行。如何修改特定的数据包?关键在于如何拦截ip层的数据包,并修改它。因为修改是对流的“主动”行为,winpcap类似的东西是做不来的。而且因为需要修改的是IP层的东西...原创 2019-02-22 17:12:04 · 7768 阅读 · 16 评论 -
跨平台编译——编译不同cpu架构下的so文件
有时候,我们可能需要编译能够运行在不同cpu主机上的so文件,例如开发了某些功能函数放在so文件,然后把so放到andriod 设备上运行。以下是编译方法:下载Andriod NDK工具包wget https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zipsudo apt-get install u...原创 2019-03-24 12:07:58 · 3371 阅读 · 1 评论 -
Linux Secuity Module 编程——编译
https://www.cnblogs.com/0xJDchen/p/6040446.html 学习LSM(Linux security module)之二:编写并运行一个简单的demo原创 2019-03-17 15:13:29 · 234 阅读 · 0 评论 -
Linux 内核模块编程——hellomd
本博客介绍如何为内核添加模块编写内核程序:新建一个hellomd.c 文件,内容如下:#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>static int hello_init(void){printk(KERN_ALERT "hello,原创 2019-03-16 14:48:11 · 370 阅读 · 0 评论 -
VS驱动开发错误解决
1. NET_BUFFER_LIST未定义方法:在内核的入口处,所有include 之前添加如下代码:#define NDIS620例如在DriverEntry 函数定义的文件最开始添加。#define NDIS620#include <ntddk.h>#include <fwpsk.h>#include <fwpmk.h>#include &...原创 2019-03-07 23:54:04 · 941 阅读 · 0 评论 -
Windows下64位驱动调试方法
尴尬的境地 囧很多时候,我们写的驱动是64位的,而这种64位驱动是不可以在代码中加入_asm int 3 中断来实现在合适的地方进入中断。因为vs此时会报:error C4235: 使用了非标准扩展: 不支持在此结构上使用“_asm”关键字 。而目标平台又要求一定是64位的,因此这就很尴尬了。好在,使用WinDBG可以解决这个问题。核心原理是WinDbg向gdb一样支持 按函数名下断点。因此...原创 2019-03-10 19:04:58 · 5121 阅读 · 1 评论 -
驱动开发——解决驱动黑屏问题
今天 驱动一run的时候 虚拟机就蓝屏了,同时输出:system service exception 0x3B的错误码。很有可能就是驱动写的有问题,导致某些地方GG了。虚拟机 OS: Windows 7,x64驱动类型:WFP 网络过滤驱动系统在每一次蓝屏都会生成dump文件,我们可以通过看dump文件查看是驱动的那些地方可能出错。首先,要用WinDBG处理蓝屏问题,要确保系统有生成内存转...原创 2019-03-09 10:56:35 · 2002 阅读 · 0 评论 -
WFP(三)——编译、部署驱动文件*.sys——微软msnmntr项目
通过WFP,我们可以编译得到sys驱动文件。此时需要我们把sys驱动文件部署到目标主机上,本文介绍部署的方式方法。术语host computer: 宿主主机,开发、编译驱动的主机target/test computer:目标主机,安装驱动产品的主机deploying the driver:部署过程,将宿主主机编译得到的驱动安装到目标主机的过程。步骤在目标主机,以管理员权限打开cmd,...原创 2019-02-21 09:21:28 · 3822 阅读 · 1 评论 -
WFP(二)——环境搭建 vs2017+WDK
本文将搭建vs2017 + WDK的驱动开发环境以开发 WFP 应用。实测,此方法在windows 10有效。步骤1. 确定windows 10 的版本号打开windows 10 的系统属性,查看版本号。2. msdn官网下载vs2017ed2k://|file|mu_visual_studio_community_2017_version_15.3_x86_x64_11100062...原创 2019-02-20 08:08:45 · 3407 阅读 · 0 评论 -
Detour 4.0 的编译
下载源码 https://github.com/Microsoft/Detours/releases ,并解压至合适的目录。例如 C:\detours\编译x86 ,32位的编译打开VS 32位的命令行工具。这个可以是在开始——应用程序——vs2017找到。输入:cd C:\Detours\Detours-4.0.1nmake -f makefilex64,64位的编译...原创 2019-02-23 18:37:20 · 1458 阅读 · 0 评论 -
基于Linux Security Module的基于角色的权限管理模块
RBOS为linux内核添加简易的基于角色的访问控制功能,系统基于LSM(Linux Security Module)模块;为了能够支持insmod和rmmod ,我们对内核做了一定的修改,将security.c里面的security_hook_heads结构 EXPORT_SYMBOLS了。系统要求本驱动在ubuntu 14.04 amd64 可以很好的运行;功能定义好4类角色以及...原创 2019-03-31 21:24:08 · 1720 阅读 · 1 评论