首页
游戏
影视
直播
广播
听书
音乐
图片
更多
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
Search
1
virtuoso和empyrean alps模拟仿真和混仿教程
360 阅读
2
在IC617中进行xa+vcs数模混仿
301 阅读
3
文档内容搜索哪家强? 15款文件搜索软件横向评测
264 阅读
4
科普:Memory Compiler生成的Register file和SRAM有何区别?
258 阅读
5
通俗易懂的AI知识体系图及其产业链全景图
198 阅读
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
登录
Search
标签搜索
AI
python
Docker
vcs
PyQT
STM32
cadence
linux
systemverilog
EDA
Alist
vscode
uos
package
MCU
C
QT
CXL
sed
sv
bennyhe
累计撰写
387
篇文章
累计收到
33
条评论
首页
栏目
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
页面
游戏
影视
直播
广播
听书
音乐
图片
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
搜索到
387
篇与
的结果
2025-07-14
一种数字集成电路测试系统的设计
一种数字集成电路测试系统的设计http://www.ee365.cn 2005-11-01 20:34 摘要:介绍了一种数字集成电路测试系统的工作原理、组成。提出了系统的软硬件设计方案。该系统基于自定义总线结构,可测试电平范围宽。关键词:数字集成电路测试功能测试通道板精密测量单元随着数字集成电路的广泛应用,测试系统就显得越来越重要。在网络化集成电路可靠性试验及测试系统项目中,需要检验某些具有宽电平范围的军用数字集成电路芯片,而市场上常见的中小型测试系统可测电平范围达不到要求,而大型测试系统价格昂贵。本文介绍了为此项目研制的一种数字集成电路测试系统,可测电平范围达±32V,使用方便,且成本较低。测试系统结构及工作原理系统需要对集成电路进行功能测试和直流参数测试。功能测试通过向集成电路输入端施加设定的测试向量,检测并比较其输出的测试向量,从而验证器件的逻辑功能是否正常。直流参数测试是以电压或电流的形式验证集成电路的电气参数,要保证较高的测试精度。为了使系统结构灵活,便于升级,采用了基于总线的模块化结构,其结构如图1所示。系统由通道板、数控电源板(DPS板)、精密测量单元板(PMU板)、测试接口板、单片机系统板(CPU板)和总线板组成。各个板卡通过总线板进行数据连接和交换。DPS板给测试系统提供电源、电压参考,给被测器件(DUT)提供工作电压。测试接口板功能是给DUT提供测试接口,给器件上电。http://www1.ti.com.cn/customer/article/2004/images/040305_35.gif 在功能测试过程中,计算机把预先生成的测试向量送到单片机系统,单片机控制通道板把信号电平转换为测试所需的电平,并把转换后的时序波形施加到待测器件(DUT)的输入管脚上,然后检测DUT的输出,把检测结果通过总线传到单片机进行判断处理。直流参数测试过程是向DUT施加直流参数测试条件,通过PMU实现DUT直流参数的精密测量。通道板通道板功能有两个,一是把测试码合成最终的测试信号施加到DUT,另外的功能是对DUT的返回信号进行分析比较,将比较结果通过总线返回到单片机系统。通道板的结构设计如图2所示。控制总线通过译码与逻辑控制单元设定并控制DUT管脚的地址,管脚驱动与控制单元驱动并控制继电器阵列完成DUT管脚数据的输入和输出功能。VIH(VIL)是由DPS板设定产生的测试所需的高(低)驱动电平。总线发送由程序预先生成的测试向量,电平转换与驱动单元把测试向量转换为设定电平的测试时序波形,管脚驱动与控制单元控制继电器阵列把波形施加到DUT的输入管脚。管脚电平比较单元检测输出管脚信号电平,与预期输出数据进行逻辑比较后把比较结果传回下位机。在直流参数测试过程中,继电器控制单元将测试接口板上的DUT连接到PMU,利用PMU模块实现电压或电流的精密测量。在通道板的电平转换部分设计如图3所示。电路在稳定后,在无信号输入时,V1略高于V2,输出为VIH;当TTL输入为低电平时,由于电容电压不能突变,使得V1低于V2,比较器翻转,输出为VIL;当TTL输入为高电平时,同样,V1略高于V2,输出为VIH。由于电容充放电,输出端电平不能长久保持在低电平,选取足够大的电容可满足本系统的测试需要。http://www1.ti.com.cn/customer/article/2004/images/040305_36.gif 精密测量单元精密测量单元(PMU)是系统精密测量直流参数的基本单元。系统采用12位A/D和D/A转换器、分档以及开尔文接法等手段来实现高精度测量。PMU可实现加压测流(FVMI)和加流测压(FIMV)两种工作方式。其中PMU中加压测流原理图如图3所示。Vin作为输入,器件施加电压Vp经测试接口板施加到DUT,通过测试Vout可得到到测试电流I。根据电路图可以计算出:这样,根据公式(1),通过控制Vin就可以向被测器件施加设定的电压Vp,根据公式(2)可通过测试Vout来计算被测器件管脚上流过的电流I。http://www1.ti.com.cn/customer/article/2004/images/040305_38.gifhttp://www1.ti.com.cn/customer/article/2004/images/040305_37.gif 直流参数测试中,PMU可通过测试输出端高/低电平、输入端漏电流、输出短路电流以及静态功耗电流等来检测器件的负载特性和静态功耗。为了使PMU具有足够宽的测试范围和测试精度,A3采用具有FET输入级的高压运放OPA445,接成跟随器,使得流入A3的电流极小,保证了电流测试的精度,并且其高压特性保证了PMU的测试范围。 http://www1.ti.com.cn/customer/article/2004/images/040305_39.gif软件部分软件部分的作用是用计算机控制测试系统,并为用户提供一个友好、易于操作的界面。下位机软件用C51程序编写,主程序流程图如图4所示。上位机采用VC#.net编写。下位机软件的主要工作是根据上位机传送的测设参数设置系统电压及测试条件,载入测试向量向DUT管脚发送输入波形,然后测试输出端波形数据,发送到上位机并存储到数据库。经过用户的实际应用,证明该系统性价比高,测试准确。 http://www1.ti.com.cn/customer/article/2004/images/040305_40.gif参考文献
2025年07月14日
9 阅读
0 评论
0 点赞
2025-07-14
循环冗余校验CRC的算法分析和程序实现(cont')(2008-06-09 09:34:21)
三、CRC-32的程序实现。为了提高编码效率,在实际运用中大多采用查表法来完成CRC-32校验,下面是产生CRC-32校验吗的子程序。unsigned long crc_32_tab[256]={0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,0x0edb8832,…, 0x5a05df1b, 0x2d02ef8d};//事先计算出的参数表,共有256项,未全部列出。unsigned long GenerateCRC32(char xdata * DataBuf,unsigned long len){unsigned long oldcrc32;unsigned long crc32;unsigned long oldcrc;unsigned int charcnt; char c,t; oldcrc32 = 0x00000000; //初值为0 charcnt=0; while (len--) { t= (oldcrc32 >> 24) & 0xFF; //要移出的字节的值 oldcrc=crc_32_tab[t]; //根据移出的字节的值查表 c=DataBuf[charcnt]; //新移进来的字节值 oldcrc32= (oldcrc32 << 8) | c; //将新移进来的字节值添在寄存器末字节中 oldcrc32=oldcrc32^oldcrc; //将寄存器与查出的值进行xor运算 charcnt++; } crc32=oldcrc32; return crc32; }参数表可以先在PC机上算出来,也可在程序初始化时完成。下面是用于计算参数表的c语言子程序,在Visual C++ 6.0下编译通过。include <stdio.h>unsigned long int crc32_table[256];unsigned long int ulPolynomial = 0x04c11db7;unsigned long int Reflect(unsigned long int ref, char ch){ unsigned long int value(0);// 交换bit0和bit7,bit1和bit6,类推for(int i = 1; i < (ch + 1); i++){ if(ref & 1)value |= 1 << (ch - i); ref >>= 1; } return value;}init_crc32_table(){ unsigned long int crc,temp;// 256个值for(int i = 0; i <= 0xFF; i++){ temp=Reflect(i, 8);crc32_table[i]= temp<< 24;for (int j = 0; j < 8; j++){ unsigned long int t1,t2; unsigned long int flag=crc32_table[i]&0x80000000;t1=(crc32_table[i] << 1);if(flag==0) t2=0; else t2=ulPolynomial; crc32_table[i] =t1^t2 ; }crc=crc32_table[i];crc32_table[i] = Reflect(crc32_table[i], 32);}}结束语CRC校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传输差错检测地一种很好的手段。参考文献[1] 王新梅 肖国镇. 纠错码-原理与方法.西安:西安电子科技大学出版社,2001[2] 罗伟雄 韩力 原东昌 丁志杰 通信原理与电路. 北京:北京理工大学出版社,1999[3] 王仲文 ARQ编码通信.北京:机械工业出版社,1991[4] Ross Williams, A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS.
2025年07月14日
17 阅读
0 评论
0 点赞
2025-07-14
循环冗余校验CRC的算法分析和程序实现 (2008-06-09 09:33:23)
摘要 通信的目的是要把信息及时可靠地传送给对方,因此要求一个通信系统传输消息必须可靠与快速,在数字通信系统中可靠与快速往往是一对矛盾。为了解决可靠性,通信系统都采用了差错控制。本文详细介绍了循环冗余校验CRC(Cyclic Redundancy Check)的差错控制原理及其算法实现。关键字 通信 循环冗余校验 CRC-32 CRC-16 CRC-4 概述 在数字通信系统中可靠与快速往往是一对矛盾。若要求快速,则必然使得每个数据码元所占地时间缩短、波形变窄、能量减少,从而在受到干扰后产生错误地可能性增加,传送信息地可靠性下降。若是要求可靠,则使得传送消息地速率变慢。因此,如何合理地解决可靠性也速度这一对矛盾,是正确设计一个通信系统地关键问题之一。为保证传输过程的正确性,需要对通信过程进行差错控制。差错控制最常用的方法是自动请求重发方式(ARQ)、向前纠错方式(FEC)和混合纠错(HEC)。在传输过程误码率比较低时,用FEC方式比较理想。在传输过程误码率较高时,采用FEC容易出现“乱纠”现象。HEC方式则式ARQ和FEC 的结合。在许多数字通信中,广泛采用ARQ方式,此时的差错控制只需要检错功能。实现检错功能的差错控制方法很多,传统的有:奇偶校验、校验和检测、重复码校验、恒比码校验、行列冗余码校验等,这些方法都是增加数据的冗余量,将校验码和数据一起发送到接受端。接受端对接受到的数据进行相同校验,再将得到的校验码和接受到的校验码比较,如果二者一致则认为传输正确。但这些方法都有各自的缺点,误判的概率比较高。 循环冗余校验CRC(Cyclic Redundancy Check)是由分组线性码的分支而来,其主要应用是二元码组。编码简单且误判概率很低,在通信系统中得到了广泛的应用。下面重点介绍了CRC校验的原理及其 算法实现。 一、循环冗余校验码(CRC)CRC校验采用多项式编码方法。被处理的数据块可以看作是一个n阶的二进制多项式,由 。如一个8位二进制数10110101可以表示为: 。多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算以2为模,加减时不进,错位,和逻辑异或运算一致。采用CRC校验时,发送方和接收方用同一个生成多项式g(x),并且g(x)的首位和最后一位的系数必须为1。CRC的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC校验码。校验时,以计算的校正结果是否为0为据,判断数据帧是否出错。CRC校验可以100%地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误。所以CRC的生成多项式的阶数越高,那么误判的概率就越小。CCITT建议:2048 kbit/s的PCM基群设备采用CRC-4方案,使用的CRC校验码生成多项式g(x)= 。采用16位CRC校验,可以保证在 bit码元中只含有一位未被检测出的错误。在IBM的同步数据链路控制规程SDLC的帧校验序列FCS中,使用CRC-16,其生成多项式g(x)= ;而在CCITT推荐的高级数据链路控制规程HDLC的帧校验序列FCS中,使用CCITT-16,其生成多项式g(x)= 。CRC-32的生成多项式g(x)= 。CRC-32出错的概率比CRC-16低 倍。由于CRC-32的可靠性,把CRC-32用于重要数据传输十分合适,所以在通信、计算机等领域运用十分广泛。在一些UART通信控制芯片(如 MC6582、Intel8273和Z80-SIO)内,都采用了CRC校验码进行差错控制;以太网卡芯片、MPEG解码芯片中,也采用CRC-32进行差错控制。二、CRC校验码的算法分析CRC校验码的编码方法是用待发送的二进制数据t(x)除以生成多项式g(x),将最后的余数作为CRC校验码。其实现步骤如下:设待发送的数据块是m位的二进制多项式t(x),生成多项式为r阶的g(x)。在数据块的末尾添加r个0,数据块的长度增加到m+r位,对应的二进制多项式为 。用生成多项式g(x)去除 ,求得余数为阶数为r-1的二进制多项式y(x)。此二进制多项式y(x)就是t(x)经过生成多项式g(x)编码的CRC校验码。用 以模2的方式减去y(x),得到二进制多项式 。 就是包含了CRC校验码的待发送字符串。从CRC的编码规则可以看出,CRC编码实际上是将代发送的m位二进制多项式t(x)转换成了可以被g(x)除尽的m+r位二进制多项式,所以解码时可以用接受到的数据去除g(x),如果余数位零,则表示传输过程没有错误;如果余数不为零,则在传输过程中肯定存在错误。许多CRC的硬件解码电路就是按这种方式进行检错的。同时可以看做是由t(x)和CRC校验码的组合,所以解码时将接收到的二进制数据去掉尾部的r位数据,得到的就是原始数据。为了更清楚的了解CRC校验码的编码过程,下面用一个简单的例子来说明CRC校验码的编码过程。由于CRC-32、CRC-16、CCITT和CRC-4的编码过程基本一致,只有位数和生成多项式不一样。为了叙述简单,用一个CRC-4编码的例子来说明CRC的编码过程。设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)= ,阶数r为4,即10011。首先在t(x)的末尾添加4个0构成 ,数据块就成了1001000111000000。然后用g(x)去除,不用管商是多少,只需要求得余数y(x)。下表为给出了除法过程。除数次数 被除数/ g(x)/结果 余数 0 1 001000111000000 100111000000 1 0011 0 000100111000000 1 1 00111000000 1000000 1 0011 0 00001000000 2 1 000000 1100 1 0011 0 001100 从上面表中可以看出,CRC编码实际上是一个循环移位的模2运算。对CRC-4,我们假设有一个5 bits的寄存器,通过反复的移位和进行CRC的除法,那么最终该寄存器中的值去掉最高一位就是我们所要求的余数。所以可以将上述步骤用下面的流程描述://reg是一个5 bits的寄存器把reg中的值置0. 把原始的数据后添加r个0. While (数据未处理完) Begin If (reg首位是1) reg = reg XOR 0011. 把reg中的值左移一位,读入一个新的数据并置于register的0 bit的位置。 Endreg的后四位就是我们所要求的余数。这种算法简单,容易实现,对任意长度生成多项式的G(x)都适用。在发送的数据不长的情况下可以使用。但是如果发送的数据块很长的话,这种方法就不太适合了。它一次只能处理一位数据,效率太低。为了提高处理效率,可以一次处理4位、8位、16位、32位。由于处理器的结构基本上都支持8位数据的处理,所以一次处理8位比较合适。为了对优化后的算法有一种直观的了解,先将上面的算法换个角度理解一下。在上面例子中,可以将编码过程看作如下过程:由于最后只需要余数,所以我们只看后四位。构造一个四位的寄存器reg,初值为0,数据依次移入reg0(reg的0位),同时reg3的数据移出 reg。有上面的算法可以知道,只有当移出的数据为1时,reg才和g(x)进行XOR运算;移出的数据为0时,reg不与g(x)进行XOR运算,相当与和0000进行XOR运算。就是说,reg和什么样的数据进行XOR移出的数据决定。由于只有一个bit,所以有 种选择。上述算法可以描述如下,//reg是一个4 bits的寄存器初始化t[]={0011,0000}把reg中的值置0. 把原始的数据后添加r个0. While (数据未处理完) Begin 把reg中的值左移一位,读入一个新的数据并置于register的0 bit的位置。reg = reg XOR t[移出的位]End上面算法是以bit为单位进行处理的,可以将上述算法扩展到8位,即以Byte为单位进行处理,即CRC-32。构造一个四个Byte的寄存器reg,初值为0x00000000,数据依次移入reg0(reg的0字节,以下类似),同时reg3的数据移出reg。用上面的算法类推可知,移出的数据字节决定reg和什么样的数据进行XOR。由于有8个bit,所以有 种选择。上述算法可以描述如下://reg是一个4 Byte的寄存器初始化t[]={…}//共有 =256项把reg中的值置0. 把原始的数据后添加r/8个0字节. While (数据未处理完) Begin 把reg中的值左移一个字节,读入一个新的字节并置于reg的第0个byte的位置。reg = reg XOR t[移出的字节]End算法的依据和多项式除法性质有关。如果一个m位的多项式t(x)除以一个r阶的生成多项式g(x), ,将每一位(0=<k<m)提出来,在后面不足r个0后,单独去除g(x),得到的余式位 。则将后得到的就是t(x)由生成多项式g(x)得到的余式。对于CRC-32,可以将每个字节在后面补上32个0后与生成多项式进行运算,得到余式和此字节唯一对应,这个余式就是上面算法种t[]中的值,由于一个字节有8位,所以t[]共有=256项。多项式运算性质可以参见参考文献[1]。这种算法每次处理一个字节,通过查表法进行运算,大大提高了处理速度,故为大多数应用所采用。
2025年07月14日
47 阅读
0 评论
0 点赞
2025-07-14
系统自带的最不起眼但又最强的杀毒工具 此博文包含图片 (2008-06-09 09:32:11)
Windows系统集成了无数的工具,它们各司其职,满足用户不同的应用需求。其实这些工具“多才多艺”,如果你有足够的想象力并且善于挖掘,你会发现它们除了本行之外还可以帮我们杀毒。不信?你看吧! 一、任务管理器给病毒背后一刀 Windows任务管理器是大家对进程进行管理的主要工具,在它的“进程”选项卡中能查看当前系统进程信息。在默认设置下,一般只能看到映像名称、用户名、CPU占用、内存使用等几项,而更多如I/O读写、虚拟内存大小等信息却被隐藏了起来。可别小看了这些被隐藏的信息,当系统出现莫名其妙的故障时,没准就能从它们中间找出突破口。 1.查杀会自动消失的双进程木马 前段时间朋友的电脑中了某木马,通过任务管理器查出该木马进程为“system.exe”,终止它后再刷新,它又会复活。进入安全模式把c:\windows\system32\system.exe删除,重启后它又会重新加载,怎么也无法彻底清除它。从此现象来看,朋友中的应该是双进程木马。这种木马有监护进程,会定时进行扫描,一旦发现被监护的进程遭到查杀就会复活它。而且现在很多双进程木马互为监视,互相复活。因此查杀的关键是找到这“互相依靠”的两个木马文件。借助任务管理器的PID标识可以找到木马进程。 调出Windows任务管理器,首先在“查看→选择列”中勾选“PID(进程标识符)”,这样返回任务管理器窗口后可以看到每一个进程的PID标识。这样当我们终止一个进程,它再生后通过PID标识就可以找到再生它的父进程。启动命令提示符窗口,执行“taskkill /im system.exe /f”命令。刷新一下电脑后重新输入上述命令如图1,可以看到这次终止的system.exe进程的PID为1536,它属于PID为676的某个进程。也就是说PID为1536的system.exe进程是由PID为676的进程创建的。返回任务管理器,通过查询进程PID得知它就是“internet.exe”进程进程。(如图)http://www.news365.com.cn/wxpd/sm/fwpt/200804/W020080410345690783785.jpg 找到了元凶就好办了,现在重新启动系统进入安全模式,使用搜索功能找到木马文件c:\windows\internet.exe ,然后将它们删除即可。前面无法删除system.exe,主要是由于没有找到internet.exe(且没有删除其启动键值),导致重新进入系统后internet.exe复活木马。 2.揪出狂写硬盘的P2P程序 单位一电脑一开机上网就发现硬盘灯一直闪个不停,硬盘狂旋转。显然是本机有什么程序正在进行数据的读取,但是反复杀毒也没发现病毒、木马等恶意程序。 打开该电脑并上网,按Ctrl+Alt+Del键启动了任务管理器,切换到“进程”选项卡,点击菜单命令“查看→选择列”,同时勾选上“I/O写入”和“I/O写入字节”两项。确定后返回任务管理器,发现一个陌生的进程hidel.exe,虽然它占用的CPU和内存并不是特别大,但是I/O的写入量却大得惊人,看来就是它在捣鬼了,赶紧右击它并选择“结束进程”终止,果然硬盘读写恢复正常了。 二、系统备份工具杀毒于无形 笔者曾遭遇一个无法删除的病毒“C:\Program Files\Common Files\PCSuite\rasdf.exe”,同时也无法复制这个文件,如何清除它。笔者通过系统备份工具清除了该病毒,操作过程如下: 第一步:单击“开始→所有程序→附件→系统工具→备份”,打开备份或还原向导窗口,备份项目选择“让我选择要备份的内容”,定位到“C:\Program Files\Common Files\PCSuite”。 第二步:继续执行备份向导操作,将备份文件保存为“g:\virus.bkf”,备份选项勾选“使用卷阴影复制”,剩余操作按默认设置完成备份。 第三步:双击“g:\virus.bak”,打开备份或还原向导,把备份还原到“g:\virus”。接着打开“g:\virus”,使用记事本打开病毒文件“rasdf.exe”,然后随便删除其中几行代码并保存,这样病毒就被我们使用记事本破坏了(它再也无法运行)。 第四步:操作同上,重新制作“k:\virus”的备份为“k:\virus1.bkf”。然后启动还原向导,还原位置选择“C:\Program Files\Common Files\PCSuite\”,还原选项选择“替换现有文件”。这样,虽然当前病毒正在运行,但备份组件仍然可以使用坏的病毒文件替换当前病毒。还原完成后,系统提示重新启动,重启后病毒就不会启动了(因为它已被记事本破坏)。 三、记事本借刀杀人 1.双进程木马的查杀 现在,越来越多的木马采用双进程守护技术保护自己,就是两个拥有同样功能的代码程序,不断地检测对方是否已经被别人终止,如果发现对方已经被终止了,那么又开始创建对方,这给我们的查杀带来很大的困难。不过,此类木马也有“软肋”,它只通过进程列表进程名称来判断被守护进程是否存在。这样,我们只要用记事本程序来替代木马进程,就可以达到“欺骗”守护进程的目的。 下面以某变种木马的查杀为例。中招该木马后,木马的“internet.exe”和“systemtray.exe”两个进程会互相监视。当然,我们中招的时候大多不知道木马具体的监护进程。不过,通过进程名称可以知道,“systemtray.exe”是异常的进程,因为系统正常进程中没有该进程。下面使用替换方法来查杀该木马。 第一步:单击“开始→运行”,输入“Msinfo32”打开系统信息窗口,展开“系统摘要→软件环境→正在运行任务”,这里可以看到“systemtray.exe”路径在“C:\Windows\System32”下。 第二步:打开“C:\Windows\System32”,复制记事本程序“notepad.exe”到“D:\” ,同时重命名为“systemtray.exe”。 第三步:打开记事本程序,输入下列代码,保存为“shadu.bat”,放置在桌面(括号为注释,无须输入): @echo off Taskkill /f /im systemtray.exe (使用taskkill命令强行终止“systemtray.exe”进程) Delete C:\Windows\System32\systemtray.exe (删除病毒文件) Copy d:\systemtray.exe C:\Windows\System32(替换病毒文件) 第四步:现在只要在桌面运行“shadu.bat”,系统会将“systemtray.exe”进程终止并删除,同时把改名的记事本程序复制到系统目录。这样,守护进程会“误以为”被守护进程还存在,它会立刻启动一个记事本程序。 第五步:接下来我们只要找出监视进程并删除即可,在命令提示符输入: “taskkill /f /im systemtray.exe ”,将守护进程再生的“systemtray.exe”终止,可以看到“systemtray.exe”进程是由“PID 3288的进程”创建的,打开任务管理器可以看到“PID 3288的进程”为“internet.exe”,这就是再生进程的“元凶”。 第六步:按照第一步方式,打开系统信息窗口可以看到“internet.exe”也位于系统目录,终止“internet.exe”进程并进入系统目录把上述两个文件删除即可。 2.使病毒失效并删除 大家知道,文件都是由编码组成的,记事本程序理论上可以打开任意文件(只不过有些会显示为乱码)。我们可以将病毒打开方式关联到记事本,使之启动后变成由记事本打开,失去作恶的功能。比如,一些顽固病毒常常会在注册表的“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run”等启动位置生成难以删除的键值,达到恶意启动的目的。下面使用记事本来“废”掉病毒的生命力。 第一步:启动命令提示符,输入“ftype exefile=notepad.exe %1”,把所有EXE程序打开方式关联到记事本程序,重启系统后我们会发现桌面自动启动好几个程序,这里包括系统正常的程序如输入法、音量调整程序等,当然也包括恶意启动的流氓程序,不过现在都被记事本打开了。 第二步:根据记事本窗口标题找到病毒程序,比如上例的systemtray.exe程序,找到这个记事本窗口后,单击“文件→另存为”,我们就可以看到病毒具体路径在“C:\Windows\System32”下。现在关掉记事本窗口,按上述路径提示进入系统目录删除病毒即可。 第三步:删除病毒后就可以删除病毒启动键值了,接着重启电脑,按住F8,然后在安全模式菜单选择“带命令提示的安全模式”,进入系统后会自动打开命令提示符。输入“ftype exefile="%1"%*”恢复exe文件打开方式即可。 四、注册表映像劫持让病毒没脾气 现在病毒都会采用IFO的技术,通俗的讲法是映像劫持,利用的是注册表中的如下键值 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options位置来改变程序调用的,而病毒却利用此处将正常的杀毒软件给偷换成病毒程序。恰恰相反,让我们自己可以利用此处欺瞒病毒木马,让它实效。可谓,瞒天过海,还治其人。 下面我们以屏蔽某未知病毒KAVSVC.EXE为例,操作方法如下: 第一步:先建立以下一文本文件,输入以下内容,另存为1.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\KAVSVC.EXE] "Debugger"="d:\1.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\KAVSVC.EXE] "Debugger"="d:\1.exe" (注:第一行代码下有空行。) 第二步:双击导入该reg文件后,确定。 第三步:点“开始→运行”后,输入KAVSVC.EXE。 提示:1.exe可以是任意无用的文件,是我们随意创建一个文本文件后将后缀名.txt改为.exe的, 总结:当我们饱受病毒木马的折磨,在杀毒软件无能为力或者感觉“杀鸡焉用宰牛刀”时,不妨运用系统工具进行病毒木马的查杀,说不定会起到意想不到的效果。
2025年07月14日
21 阅读
0 评论
0 点赞
2025-07-14
NTFS和FAT文件系统中的尺寸限制 (2008-06-09 09:31:31)
NTFS和FAT文件系统中的尺寸限制每个文件系统都支持一个最大的卷尺寸,文件尺寸,已经每卷可容纳的文件最大数量。因为FAT16和FAT32分别支持4GB和32GB的卷,要创建大于32GB的卷,就必须使用NTFS格式。如果在多系统共存的计算机中使用FAT16或FAT32格式,就必须对其尺寸限制有所了解:一、小于16MB的FAT卷会被格式化为FAT12格式二、使用MS-DOS,Win95,Win98,WinMe,以及其它很多操作系统的计算机,其FAT16卷如果超过2GB就不可访问了。这个2GB的限制是由于这些操作系统不支持超过32KB的簇。三、理论上说,FAT32卷可以达到约8TB;而实际上,WinXPProfessional可以格式化的最大FAT32卷也就是32GB而已。所以,必须使用NTFS格式来格式化超过32GB的卷。但,WinXPPro可以读写用其它操作系统格式化的更大的FAT32卷。四、如果要建立包含多个物理磁盘的卷,例如跨区卷和带区卷,那么卷的大小就取决于每块磁盘上所使用了的空间。在多物理磁盘上创建大于32GB的卷,仍然要使用NTFS格式。有关FAT16和FAT32的更多信息,参见“FAT文件系统”。NTFS卷上的最大尺寸理论上,NTFS的最大卷包含264减1个簇。实际上,WinXPPro中,NTFS卷的最大限制是232减1个簇。举例来说,如果是64KB的簇,那NTFS卷的最大尺寸就是256TB减64KB这么大。如果使用默认的4KB簇,NTFS卷的最大尺寸就是16TB减4KB这么大了。由于主引导记录(MBR)中分区表的限制,硬盘仅仅支持最大2TB的分区。要超过这个限制,必须建立NTFS的动态卷。WindowsXPProfessional使用了一种有别于分区表的特殊的数据库来管理动态卷,这就是动态卷可以超过在分区表中2TB限制的原因。动态NTFS卷可以达到NTFS支持的卷尺寸的最大限制。使用GUID分区表的安腾计算机也可以支持超过2TB的NTFS卷。注如果在一个NTFS文件夹中包含了大量的(300,000或更多)的文件,请禁止生成短文件名,特别是当长文件名的前6个字符相近的时候。详见后续译文“NTFS性能优化”。NTFS性能优化NTFS的性能受很多因素影响,比如簇的大小,磁盘碎片的多少,以及象反病毒软件等应用程序的使用情况等等。此外,NTFS的一些特性,如压缩和索引服务同样可能影响其性能。可以通过下面的一些方法来优化NTFS的性能。簇的大小在格式化一个NTFS卷之前,你首先要对自己要保存在该卷上的文件的类型做一个评估,以便决定是否使用默认的簇大小。即,重要的是先回答:这些(要保存)的文件是否大小基本一致?是否大部分文件的尺寸要小于默认簇的大小?这些文件的尺寸是不变的还是常变的?如果大部分文件都小于默认簇的大小(比如4KB)并且都保持文件尺寸不变,使用默认簇大小将减小磁盘空间的浪费。因为,此时簇的尺寸变小将增加碎片产生的可能,尤其当这些(4KB左右)的文件占用了超过一个簇的空间的时候。所以这时候可以在格式化卷的时候对簇的大小做相应的设定。如果要存储的文件会比较大,或者尺寸可能会增大,就该用16或32KB的簇来替代4KB的簇。注意:压缩功能只在4KB或更小的簇为基本存储单位的卷上才可以实现。在Windows2000或更早版本的windows产品中从FAT到NTFS转换的时候也可能影响簇的大小。因为,被转换的卷,簇的大小是512byte,主文件表(MFT)也很可能在转换过程中产生碎片。作为优化性能的考虑,应该备份该卷的所有数据,重新格式化该卷,并在格式化的过程中指定簇的尺寸,然后再恢复数据。如果想进一步了解对簇的尺寸选择的相关知识,请参考本章前面讲过的“簇尺寸”内容。短文件名每当建立一个长文件名的文件时,NTFS就会自动产生一个类似8-3短文件名的备份条目。8-3短文件名即用8个字符表示文件名,3个字符表示文件的扩展名,文件名和扩展名之间用一个句点隔开。如果在一个文件夹中包含了非常多(例如300,000个或更多)的文件,而且所有文件都采用了长文件名规则命名并且初始的字符都相同,那么建立这些文件所需的时间就要增多。这是由于NTFS是根据长文件名的前6个字符来建立短文件名索引的。在多于300,000个文件的一个文件夹中,由NTFS用8-3规则建立文件名相似的长文件所对应的短文件名备份时会产生冲突。这种在建立新的短文件名时和已经存在的短文件名之间的冲突,会使NTFS在建立新文件的时候,所耗费的时间是没有这种冲突时的6到8倍。要减少这种在建立新文件时所耗费的时间,可以在命令提示符下使用fsutilbehaviorset这个命令来禁用8-3规则以优化文件系统性能。详见本章最后部分:“在NTFS上建立MS-DOS-可读取的文件名”。如果既要让NTFS使用8-3命名规则建立文件名备份,又要提高其系统性能,可以通过建立命名规划,使长文件名在文件名的开始而不是在结尾来体现文件名的不同。详见“WindowsXPProfessional中的文件名”一节。文件夹结构NTFS支持在每个卷上有大量文件和文件夹的多个卷的存在,由使用者来组织文件夹结构以达到最优化的工作表现。在决定一个文件夹的结构时,下面几点是要考虑到的:如果要频繁和快速地建立、删除、打开和关闭其中的文件,就要尽量避免把大量文件放入一个文件夹内。最好的解决方案就是把它们分门别类地放到几个子文件夹中去,这样才能条理清晰地分配自己的工作量。要是文件之间没有彼此的关联,无法放到几个逻辑上有关联的文件夹中去,那就应该禁用8-3文件名的生成。而如果的确需要8-3文件名(译者注:例如在dos下兼容的需要),提前制订自己的命名计划,使长文件名的前6个字符不尽相同。关键点文件夹越大,运行chkdsk.exe命令所需的时间越长。详见“磁盘与文件系统常见问题集”。磁盘碎片存在大量碎片的卷,其性能要比经常做碎片整理的卷差。可以通过磁盘碎片整理控制台或者命令提示符下的defrag命令在每周空闲的时候进行磁盘碎片的整理。详见本章前面的小节“对NTFS卷进行磁盘整理”。反病毒程序反病毒程序在系统之上扫描病毒,就像撑起了一个保护伞,这也影响到文件系统的性能。这种影响对不同的杀毒软件来说也不一样。在评价杀毒软件的时候,要看哪一个软件在进行基线测试的时候对系统环境影响最小。众多反病毒软件都提供了随用户意愿来自定义软件运行参数的调节选项以降低对操作系统性能的影响。压缩功能压缩功能同样增加了系统的额外开销。即使在同一计算机内拷贝文件的时候,压缩文件系统也要经历一个解压缩、拷贝、重压缩为新文件这样一个过程。详见本章前面的小节“文件压缩”。索引服务对Win2000/XP用户来说,如果经常在NTFS卷上查找文件,可以通过开启索引服务来大大减少查找的时间。就是对资料的内容(而不仅仅是标题,译者注)进行查找的时候,索引服务同样起作用。开启索引服务后,NTFS会使用系统的一部分资源来建立和维护索引,跟踪文件更改并对这种更改进行记录。而这些操作仅仅带来很小的性能牺牲。实际上,对于经常进行搜索的卷来说,启用索引服务所带来的查找速度的提升幅度,要远远高于由此带来的文件系统性能下降的幅度。详见本章前面小节“索引服务”。最近访问时间NTFS卷上的每个文件和文件夹都有一个属性,就是“最近访问时间”(LAT),这个属性表明了该文件或文件夹的最后访问时间。比如当某用户打开文件夹列表,在文件夹中添加文件,读取一个文件,或者对某文件进行更改的时候,都会改变这个属性。LAT是存储在内存中并最终在磁盘的两个地方完成写入:一、MFT记录中文件属性的部分二、该文件的目录项中。目录项存储在包含该文件的文件夹中,包含多个物理连接的文件(译者理解:文件在空间上的物理存储是不一定连续的,可能有多个物理片段,每个片段称为一个“连接”)也就有多个目录项。磁盘上已经存在的LAT并不总是最新的,这是由于NTFS每隔一个小时才将在内存中打开的文件的该属性保存一次。在用户或应用程序对文件进行只读操作的时候,NTFS也会延后“最后访问时间”属性的写入,比如在列文件夹目录或者读取(但不是更改)文件夹中的一个文件的时候。如果对于“读”操作,LAT属性也要保持最新的话,所有的“读”操作就变成了“写”操作,这对NTFS的性能是影响很大的。注基于文件属性的LAT,即使它的所有在当前存储于磁盘上的值完全不正确,也无关紧要。NTFS会随时将磁盘上的可疑属性值用内存中存储的精确值来替换。NTFS最终会在下列位置,将内存中的LAT存储到磁盘上。在文件的属性中如果当前内存中的LAT和上次保存在硬盘上的LAT有一个小时的时差,或者内存中对该文件的所有进程都结束的时候,NTFS就会对该文件的LAT属性进行更新。例如,如果当前一个文件的LAT是1:00P.M.,而你在1:30P.M.又读取了该文件,NTFS不会更新该LAT。而如果你又在2:00P.M.的时候再次读取该文件,NTFS会把该文件的LAT属性更新到2:00P.M.,因为此时该文件的LAT存储属性为1:00P.M.而内存中的属性为2:00P.M.。在文件的目录项中在下列事件发生时,NTFS更新目录项:当NTFS更新文件的LAT的时候,检测到该文件的LAT比在目录项中存储的LAT差别在一个小时以上的时候。这种更新最为典型地发生在当某个应用程序关闭在文件夹中用于访问该文件的句柄的时候。如果该程序延长该文件句柄的打开时间,就会在更新目录项的时候出现迟滞。当NTFS更新其它的文件属性比如“最近更改时间”(LMT),而LAT的更新未决的时候。在这种情况下,NTFS会在不影响系统性能的前提下,随其它属性的更新而更新LAT。注NTFS不会在内存中对某文件调用的所有进程都结束的时候更新该文件的目录项。如果有某个NTFS卷,包含了大量的文件夹和文件,那么当某个应用程序对每个文件依次进行简短的访问的时候,由建立LAT更新所占用的I/O带宽会在全部的I/O带宽中占据非常明显的比重。为了加快访问文件夹或文件的速度,可以使用fsutilbehaviorsetdisablelastaccess这个命令来禁止更新LAT。在应用了该命令并重启计算机后,LAT就不会再被更新了。此时建立一个新的文件,它的LAT就会永远保持在它最初建立的时间上。要了解fsutilbehaviorsetdisablelastaccess命令的更多信息,请查看WinXP的帮助
2025年07月14日
6 阅读
0 评论
0 点赞
1
...
47
48
49
...
78