- 博客(10)
- 收藏
- 关注
转载 [转]对A盾原理的小小总结
A盾的原理是在驱动加载时重载os内核,获取原始ssdt表的地址。应用层点击查询的代码在文件A-ProtectView.cpp中,每种点击操作调用相应的query查询函数,在query函数里 ReadFile。读操作的Handle是A盾自定义的操作码,类似DeviceIoControl的控制码,比如handle 为LIST_SSDT,LIST_INLINEHOOK等。驱动加载时hoo
2014-04-28 18:16:15 816
转载 重载内核全程分析笔记
重载内核内容:1、 将内核文件加载到内存2、 进行基址重定位3、 重定位ssdt结构4、 Hook KiFastCallEntry,让RING3进程调用走新内核下面一步一步的进行分析1、 加载内核文件我们要加载哪一个文件呢?答案是:ntkrnlpa.exe,我测试的系统的XP sp3,该文件所在目录为C:\WINDOWS\system32\ntkrnlpa.e
2014-04-28 18:15:28 681
转载 理解和使用NT驱动程序的执行上下文
理解Windows NT驱动程序最重要的概念之一就是驱动程序运行时所处的“执行上下文”。理解并小心地应用这个概念可以帮助你构建更快、更高效的驱动程序。 NT标准内核模式驱动程序编程中的一个重要观念是某个特定的驱动程序函数执行时所处的“上下文”。传统上文件系统开发者最关注这个问题,但所有类型的NT内核模式驱动程序的编写者都能从对执行上下文的深刻理解中获益。小心谨慎地使用执行上下文的概
2014-04-13 23:25:08 1086
转载 深入理解CRITICAL_SECTION
临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的有用信息。它还包含一个便利的实用工具程序,可以显示所有临界区及其当前状态。在我们许多年的编程实践中,对于 Win32 临界
2014-04-13 14:07:11 837
转载 Windows WRK简介
引子WRK 是微软于 2006 年针对教育和学术界开放的 Windows 内核的部分源码,WRK(Windows Research Kernel)也就是 Windows 研究内核,在 WRK 中不仅仅只提供了 Windows 内核模块的部分代码,其还提供了编译工具,也就是通过这个编译工具,你可以将你的 WRK 编译成一个 EXE 文件,也就是内核可执行模块,
2014-04-12 22:30:26 948
转载 在驱动中使用链表
在驱动程序的开发中经常需要用到链表,常见的链表有单向链表和双向链表,我们只介绍双向链表的使用方法,DDK为我们提供了标准的双向链表 LIST_ENTRY,但这个链表里面没有数据,不能直接使用,我们需要自己定义一个结构体类型,然后将LIST_ENTRY作为结构体的一个子域,如下 所示:typedef struct _MYDATASTRUCT{ ULONG number;
2014-04-09 13:53:27 1907
转载 Android 项目中文件夹的作用
揭开android APK自动编译的神秘面纱 是不是有同学和我一样,每次听到开发说持续集成、自动编译…是不是都感觉非常高大上,可望而不可及?最近有机会看了下这方面相关的内容,感觉确实高大上,但非常实用,用法也比较简单。开发过Android程序的同学知道,当用Eclipse创建一个工程之后,点击Run as…,Eclipse就帮你把代码编译成可在Android执行的apk,至于点
2014-04-09 09:52:54 838
转载 NDK: 程序的调试方法
调试的方法有两种,一种是打log,使用adb logcat命令来查看log信息,另一种就是使用调试器来下断点调试程序先看打log:在c代码中打印日志:#include #define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)#define
2014-04-04 14:51:14 641
转载 NDK: 处理用户交互事件
在 android_main(struct android_app* state)函数里面设置输入事件处理函数:state->onInputEvent = &handleInput;//设置输入事件的处理函数,如触摸响应static int32_t handleInput(struct android_app* app, AInputEvent* event){//获取消息
2014-04-04 14:46:54 1045
转载 NDK: NativeActivity原理
在AndroidManifest.xml文件里面指定入口activity为nativeactivity,这样应用程序一启动,java虚拟机这边就开一个主线程,主线程创建一个活动,就是nativeactivity,这个nativeactivity在创建的过程中就会去应用程序的.so动态链接库中寻找一个函数:__ANativeActivity_onCreate(ANativ
2014-04-04 14:44:26 1799
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人