• 标 题:修改SoftIce使其在2000/xp下躲过检测 转贴 (2千字)
  • 作 者:e0ym
  • 时 间:2003-1-2 11:11:12
  • 链 接:http://bbs.pediy.com

修改SoftIce使其在2000/xp下躲过检测

方法来自这里http://www.woodmann.com/upload/showthread.php?s=&threadid=1806

  在这里我想说说自己的一点修改经验,其实基本上和上面的帖子所说的内容相同。只是附加一点自己的解释为了在2000/xp下躲过对SoftIce的检测,我们需要修改三个文件。其中NTICE.SYS和SIWVID.SYS位于%windir%/system32/drivers目录下。NMTRANS.DLL位于SI的安装目录首先,我们要明白在2000/xp下有哪些手法来检测SoftIce,最见的方法就是用CreateFileA的方式来检测NTICE和SIWVIDSTART的存在,这是2000/xp下打开设备驱动的方法。还有就是利用INT 1和INT 3的方式和GF....MJ检查。在这,我们只说怎么躲过这些方法的监测。至于反单步跟踪,那需要你自己的调试技巧,不在本文范围之类。

以下是如何修改那三个文件,让我们的SoftIce具有anti detect功能。

提醒!!
  两个驱动文件NTICE.SYS和SIWVID.SYS被修改后一定要修正其效验和checksum,这个可以使用lordpe完成。否则系统启动将失败!

NTICE.SYS的修改
1.查找GFu*f串,修改为XFu*f,其后的MJ修改为XJ <其实随便修改成什么都可以>
2.查找所有的Unicode字符串\NTICE,修改为\XTICE <躲过NTICE检测,注意前后一致>
3.查找Unicode字符串Bchkd,修改为Xchkd <躲过SoftIce的Boundscheck后门检测>
4.查找字符串\Driver\NTice,修改为\Driver\XTice
5.查找Kernel32!UnhandledExceptionFilter,修改为user32!MessageBoxExW <这个是我的
修改方法,必须注意的是这样做了后,SoftIce的Faults On将失效。可以躲过一些INT 3检测,自己选择要不要修改吧>

SIWVID.SYS的修改
1.查找所有的Unicode字符串\SiwvidSTART,修改为\XiwvidSTART <嗯嗯,躲过SIWVIDSTART检测>

NMTRANS.DLL的修改
1.查找字符串\\.\NTICE,修改为\\.\XTICE至此我们所作的都已经做完。再次提醒一定要修正NTICE.SYS和SIWVID.SYS的效验和!
经过上面的处理后,你的SoftIce的anti detect将大大加强。但是仍然躲不过INT 1的检测方法。

躲过INT 1检测SoftIce的方法如下:
在SoftICE里键入IDT指令,我们将获得IDTBase的值。在我的XP下总是8003F400。
然后d IDTBase,可以看到偏移为0DH处的字符是EE,我们将其修改为8E即可躲过INT 1的检测


XP下的可以在SoftIce的启动运行的指令里加上eb 8003F40D 8E,这样每次SI启动就自动具有了anti INT 1检测的功能。别的系统的话请多起启动确认一下是否是固定的位。
如果不是,你只有每次手动修改了。