131-1198-7613
NEWS
网站建设、网站制作、网站设计等相关资讯

360高级搜刮引擎入口_360搜刮首页引擎(360高级搜索功能)

首页 >> 新闻资讯 作者:磁力SEO 来源:磁力SEO - 搜索引擎优化技巧 日期:2025-02-18

  据我了解在卡巴7中就有捏造启发式查毒的功能。海内就有人在BLOG上揭晓了一篇奈何冲破卡巴7的捏造机启发式查毒的文章[1]。卡巴8和最新的卡巴2010中仍然具有该功能。卡巴斯基不用我多说了,大家都知道。

  我迩来在网上查到有人说卡巴斯基是俄罗斯国家科学院相助开发的,军方和克里姆林宫专用。这个我还真的不清晰了,请包容我的蒙昧。我先来说下什么是捏造机启发式杀毒。

  我觉得在这里的捏造机启发式杀毒应该可以大白为在捏造机中实施和启发式杀毒。捏造机即机关一个捏造实施情况或许说一个仿真的情况,将病毒等恶意代码在该仿真的情况中运行实现自己脱壳等等。该仿真的情况和用户打定机的真实情况是隔离的。

  

  请输入图片描摹

  我们都曾经一窍不通,都曾经艰难前行,都曾经等候成功,也都继承过一次又一次凄切失败,还记得曾经玩远控花了整整两周才等到第一个肉鸡上线的激动难以言表,还记恰当年花了整整一个月才在一个日本网站上挂上了“巍巍中华,国耻未忘”的黑页时欢乐得今夜难眠,当然,那些日子如此之近,可是,在黑客全国艰难爬行的我们,仿佛经历了千山万水,我如今正在经历的,所有初入界内的小白们也必将经历。——黑客攻防册本《收集优劣》选段 某宝有。

  举个例子:如今的恶意代码都采纳加壳为自己提供保护,尤其是一些已知病毒的变种。当采纳捏造机实施技术加壳保护的恶意代码仍能被杀毒软件检测到,有本事的读者可以自己实施一下。

  启发式指的是自我发现并揣度或鉴定事物的方式。启发式杀毒通太过析程序指令的序列或许API函数的挪用序次以及其他恶意代码与正常程序的不同等经历和常识的组合来鉴定是否是恶意代码。这样的启发式杀毒具备某种人工智能特点。它的优点不用我多说废话,举个例子:Downloader信任大家都知道,最重要的两个API是URLDownloadToFile和ShellExecute(也可所以其他实施一个程序的API)。例如,在操纵捏造机启发式杀毒时,当被查毒程序的API挪用序列中呈现URLDownloadToFile或许ShellExecute,又或许不是按照先URLDownloadToFile后ShellExecute的挪用序次是不会被报Downloader的。

  可以说因为自动防御技术的种种弱点,如今各杀毒软件厂商已经将捏造机杀毒和启发式杀毒作为杀毒业界的追求和摸索的目的。可以预见到在未来几年内杀毒软件将不再会呈现当正常操纵系统和软件时频繁弹出自动防御窗口的尴尬。

  接下来将通过上面提到的Downloader例子阐明下卡巴的捏造机启发式查毒的特点,并在最后给出一种或许的绕过方法和演示代码,供各位看官赏玩。

  我假设您已经知道什么是Downloader,一个最简朴的Downloader是:

  #include "stdafx.h" #include urlmon.h #include Shellapi.h #pragma comment (lib,"Urlmon.lib") int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { TCHAR szFileName[MAX_PATH] = {0}; URLDownloadToCacheFile(NULL,L"file://c:\\windows\\notepad.exe",szFileName,MAX_PATH,0,NULL); ShellExecute(0,L"open",szFileName,NULL,NULL,SW_SHOW); return 0; }

  这个程序是操纵Visual Studio 2008创建的Win32窗口工程。编译后卡巴2010直接报Downloader。首先操纵了之前提到的xyzreg提到的方法,如今在卡巴2010下已经不实用,简朴的测试了一下卡巴2010会把自己模拟成explorer.exe。所以检查父历程是否是explorer.exe的方法不行了,可是如果检查自己的父历程是否是cmd.exe就可以了。当然这个实用性并不强,因为要求Downloader必需由cmd.exe启动。

  我觉得应该有其他的方法可以逃过捏造查毒,可是这里只从捏造查毒自己入手。首先想到的是这个捏造机和真实情况是否有区别?这个回复当然是必定的。可是这些区别在何处,这些区别是否会影响到。是否存在一种情况捏造机无法捏造而导致捏造情况下无法实施到URLDownloadToCacheFile和ShellExecute那就不会检查到是Downloader了。这个脑筋很简朴,然后要怎么实现呢。

  首先想到捏造机是否捏造了很是处置惩罚处罚,如果没有捏造很是处置惩罚处罚,那我们觉得的制造一个很是,将具有Downloader特征的API调要放到很是处置惩罚处罚程序中不就绕过了吗。于是有了下面的代码

  BOOL SafeDiv(INT32 dividend, INT32 divisor, INT32 *pResult) { __try { *pResult = dividend / divisor; } __except(GetExceptionCode() == EXCEPTION_INT_DIVIDE_BY_ZERO ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) { TCHAR szFileName[MAX_PATH] = {0}; URLDownloadToCacheFile(NULL,L"file://c:\\windows\\notepad.exe",szFileName,MAX_PATH,0,NULL); ShellExecute(0,L"open",szFileName,NULL,NULL,SW_SHOW); return TRUE; } return TRUE; }

  在Downloader的程序进口以参数divisor为0挪用这个SafeDiv函数,。这样就会产生一个除0的错误。成果是卡巴报Downloader!看样子卡巴有对很是处置惩罚处罚捏造的本事。

  恩。。。如果我在代码中添加int 3截止会发生什么情况呢?应该也捏造了。如今就来试试,果然在Downloader进口添加int 3后当然是查不出来了,呵呵,程序也运行不了了。接下来就看看能不能找到方法让程序在真实情况下能运行在,捏造机下停住了。没有多久想了一个更换的方法,鉴定程序的输入参数。通过检查程序的输入参数来节制程序的实施流程。简朴的在Downloader进口添加鉴定程序参数的代码:

  if(strcmp(argv[1],"1")!== 0) return;

  程序运行时输入参数“1”程序实施Downloader的功能,在捏造机中实施时没有参数输入所以程序返回,检测不到恶意函数挪用序次。当然这样的恶意代码是貌寝的,所以我想到操纵CreateProcess来启动Downloader自己的另一个实例。代码如下:

  部门变量声明和初始化代码省略。。。

  INT32 divisor = 1; if(argc == 1) { TCHAR szPath[MAX_PATH]; GetModuleFileName(NULL,szPath,MAX_PATH); CreateProcess(szPath,L"1 2",NULL,NULL,FALSE,0,NULL,NULL,si,π); ExitProcess(0); return; } if(strcmp(argv[1],"2") == 0) divisor = 0; SafeDiv(10,divisor,Result); ExitProcess(0); return; }

  编译成功后,操纵卡巴2010查毒。报Downloader!失望啊!

360高级搜索引擎入口_360搜索首页引擎 360高级搜刮引擎入口_360搜刮首页引擎(360高级搜索功能) 360词库

  将对函数参数检查的方式换成操纵“命名对象”的方式:

360高级搜索引擎入口_360搜索首页引擎 360高级搜刮引擎入口_360搜刮首页引擎(360高级搜索功能) 360词库

  //定义一个“命名对象” TCHAR szMutex[] = L”11111”; HANDLE hEvent = CreateEvent(NULL,NULL,NULL,szMutex); int tmp = GetLastError(); if(tmp == 0) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( π, sizeof(pi) ); TCHAR szPath[MAX_PATH]; GetModuleFileName(NULL,szPath,MAX_PATH); CreateProcess(szPath,NULL,NULL,NULL,FALSE,0,NULL,NULL,si,π); return 0; } TCHAR szFileName[MAX_PATH] = {0}; URLDownloadToCacheFile(NULL,L"file://c:\\windows\\notepad.exe",szFileName,MAX_PATH,0,NULL); ShellExecute(0,L"open",szFileName,NULL,NULL,SW_SHOW); return 0;

  报Downloader!失望!

  看样子卡巴的捏造机对API的模拟和程序实施的流程捏造很到位!不知道对时间的捏造的怎么样?代码中有Sleep(10000000)的语句会不会影响捏造查毒的时间呢?凭据我的实施在其中到场Sleep函数睡眠很长的一段时间并没有影响捏造杀毒查出Downloader的时间,所以估计对时间的捏造或许欠好。将上面的代码中在CreateProcess挪用之后挪用Sleep睡眠一段较长的时间如5秒,然后挪用CloseHandle关闭“命名事故”。

  如果卡巴遇到Sleep函数简朴的跳过,则在捏造机中实施的序次将是先实施Sleep后的CloseHandle关闭事故,然后再进入到新实例中创建“命名事故”,在这种情况下就能创建成功,所以程序的实施流程不会进入到URLDownloadToCacheFile处,以此绕过检测。可是现实情况时仍然被报Downloader,分析卡巴2010对Sleep等时间干系的函数捏造的也很好。

Tags: 启发式 卡巴 程序 引擎 首页 高级 查毒 入口 函数 简朴 代码 参数 情况 恶意代码 时间

服务热线

131-1198-7613

功能和特性

价格和优惠

获取内部资料

微信服务号