开拓处境和器械
处境:Windows10x开拓器械和说话:VSC/C++
如下实质都是debug版本
引见
近来一种在剖析歹意模范,关于各样歹意代码的举动特色和运转机制有了一些归纳,抱着深交知彼才干势如破竹的立场,从头梳理一下剖析时碰到的一些歹意代码的技艺的设施,从一个病毒的释放、注入、隐蔽和免杀等历程采纳的思绪和实行法子起程来进一步刨析这些代码的旨趣,在以来的剖析中关于细节才干愈加的轻车熟路,底下先引见罕见的和释放相关的设施。
简单实例运转
这个在剖析的两个恐吓病毒都有发掘,起初会查看自身是不是在运转,在发端的功夫都操纵了一个函数
WINAPICreateMutexA(_In_opt_LPSECURITY_ATTRIBUTESlpMutexAttributes,//指向平安属性指针,可觉得null_In_BOOLbInitialOwner,//初始化互斥体目标的一共者_In_opt_LPCSTRlpName//指向互斥体目标称号指针);
需求留意的是,操纵CreateMutex()创造的互斥体目标称号不能与现有的事项、记号量、可能文献映照目标称号类似,不然互斥体目标会创造失利。
资本释放
不少的木马程序会操纵资本释放的技艺,如此能够让一些额外的DLL、EXE、文本和图片等文献做为资本插入到程序内里,比及程序正式运转的功夫再把他们释放到内陆上,如此编译出的惟有一个exe文献,低沉了被发掘的危急。
关键API函数
//发掘资本HRSRCWINAPIFindResource(_In_opt_HMODULEhModule,//模块称号_In_LPCWSTRlpName,//指定资本称号_In_LPCWSTRlpType//资本范例);//获得资本巨细DWORDWINAPISizeofResource(_In_opt_HMODULEhModule,_In_HRSRChResInfo);//加载资本HGLOBALWINAPILoadResource(_In_opt_HMODULEhModule,//模块称号_In_HRSRChResInfo//资本句柄);//锁定资本字节LPVOIDWINAPILockResource(_In_HGLOBALhResData);//此外详细的函数讯息能够拜见MSDN文档
实行旨趣
经过FindResource定位程序里的资本,经过资本范例和资本称号来定位
经过SizeofResource获得资本的巨细以后再经过LoadResource把资本加载到程序内存中
着末操纵LockResource锁定加载到内存中的资本防备程序的此外操纵影响这块内存,此中返回值即是资本在历程内存中的肇端住址
DLL推迟加载
DLL推迟加载是在正式移用DLL的功夫,才会加载DLL文献,如此在正式移用DLL前,都是能够寻常施行的,只要要在VS的开拓处境配置链接器便可结尾,
底下以测试程序为例:
在VS的链接器中编纂ucrtbased.dll,重再造成
再次观察发掘这个DLL曾经不见了,推迟载入胜利
若是经过编码来实行,它的字段是在PE文献NT头中的DataDirectory—IMAGE_DIRECTORY_ARRY,详细的编码这边就不演示了。
启动法子
依照旧例的环节在将资本中的程序释放出来后会启动它,底下是罕见的几种启动方法
函数WinExec
UINTWINAPIWinExec(_In_LPCSTRlpCmdLine,//要施行的程序的敕令行_In_UINTuCmdShow//显示选项);
函数ShellExecute
HINSTANCEShellExecuteW(_In_opt_HWNDhwnd,//父窗口句柄_In_opt_LPCWSTRlpOperation,//要施行的操纵:edit、explore、find、open等_In_LPCWSTRlpFile,//指向shell称号空间目标_In_opt_LPCWSTRlpParameters,//指向一个可施行文献_In_opt_LPCWSTRlpDirectory,//指向默许操纵的目录_In_INTnShowCmd);//翻开窗口怎么显示SW_HIDE
函数CreateProcess
BOOLWINAPICreateProcessW(_In_opt_LPCWSTRlpApplicationName,//施行模块名可觉得NULL_Inout_opt_LPWSTRlpCommandLine,//施行敕令行可觉得NULL_In_opt_LPSECURITY_ATTRIBUTESlpProcessAttributes,//历程平安属性指针_In_opt_LPSECURITY_ATTRIBUTESlpThreadAttributes,//线程平安属性指针_In_BOOLbInheritHandles,_In_DWORDdwCreationFlags,//操纵优先级和创造历程标识_In_opt_LPVOIDlpEnvironment,//指向新历程的处境块的指针_In_opt_LPCWSTRlpCurrentDirectory,//指向历程现时目录的完备路线_In_LPSTARTUPINFOWlpStartupInfo,//STARTUPINFOW组织指针_Out_LPPROCESS_INFORMATIONlpProcessInformation//PROCESS_INFORMATION组织的指针);
操纵这些API首要即是对参数的领会,比如WinExec和ShellExecute函数配置位SW_HIDE方法能够隐蔽程序窗口,而且胜利隐蔽施行CMD敕令行的窗口。
归纳
上头是陈设了几种常例的歹意代码罕用设施,在剖析的功夫看到这些API就应当有所警悟了,不过这是一些最根底的设施,在注入篇会连续讨论略微有点难度的东西,归纳罕见的注动设施。
参考:《Windows黑客编程技艺详解》、《黑客大暴光》
我就领会你“在看”
预览时标签不成点收录于合集#个