摘要:在之前的一篇文章中介绍了替换IDT向量表中的地址来达到Hook的目的IDT hook KiTrap03但是这样很容易就可以被检测了。接下来要学习就是通过patch GDT来达到Hook IDT的目的。首先,我们要了解一下,当触发INT 3号中断之后,CPU是如何找到接下来要执行的指令的地址。CPU ...
阅读全文
摘要:硬件断点的实现需要依赖于调试寄存器DR0~DR7 调试寄存器DR0~DR3-----调试地址寄存器DR4~DR5-----保留DR6 -----调试状态寄存器 指示哪个调试寄存器被命中DR7 -----调试控制寄存器关于Dr7寄存器每个标志位的解释:总结如下DR7调试控制寄存器: R...
阅读全文
摘要:在Ring3 是提供了两个API函数,WriteProcessMemory和ReadProcessMemory来读取其他进程的内存BOOL WINAPI WriteProcessMemory( __in HANDLE hProcess, __in LPVOID lpBaseAddress...
阅读全文
摘要:ARM汇编程序特点:l所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通用寄存器来完成.因此代码中大量看到LDR,STR指令来传送值.lARM汇编语句中.当前语句很多时候要隐含的使用上一句的执...
阅读全文
摘要:是由获得进程模块而引发的一系列的问题,首先,在ring3层下枚举进程模块有ToolHelp,Psapi,还可以通过在ntdll中获得ZwQuerySystemInformation的函数地址来枚举,其中ZwQueryInformationProcess相当于是调用系统服务函数,其内部实现就是遍历PE...
阅读全文
摘要:Win7 比较 xp下ObjectHeader中的内容有所变化,xp直接在OBJECT_HEADER里保存了POBJECT_TYPE指针,而Win7中把所有的对象类型放在了一个表里,这个表叫做ObTypeIndexTable。可以这么定义为:POBJECT_TYPE ObTypeIndexTable...
阅读全文
摘要:平常用的最多的dll注入技术就是远程线程,刚刚逛看雪,看到有人写的面试的时候被问到的问题,其中就有dll注入的方法,我突然想到我开始面试的时候也被问了dll注入的方法,当时也是就只知道一个远程线程,答的也不好,然后就想把一些注入技术写个总结。接下来讲的注入技术,有ring3层的lld的远程线程和ap...
阅读全文
摘要:整理资料的时候发现的以前的代码,本机Win7 x64 Sp1 运行直接关机,黑屏。就是利用RtlAdjustPrivilege函数提权,代码中的注释写的很详细了。用的VS2010写的,直接编译成x64就可以运行,直接关机了。#include "stdafx.h"#include #include ...
阅读全文
摘要:windows提供的异常处理机制实际上只是一个简单的框架。我们通常所用的异常处理(比如C++的throw、try、catch)都是编译器在系统提供的异常处理机制上进行加工了的增强版本。这里先抛开增强版的不提,先说原始版本。 原始版本的机制很简单:谁都可以触发异常,谁都可以处理异常(只要它能看...
阅读全文
摘要:可以选择保存成pdf格式,查询起来挺方便的if v0==0 go cond_0if-eqz v0, :cond_0if v0!=0 go cond_0if-nez v0, :cond_0v1赋属性值const/4 v1, 0x2iput v1, p0, Lcom/android/shortcuts/...
阅读全文