作者:Tesla.Angela 自行切换CR3强制读写进程内存的方法,着实是非常爽。可惜,这个爽有个限度:只支持XP至WIN7。从WIN8开始,这个很爽的方法经常会无效,原因未知。不过,也有标准的方法“强制”读写进程内存:使 ...
2014-6-2 19:15 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 这个东西可以在极端的反调试环境下使用,运行后马上会毁掉“磁盘0”的所有数据。 原理是打开物理磁盘,然后调用IOCTL_DISK_DELETE_DRIVE_LAYOUT删除分区表。 某些杀毒软件可能会禁止打开物理磁 ...
2014-11-26 23:25 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 线程的CONTEXT记录了各种寄存器的数值,包括很多人关心的DRX寄存器的数值。 而获取/设置CONTEXT一般来说是需要进程句柄的,于是游戏保护禁止打开进程就让很多调试器抓狂了。 其实在内核里获取/ ...
2014-10-24 20:30 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela NTFS文件流是NTFS文件系统的一个奇葩特性,可以理解成它是一个普通文件的不可见“子文件”。 这种“子文件”真实存在于硬盘(准确说是NTFS分区)上,但是系统自带的工具却无法枚举到。 创建一个 ...
2014-12-21 13:18 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 在教程里只有干掉MiniFilter的代码,但是文件系统的过滤器,除了MiniFilter,还有古老的“文件系统过滤驱动”。但实际上,MiniFilter是基于传统过滤驱动的,只要把文件系统上attach的所有设备清 ...
2014-6-2 19:15 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 关机回调和蓝屏回调就是在关机前和蓝屏前执行的回调,可能被某些病毒木马用于关机前或蓝屏前回写。所以ARK工具也提供枚举和删除这些回调的功能。关机回调只有1种(ShutdownNotification),不过 ...
2014-12-21 13:19 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela MSR HOOK是一种比较罕见的HOOK了,网上甚至少有提及。这里我必须普及一下关于MSR的知识。MSR直译叫做“模块指定寄存器”,这是一组特殊的寄存器,它不能通过MOV指令进行读写,而必须用专门的指 ...
2014-8-29 01:24 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela WINDOWS下进行网络通信无非就是使用WS2_32.DLL里的那一套函数,只不过在用户态下进行网络通信很容易被各种防火墙和HIPS拦截。而且各种ARK工具能轻易看出进程打开的端口,如果一个进程总是通过一 ...
2014-9-24 23:51 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela WIN32下常见的INLINE HOOK,本质上分为2中,一种是强制跳转,一种是CALL替换。这两种方法的缺点就是很容易被ARK发现代理函数在哪里,隐蔽性太差。不知有人观察过没有,IDT虽然有256个“入口函数 ...
2014-10-24 20:28 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 今天介绍的东西,与其说用来保护注册表,不如说是介绍一种比较罕见的操作方式:DKOH(直接内核对象挂钩)。WINDOWS系统在遍历注册表的时候,会调用“注册表对象”(类似于进程对象EPROCESS的结 ...
2014-9-24 23:51 - Tesla.Angela - WINDOWS核心编程
十几年前,我曾经发了一个校验文件数字签名的代码。然而现在越来越多的文件自身不再包含数字签名,而是把数字签名放在了目录(catalog)里。在这种情况下,原来的签名校验函数会直接返回失败,这是不合理的。经过一 ...
2024-3-22 09:20 - Tesla.Angela - WINDOWS核心编程
核心是从网上Copy & Paste来的,但是删除了大量无效内容,使得代码很精简,只有15行。**** 本内容被作者隐藏 ****2024年补充说明:**** 本内容被作者隐藏 **** ...
2011-7-11 14:20 - Tesla.Angela - WINDOWS核心编程
TA的一个开源驱动级文件管理器里([开源]驱动级文件管理器)删除文件就用了发送IRP的形式删除文件,但却使用了IoCreateFile打开文件取得句柄再用ObReferenceObjectByHandle取得FileObject指针。这种方式不够强制,我 ...
2016-10-28 10:39 - tangptr@126.com - WINDOWS核心编程
作者:Tesla.Angela 内核IAT HOOK的差别,跟RING3的IAT HOOK差别有点大。在教程的RING3 IAT HOOK代码里,我修改的是『导入表』。但是在内核IAT HOOK里,我修改的是『导入函数地址表』。虽然只差了两个字,但却是完 ...
2014-8-26 22:48 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 内核EAT HOOK本质上跟RING3的EAT HOOK差不多,都是找到导出表记录『偏移地址』的位置,然后修改数值,使调用导出表函数时直接跳到代理函数地址。偏移地址=代理函数地址-函数所属模块基址。在WIN ...
2014-8-25 20:00 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela IRP HOOK比较好理解,就是替换驱动的分发函数地址,来实现特定功能。 网上关于IRP HOOK的例子很多,不过都只能用于32位,而且以HOOK键盘、鼠标、NTFS的居多。 下面我给出一个例子能通用于32、64 ...
2014-7-11 16:54 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 由于WDM驱动的特殊性,不能直接使用标准方法进行加载。而是需要弄一个INF文件,把驱动相关信息写进INF文件里,再进行加载。典型的WDM驱动之一就是MiniFilter的驱动。在教程的相关章节,我使用系 ...
2014-7-5 23:22 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 顾名思义,OBJECT HOOK就是对OBJECT的Procedure进行的HOOK。 这是一种比较冷门的HOOK,知道的人不多。但在特定用途下比较有用(貌似现在是游戏保护用的比较多)。 在WIN64封锁各种内核HOOK的情 ...
2014-7-10 09:55 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 虽然说WIN64系统不让搞内核INLINE HOOK了,不过这些技术在“内核越狱”后还是能大显神通的。 但是公开教程的14字节INLINE HOOK太长了,严重限制了它的应用。 比如要实现内核级变速齿轮,要HOOK ...
2014-7-3 11:48 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 在教程里,只说明了如何隐藏进程,但没有说明如何恢复隐藏的进程。在某些情况下,不恢复隐藏的进程,在进程异常退出时,会引发BSOD。其实恢复隐藏的进程,只要使用AppendTailList把隐藏的进程插 ...
2014-6-2 19:14 - Tesla.Angela - WINDOWS核心编程
我在教程里,公布了一种修改函数14个字节的INLINE HOOK方法。不得不说,这是一种很糟糕的HOOK法,因为需要太多空间了。这样子甚至难以实现安全HOOK,因为InterlockExchange系列函数顶多能一次性修改8个字节。 其实 ...
2014-8-15 22:55 - Tesla.Angela - WINDOWS核心编程
直接上图+上码不解释。 例子里实现了拦截WIN64AST.SYS的加载,代码稍加修改还可以实现拦截DLL加载。 附件:**** 本内容被作者隐藏 ****
2013-4-4 20:53 - Tesla.Angela - WINDOWS核心编程
可以对付360的任何进程,包括zhudongfangyu.exe。 核心代码: **** 本内容被作者隐藏 ****
2011-6-17 12:41 - Tesla.Angela - WINDOWS核心编程
方法是使用回调,但不是使用PsSetCreateProcessNotifyRoutine。。。 [hr] 图为监控进程的创建与退出,并阻止了calc.exe的创建。 [hr] 附件: **** 本内容被作者隐藏 **** ...
2012-5-17 13:09 - Tesla.Angela - WINDOWS核心编程
很多年前我在《黑客防线》上发过一篇文章,叫做“WIN64上实现RING3级别的HIPS”,其实HIPS不可能存在RING3级别的,因为RING3的INLINE HOOK是毫无用处的。 先请大家先看看NTDLL32对NATIVE API的实现(NTDLL64类似) ...
2014-8-1 01:43 - Tesla.Angela - WINDOWS核心编程
在我的WIN64教程里,提到了使用LoadImageNotify来拦截驱动加载。但用这个回调拦截DLL加载并不方便,主要原因有两个:1.这个时候写内存有可能导致死锁;2.DLL被拦截一次之后,重启前再也无法加载。所以,用LoadImageN ...
2016-12-21 22:29 - Tesla.Angela - WINDOWS核心编程
目前网上流传的两种驱动强力读写内存方法,都能被大部分游戏代理商防范了。其实强力读写内存的方法太多,今天决定分享另外两种。这两种方法其实网上也早就有了,只不过知道的人不多而已。 一、“借用”目标线程来实 ...
2017-8-20 17:50 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 系统自带的MmIsAddressValid并不安全,有时候返回TRUE,但访问内存时还是蓝屏了。 具体的原因,是因为此函数并没有判断系统有无开启PAE,有无分页等情况(道听途说,有待确认)。 还好,我们有 ...
2014-11-26 23:23 - Tesla.Angela - WINDOWS核心编程
获得任意模块任意导出函数的地址,不再受限于MmGetSystemRoutineAddress的鸡肋功能。代码从WRK里摘出。 **** 本内容被作者隐藏 ****
2014-6-22 17:41 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela IDT是中断描述符表,它跟SSDT类似,记录了256个中断处理程序(函数)的地址。要HOOK的话,修改记录的地址即可。不过IDT的结构比起SSDT复杂得多,比起HOOK SSDT的难度,有一个好的方面和一个坏的 ...
2014-8-27 20:53 - Tesla.Angela - WINDOWS核心编程
Theme: Let the starting address of your kernel thread locate in the NTOSKRNL image space. Thema: Lass die Startadresse deines Kernel-Threads im Bereich des NTOSKRNL-Images lokalisieren.[hr] 隐藏内核 ...
2023-3-8 17:21 - Tesla.Angela - WINDOWS核心编程
作者:Tesla.Angela 网上那些所谓大牛放出的代码,大多有两个特点:1.大量内嵌汇编;2.硬编码多只支持XP。 对于第一,我个人的建议是,除非C语言实现不了,或者太繁琐,才内嵌汇编或者机器码; 对于第二,我的建议 ...
2014-6-24 11:35 - Tesla.Angela - WINDOWS核心编程