wangjianfeng
驱动小牛
驱动小牛
  • 注册日期2004-05-28
  • 最后登录2013-10-02
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望263点
  • 贡献值0点
  • 好评度260点
  • 原创分0分
  • 专家分0分
阅读:1870回复:8

wowocock,Mjjj,V大等诸老大们来瞧下从Ntdll中导出Native API的问题,郁闷了..

楼主#
更多 发布于:2007-03-20 17:37
  pBaseAddr = GetLibraryBase("ntdll.dll");
    if ( pBaseAddr == NULL)
    {
        DbgPrint(" GetLibraryBase(ntdll.dll) Fail\n");
    }    

    else
    {
        DbgPrint(" (ntdll.dll) BASE %x\n",pBaseAddr );  (//打印: BASE 7c920000
        PNtOpenProcess = (NNtOpenProcess)GetFuncFromDLL( pBaseAddr , "NtOpenProcess");
        DbgPrint("NtOpenProcess %x\n",PNtOpenProcess); //此处是7c92dd7b
        DbgPrint("Memory NtOpenProcess %x\n",NtOpenProcess); //打印  805cb987
    }

为啥得到的不一样呢?我是用NtQuerySystemInformation得到的ntdll.dll在内存中的地址.
wangjianfeng
驱动小牛
驱动小牛
  • 注册日期2004-05-28
  • 最后登录2013-10-02
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望263点
  • 贡献值0点
  • 好评度260点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-20 18:47
等.
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
板凳#
发布于:2007-03-20 20:41
你打印的两个不一样~
一个是Ntos文件的NtOpenProcess地址
一个是NTDLL的地址

两者区别大了~
没有战争就没有进步 X3工作组 为您提供最好的军火
wangjianfeng
驱动小牛
驱动小牛
  • 注册日期2004-05-28
  • 最后登录2013-10-02
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望263点
  • 贡献值0点
  • 好评度260点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-21 09:06
V大,为啥我跳到ntdll的NtOpenProcess去执行时,就直接蓝屏了呢?
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地下室#
发布于:2007-03-21 09:16
引用第3楼wangjianfeng2007-03-21 09:06发表的“”:
V大,为啥我跳到ntdll的NtOpenProcess去执行时,就直接蓝屏了呢?


ring0和ring3的某些如DS,FS指向不同,保证兰~
没有战争就没有进步 X3工作组 为您提供最好的军火
wangjianfeng
驱动小牛
驱动小牛
  • 注册日期2004-05-28
  • 最后登录2013-10-02
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望263点
  • 贡献值0点
  • 好评度260点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-03-21 16:01
收到,看来不能跳到 ntdll.dll 中去执行...
wangjianfeng
驱动小牛
驱动小牛
  • 注册日期2004-05-28
  • 最后登录2013-10-02
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望263点
  • 贡献值0点
  • 好评度260点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-03-21 16:02
多谢V大,对于没有在NTOSKRNL中导出的函数,我用啥办法搜索呢???难道申请块内存,逐字节查找?听说有个SSDTShadow不知放在哪里.
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
7楼#
发布于:2007-03-21 16:25
引用第6楼wangjianfeng2007-03-21 16:02发表的“”:
多谢V大,对于没有在NTOSKRNL中导出的函数,我用啥办法搜索呢???难道申请块内存,逐字节查找?听说有个SSDTShadow不知放在哪里.


ntdll里得到ssdt号码,查找ssdt得到地址自己构造函数来用~或者使用sysentry自己调用~


SSDTShadow一般不好找~
根据特征码可以搜索,区分一下Win2003和2k系统~
Vista还要更特殊的说~
没有战争就没有进步 X3工作组 为您提供最好的军火
wangjianfeng
驱动小牛
驱动小牛
  • 注册日期2004-05-28
  • 最后登录2013-10-02
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望263点
  • 贡献值0点
  • 好评度260点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-03-22 10:07
真够难的,多谢V大一直帮忙.
游客

返回顶部