阅读:4554回复:3
unresolved external symbol @__security_check_cookie@4
使用vs2005编译驱动 ,里面使用到 atoi64,链接libcntpr.lib出现@__security_check_cookie@4错误
我在编译选项关闭了buffer security check,还是没用 改为链接MSVCRT.LIB问题解决,可是MSVCRT.LIB是user mode的库,不知道此问题如何解决 |
|
沙发#
发布于:2007-12-11 23:13
Re:unresolved external symbol @__security_che
恩?这个libcntpr.lib能在内核态使用? 这个函数并没有在ntoskrnl里面实现 换下面这个 RtlUnicodeStringToInteger IRQL: PASSIVE_LEVEL Headers: Declared in wdm.h. Include wdm.h, ntddk.h, or ntifs.h. 不知道为什么必须要passive level 实在不行自己实现一个吧 至于__security_check_cookie 恩? 现在最新的ddk都不提供GsDriverEntry这个函数么? 没有就自己实现一个DsDriverEntry吧 ULONG ___security_cookie = 0xbb40; ULONG ___security_cookie_complement = 0xFFFF44BF; NTSTATUS GsDriverEntry(IN PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegPath) { LARGE_INTEGER tickCount; KeQueryTickCount(&tickCount); if(!___security_cookie || ___security_cookie == 0xbb40) { ULONG temp = (ULONG)&___security_cookie; temp = ((temp >> 8) ^ tickCount.u.LowPart) & 0xffff; if(temp) ___security_cookie = temp; else ___security_cookie = tickCount.u.LowPart & 0xffff; } ___security_cookie_complement = ~___security_cookie; return DriverEntry(DriverObject,RegPath); } void __fastcall __security_check_cookie(ULONG cookie) { if(cookie != ___security_cookie || cookie & 0xffff0000) KeBugCheckEx(0x7f,cookie,___security_cookie,___security_cookie_complement,0); } 这是微软实现的代码...有了这个就可以放心打开gs编译选项了 当然你需要把入口点改成GsDriverEntry |
|
板凳#
发布于:2008-01-04 19:00
非常感谢,晚上都没有查到这样详细的讲解
|
|
地板#
发布于:2008-04-13 19:01
包含 “ bufferoverflowK.lib ”
|
|