caicaileo
驱动牛犊
驱动牛犊
  • 注册日期2006-08-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望89点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
阅读:4556回复:3

unresolved external symbol @__security_check_cookie@4

楼主#
更多 发布于:2007-12-08 22:48
使用vs2005编译驱动 ,里面使用到 atoi64,链接libcntpr.lib出现@__security_check_cookie@4错误
我在编译选项关闭了buffer security check,还是没用

改为链接MSVCRT.LIB问题解决,可是MSVCRT.LIB是user mode的库,不知道此问题如何解决
rulary
驱动牛犊
驱动牛犊
  • 注册日期2007-01-12
  • 最后登录2012-04-27
  • 粉丝0
  • 关注0
  • 积分43分
  • 威望26点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-04-13 19:01
包含 “ bufferoverflowK.lib ”
caicaileo
驱动牛犊
驱动牛犊
  • 注册日期2006-08-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望89点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-01-04 19:00
非常感谢,晚上都没有查到这样详细的讲解
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
地板#
发布于: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
游客

返回顶部