windows内核问题 高手进来看看!!!!!!

fantcy 2010-02-26 11:01:23
小弟最近想做一个东西:
想让冰刃都无法结束进程 不知道该怎么做 冰刃的隐藏进程检测技术我已经知道原理,感觉根本躲不过去就让它无发结束吧
那位大侠给点提示 告诉我点思路
声明:1.决不是病毒!!!!!!,是的话我是畜生!
2.谁给解决了 我给100分!!!
...全文
266 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzl32 2010-02-27
  • 打赏
  • 举报
回复
LZ能不能简单描述一下隐藏的原理?
dubiousway 2010-02-27
  • 打赏
  • 举报
回复
声明:1.决不是病毒!!!!!!,是的话我是畜生!
为啥发誓这么严重。。。。
fantcy 2010-02-27
  • 打赏
  • 举报
回复
顶下!!!!!!!!!!!!!!!!!!!! 坛里不是有很多写驱动的吗?? 出来帮帮我啊!
vincent_1011 2010-02-27
  • 打赏
  • 举报
回复
既然他hook了,你又去他的hook里面hook他
fantcy 2010-02-27
  • 打赏
  • 举报
回复
顶下!!!!!!!!!!!!!!!!!!!! 坛里不是有很多写驱动的吗?? 出来帮帮我啊!
fantcy 2010-02-27
  • 打赏
  • 举报
回复
哎呀 我真该开个rootkit的网站这方面的资料太少了。郁闷 各位大哥帮帮忙啊!!!!!!
fantcy 2010-02-27
  • 打赏
  • 举报
回复
引用 11 楼 laowu_ 的回复:
不一定非要用APIHOOK呀,它那个列表控件应该是一个窗口的吧,是窗口就应该有窗口过程的,HOOK它的窗口过程,不知道能不能行

呵呵 行你说这个方法隐藏任务管理器骗骗用户还行,用在冰刃上嘛应该也可以 不过我感觉有点拙劣 象我以前过360的保护:
1。搜索遍历窗口查找360警报窗口。
2。自动找到确定按钮,自动点确定。
呵呵 很拙吧 有没有正规点的办法那这样 我破冰刃还行其他的工具就不行了啊!
_JeffreyWu 2010-02-27
  • 打赏
  • 举报
回复
如果兵刃反钩子就完了...
musiclee 2010-02-27
  • 打赏
  • 举报
回复
钩子函数,截获系统所有的消息 是这个原理么?
_JeffreyWu 2010-02-27
  • 打赏
  • 举报
回复
不一定非要用APIHOOK呀,它那个列表控件应该是一个窗口的吧,是窗口就应该有窗口过程的,HOOK它的窗口过程,不知道能不能行
fantcy 2010-02-27
  • 打赏
  • 举报
回复
引用 8 楼 laowu_ 的回复:
你说能不能hook冰刃的那个进程列表啊,让你的进程不显示

这位兄弟说的有理 可是我怎么知道是哪个函数呢?? HOOK 我会但是反汇编我实在是差点。
对了 还有这个方法如果冰刃加了壳那可就没办法了啊!!!!
lihan6415151528 2010-02-27
  • 打赏
  • 举报
回复
看完了关于隐藏的实现,不过还是一知半解
_JeffreyWu 2010-02-27
  • 打赏
  • 举报
回复
你说能不能hook冰刃的那个进程列表啊,让你的进程不显示
fantcy 2010-02-27
  • 打赏
  • 举报
回复
引用 2 楼 wuyu637 的回复:
anti-icesword这个在几年前还是一个比较棘手的事情,不过现在好像已经有比较多方法绕过去了


icesword是一款很不错的东西,但是毕竟年代不同了


http://huaidan.org/archives/2074.html

看这个文章,查关键字去吧。


恩谢谢 我知道了不知道能不能联系到作者 我想向他请教请教。
还有 有没有不让冰刃结束的方法啊? 这个来的更好。
fantcy 2010-02-27
  • 打赏
  • 举报
回复
还有 冰刃刚出来时候的确很厉害 但是我看了下大约是07年的时候 而我看的那本内核书最后提到的检测方法
和冰刃如出一辙,呵呵看来冰刃技术还是蛮厉害的,哈哈,不过还是强不过外国人!,看来计算机外国人总是比我们厉害。
fantcy 2010-02-27
  • 打赏
  • 举报
回复
引用 1 楼 lhcwjy 的回复:
你先说说冰刃的隐藏进程检测技术?


如有不对请指正,谢谢!
好 我就说说我的成果 最近看了些内核的书 又看了下冰刃的说明有这样一句:

------------------------------------------------------------------------------------
FAQ

问:现在进程端口工具很多,什么要使用IceSword?
答:1、绝大多数所谓的进程工具都是利用Windows的Toolhlp32或psapi再或ZwQuerySystemInformation系统调用(前二者最终也用到此调用)来编写,随便一个ApiHook就可轻轻松松干掉它们,更不用说一些内核级后门了;极少数工具利用内核线程调度结构来查询进程,这种方案需要硬编码,不仅不同版本系统不同,打个补丁也可能需要升级程序,并且现在有人也提出过防止此种查找的方法。而IceSword的进程查找核心态方案是目前独一无二的,并且充分考虑内核后门可能的隐藏手段,目前可以查出所有隐藏进程。
----------------------------------------------------------------------------------
注意上文红色的地方 如果我猜的不错的话是这样隐藏的:
在内核态中系统是通过线程来实现系统调度的,就是说每一个线程在完成了它的使命后都会返回父进程的指针
冰刃只要钩住了这个函数:
swapcontext(我也不知道这到底是个函数还是个结构体 或是其他什么 内核中的东西太复杂 我不知道)
就可以实现很低层的进程检测,连修改内核对象这样的隐藏方式 都可以检测出来! 就更不用说一般的钩函数了
不过此方法 最早是一位叫james blunt的 外国人提出的他们的论文中提出了这个方法 我想冰刃应该也只是借鉴,当然如果作者每看过这篇文章 那可真厉害 自己就可以想出来。
好了就是 这些要是有牛人 就帮帮我吧 如果大家看不懂我上面说的 就去看看内核的书吧。


fantcy 2010-02-27
  • 打赏
  • 举报
回复
再顶顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fantcy 2010-02-27
  • 打赏
  • 举报
回复
难道没人会吗?? 大牛来帮帮我啊
wuyu637 2010-02-26
  • 打赏
  • 举报
回复
anti-icesword这个在几年前还是一个比较棘手的事情,不过现在好像已经有比较多方法绕过去了



icesword是一款很不错的东西,但是毕竟年代不同了


http://huaidan.org/archives/2074.html

看这个文章,查关键字去吧。
白云飘飘飘 2010-02-26
  • 打赏
  • 举报
回复
你先说说冰刃的隐藏进程检测技术?
在编写程序的过程中,我遇到了这样的需求:在基于Windows 9x 或 Windows NT4.0 的程序中,要求确定键盘、鼠标处于空闲状态的时间。查询了有关资料文档以后,发现Windows 9x和Windows NT4.0 没有提供API或系统调用来实现这样的功能。但是,在Windows 2000中提供了一个新的函数:GetLastInputInfo(),这个函数使用结构 LASTINPUTINFO 作为参数: LASTINPUTINFO lpi; lpi.cbSize = sizeof(lpi); GetLastInputInfo(&lpi); 调用函数GetLastInputInfo()以后, 结构成员lpi.dwTime 中的值便是自上次输入事件发生以后的毫秒数。这个值也就是键盘、鼠标处于空闲状态的时间。可惜的是这个函数只能在Windows 2000中使用,Windows 9x 或Windows NT4.0不提供此API函数。那么,如何在Windows 9x 或Windows NT4.0中实现GetLastInputInfo()的功能呢?笔者的方法是利用系统钩子对键盘、鼠标进行监控。 Windows中的钩子实际上是一个回调函数,当用户有输入动作的时候,Windows要调用这个函数。比较典型的系统钩子应用就是键盘钩子和鼠标钩子: HHOOK g_hHookKbd = NULL; HHOOK g_hHookMouse = NULL; 在Windows中,一个系统(相对于一个特定进程而言)钩子必须用一个动态链接库(DLL)来实现。不妨将这个动态链接库命名为IdleUI.dll。 这个动态链接库在Windows 9x和Windows NT4.0 中实现了GetLastInputInfo()的功能。IdleUI.dll中有三个函数: BOOL IdleUIInit() void IdleUITerm(); DWORD IdleUIGetLastInputTime(); IdleUIInit()是环境初始化函数,IdleUITerm()是环境清理函数,分别在MFC应用程序的InitInstance() 和 ExitInstance()中调用它们。当用IdleUIInit()做完初始化后,就可以调用第三个函数IdleUIGetLastInputTime()来获取最后一次输入事件后的时钟。从而实现与GetLastInputInfo()一样的功能。程序TestIdleUI.exe是用来测试IdleUI动态库的,程序中调用了IdleUIInit 和 IdleUITerm,同时在程序的客户区中间显示键盘、鼠标空闲的秒数。 void CMainFrame::OnPaint() { CPaintDC dc(this); CString s; DWORD nsec = (GetTickCount() - IdleUIGetLastInputTime())/1000; s.Format( "鼠标或键盘空闲 %d 秒。",nsec); CRect rc; GetClientRect(&rc); dc.DrawText(s, &rc, DT_CENTER|DT_VCENTER|DT_SINGLELINE); } 图一显示了TestIdleUI运行时的情形。 图一 TestIdleUI运行画面 为了连续的显示,TestIdleUI设置刷新定时器间隔为一秒。 void CMainFrame::OnTimer(UINT) { Invalidate(); UpdateWindow(); } 运行TestIdleUI,当键盘和鼠标什么也不做时,可以看到计时器跳动,当移动鼠标或按键时,计时器又恢复到零,这样就实现了对输入设备空闲状态的监控。实现细节请看下面对IdleUI.dll工作原理的描述: 首先调用IdleUIInit ()进行初始化,安装两个钩子:一个用于监控鼠标输入,一个用于监控键盘输入。 HHOOK g_hHookKbd; HHOOK g_hHookMouse; g_hHookKbd = SetWindowsHookEx(WH_KEYBOARD,MyKbdHook,hInst, 0); g_hHookMouse = SetWindowsHookEx(WH_MOUSE,MyMouseHook,hInst, 0); 当用户移动鼠标或按下键盘键时,Windows调用其中的一个钩子并且钩子函数开始记录时间: LRESULT CALLBACK MyMouseHook(in

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧