版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机病毒与防治计算机病毒与防治课程小组1教学单元5-3简单的杀毒程序实例“熊猫烧香”病毒杀毒程序 批处理文件介绍冲击波病毒杀毒源代码分析 第一讲 病毒查杀程序分析计算机病毒与防治课程小组sxs.exe病毒查杀程序分析1099病毒查杀程序分析2sxs.exe病毒查杀程序分析sxs.exe病毒查杀程序是一个批处理程序,双击执行即可清除sxs.exe病毒。请大家根据搜集的资料一起来讨论什么是批处理程序?批处理文件的作用是什么? 1.批处理程序简介批处理文件(Batch File,简称 BAT文件)是一种在DOS 下最常用的可执行文件。它具有灵活的操纵性,可适应各种复杂的计算机操作。所谓的批处理,就
2、是按规定的顺序自动执行若干个指定的DOS命令或程序。即是把原来一个一个执行的命令汇总起来,成批的执行,而程序文件可以移植到其它电脑中运行,因此可以大大节省命令反复输入的繁琐。同时批处理文件还有一些编程的特点,可以通过扩展参数来灵活的控制程序的执行,所以在日常工作中非常实用。3sxs.exe病毒查杀程序分析 批处理文件起源于DOS时代,在DOS时代的扩展名为.bat(即是batch的缩写),可使用Copy con、Edit、WPS等DOS程序来编辑。 随着时代的发展,现今批处理文件已经不止支持DOS下的程序,同时也支持Windows环境程序的运行,在Windows NT以后的平台中,还加入了以.
3、cmd为扩展名的批处理文件,其性能比.bat文件更加优越,执行也与.bat文件一样方便快捷。 注:由于.bat文件是基于16平台下的程序,在Windows NT及以后的32位中运行时偶尔会出现堆栈溢出之类的错误,所以建议在新的系统中尽可能的采用.cmd扩展的批处理文件代替.bat的文件。 2.批处理程序发展史4sxs.exe病毒查杀程序分析 其实编写批处理文件并没有什么编程环境的要求,任何一个文本编辑器都可以用来编写批处理文件,像DOS下的Edit、WPS以及DOS自带的Copy命令的扩展copy con命令就可以编写,Windows下的记事本、写字板等。 计算机病毒与防治课程小组3如何来编写
4、批处理文件5sxs.exe病毒查杀程序分析 由于批处理文件其实就是一个命令的集合,所以批处理文件的工作平台是由这些命令所工作的平台来决定,今天我们在这里主要研究的是Microsoft环境下的批处理文件(.bat和.cmd文件),所以这里的平台,当然也就是指Microsoft的DOS和Windows系统。4批处理文件的工作平台6sxs.exe病毒查杀程序分析现今Windows环境已经如此普及,程序的运行只要点击几次鼠标就可以完成,所以造成很多人都已经不了解批处理文件的作用,特别是那些新接触电脑的用户,而更多的了解它的人却是那些程序设计人员,但不可否认,批处理文件有很多优点是其它程序所无法比拟的,
5、最主要的优点就是编写环境的宽松,编写人员能力要求较低。5批处理文件的应用7sxs.exe病毒查杀程序分析下面我们来分析这个批处理程序:echo off (不显示后续命令行及当前命令行,echo off表示在此语句后所有运行的命令都不显示命令行本身, 与echooff相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身。)taskkill /f /im sxs.exe /t (指定要强行终止进程sxs.exe,并且同时终止由此进程创建的的图像和任何由此启动的子进程。)taskkill /f /im SVOHOST.exe /t (指定要强行终止进程SVOHOST.exe,并且同时终止由
6、此进程创建的的图像和任何由此启动的子进程。)(接下来是对C:,D:,E:盘下的文件进行操作。)c: attrib sxs.exe -a -h -s (attrib显示或更改文件属性。此处是去除sxs.exe这个文件的存档属性、系统文件属性和隐藏属性)1.sxs杀毒程序分析8sxs.exe病毒查杀程序分析del /s /q /f sxs.exe (/S表示从所有子目录删除指定文件。/q表示安静模式,删除全局通配符时,不要求确认。f/表示强制删除只读文件sxs.exe)attrib autorun.inf -a -h -s (去除autorun.inf这个文件的存档属性、系统文件属性和隐藏属性)d
7、el /s /q /f autorun.inf (/S表示从所有子目录删除指定文件。/q表示安静模式,删除全局通配符时,不要求确认。f/表示强制删除只读文件sxs.exe)d: attrib sxs.exe -a -h -s del /s /q /f sxs.exe attrib autorun.inf -a -h -s del /s /q /f autorun.inf 9sxs.exe病毒查杀程序分析e: attrib sxs.exe -a -h -s del /s /q /f sxs.exe attrib autorun.inf -a -h -s del /s /q /f autorun.
8、inf reg delete HKLMSoftwareMicrosoftwindowsCurrentVersionexplorerAdvancedFolderHiddenSHOWALL /V CheckedValue /f (从注册表删除项或子项,后面跟的是子项的特定路径,此处是本地计算机的子目录树HKLM) (/V删除子项下的特定项CheckedValue。如果未指定项,则将删除子项下的所有项和子项。/f表示无需请求确认而删除现有的注册表子项或项,此处要删除的为CheckedValue项。)10sxs.exe病毒查杀程序分析reg add (将新的子项或项添加到注册表中。)HKLMSOFTW
9、AREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALL /v CheckedValue /t REG_DWORD /d 1 /f (/v指定要添加到指定子项下的项名称为CheckedValue,/t指定此项值的数据类型为REG_DWORD,/d指定新注册表项的值为1,/f不用询问信息而直接添加子项或项。)REG DELETE HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun /V sxs.exe /f REG DELETE HKLMSOFTWAREMicrosoftWin
10、dowsCurrentVersionRun /V SVOHOST.exe /f exit (退出批处理命令)11熊猫烧香杀毒程序”熊猫烧香“杀毒程序和sxs.exe杀毒程序类似,也是一个批处理程序,根据前面第3章讲到的手工清除“熊猫烧香”病毒的步骤,不难写出“熊猫烧香”病毒杀毒程序,请大家自行阅读理解课本上熊猫烧香杀毒程序。 ”熊猫烧香“杀毒程序121099病毒查杀程序 1099病毒是一个文件型病毒,通常感染EXE和COM文件,具体特征如下:(1)EXE文件 文件头第10h、11h两字节被改为45h、06h,病毒特征码为2Eh 8Ch 06h 32h 0Eh 1Fh B9h Dah 00h B
11、eh 11h 03h 6Ah 54h 07h,文件头0E-11h、14h-17h共8个字节被转移到病毒偏移127h处,病毒体的位置为16的倍数。(2)COM文件文件头前11个字节被转移,保存方法与EXE文件一样,也是在相对病毒头偏移127h处。文件开头0-3字节为0Eh 8Ch C8h 05h,6-A字节为50h 68h 00h 01h CBh。1.1099病毒的特征码分析131099病毒查杀程序2.查杀1099病毒的程序明白了1099病毒的感染方式后,我们就可以动手编写查杀该病毒的程序了,下述程序采用的工具是TC2.0。#include “dos.h”#include “dir.h”#inc
12、lude “io.h”#include “font1.h”typedef unsigned char byte; typedef unsigned int word; int cur_dir(char *pathname);clean(char *fnx);int kv1099(int fp);int search(byte *a,byte *b,int place);计算机病毒与防治课程小组141099病毒查杀程序/*主函数*/main(int argc,char *argv) /*如果参数不对,则显示错误提示信息后退出,否则在指定目录中查找病毒*/if(argc!=2) printf(“用
13、法:%s路径”,argv0);else cur_dir(argv1);int cur_dir(char *pathname) /*在指定目录中查找病毒*/char fname256,fnx256,subpath256,subpath1256;struct ffblk f;int nomatch;printf(“n-”);151099病毒查杀程序计算机病毒与防治课程小组printf(“n Path=%s”,pathname); /*显示正在查找的路径*/strcpy(fname,pathname);strcat(fname,”*.*”); /*开始查找文件*/nomatch=findfirst(
14、fname,&f,0 x26);while(!nomatch)printf(“n %s”,f.ff_name);strcpy(fnx,pathname);strcat(fnx,”);strcat(fnx,f.ff_name);/*检测并消除文件病毒*/clean(fnx);nomatch=findnext(&f);161099病毒查杀程序strcpy(subpath,pathname);strcat(subpath,”*.*”);nomatch=findfirst(subpath,&f,0 x16);/*查找子目录*/while(!nomath)if(f.ff_attrib&FA_DIREC)
15、&strcmp(f.ff_name,”.”)&strcmp(f.ff_name,”.”)strcpy(subpath1,pathname);strcat(subpath1,”);strcat(subpath1,f.ff_name);/*递归检索目录*/cur_dir(subpath1);nomatch=findnext(&f);计算机病毒与防治课程小组171099病毒查杀程序/*清除病毒的函数,参数fnx是包括文件名在内的文件全路径*/clean(char *fnx)int k,fp;struct ftime ft;if(fp=open(fnx,O_RDW|O_BINARY)=-1)print
16、f(“打开文件出错!”);else k=_chmod(fnx,0); /*保存文件属性*/*保存文件日期、时间等信息*/getftime(fp,&ft);/*开始杀毒*/if(kv1099(fp)=-1) printf(“没有找到病毒!”);else printf(“已经清除!”);setftime(fp,&ft); /*恢复文件日期、时间信息*/*恢复文件属性*/chmod(fnx,1,k);/*关闭文件*/close(fp);计算机病毒与防治课程小组18冲击波病毒杀毒源代码分析 冲击波(Worm.Blaster)病毒2003年8月12日全球爆发,该病毒由于是利用系统的RPC漏洞进行传播,因
17、此,没有打补丁的电脑用户都会感染该病毒,从而使电脑出现系统重启、无法正常上网等现象。冲击波病毒(Worm.Blaster)感染症状:(1)Windows XP、Server 2003计算机会弹出RPC服务终止对话框,莫名其妙地死机或重新启动计算机;重起之后,它们开始扫描互联网,寻找有安全漏洞的电脑系统进行感染。一旦攻击成功,病毒体将会被传送到对方电脑中进行感染,使对方系统操作异常、不停重新启动,甚至导致系统崩溃。 (2)IE浏览器不能正常地打开链接;无法正常浏览网页;不能收发邮件;DNS和IIS服务遭到非法拒绝等。(3)不能复制粘贴; 冲击波简介19冲击波病毒杀毒源代码分析 (4)有时出现应用
18、程序,比如Word、Excel、Powerpoint等文件无法正常运行,弹出“找不到链接文件”的对话框。(5)网络变慢;(6)最重要的是,在任务管理器里有一个叫“msblast.exe”的进程在运行!(7)SVCHOST.EXE产生错误会被WINDOWS关闭,您需要重新启动程序(8)在WINNTSYSTEM32WINS下有DLLhost.exe和svchost.exe冲击波”病毒Worm.msBlast是第一个利用RPC漏洞进行攻击和传染的病毒,漏洞存在于Windows NT、Windows 2000、Windows XP和微软主要操作系统Windows Server 2003,并且该病毒会操
19、纵135、4444、69端口,危害系统。 20冲击波病毒杀毒源代码分析清除该病毒除了手工清除方法还有如下程序也能完成清除病毒的任务。程序源代码如下:#define DEBUGMSG#include #include #include #include #include #include Psapi.h#pragma comment(lib,Psapi.lib)#define erron GetLastError ()21计算机病毒与防治课程小组冲击波病毒杀毒源代码分析TCHAR name50=0; /保存虫虫的文件名+路径FILE *Gfp=NULL; /输出到文件BOOL ScanVXER
20、(LPTSTR V_ V_ V_Length,TCHAR *V_Contents);/匹配特征码函数BOOL Scan (LPTSTR );/文件遍历函数BOOL ProcessVXER (void);/枚举进程函数BOOL KillProc (DWORD ProcessID);/杀进程函数BOOL EnablePrivilege(LPTSTR PrivilegeName); /提升权限函数BOOL RegDelVXER (void);22冲击波病毒杀毒源代码分析/删除注册表项函数void Usage (LPCTSTR Parameter);/帮助函数int main (int argc, T
21、CHAR *argv)if (argc!=2)Usage(argv0);return 0;#ifdef DEBUGMSGGfp=fopen(VXER.txt,a+);23冲击波病毒杀毒源代码分析if (Gfp=NULL)printf(Open VXER.txt failn);return 0;fprintf(Gfp,%snn,-);#endifif (strlen(argv1)10)printf(Fine name no larger than 10n);return 0;24冲击波病毒杀毒源代码分析if (!(Scan(argv1)#ifdef DEBUGMSGprintf(Scan() G
22、etLastError reports %dn,erron);#endiffclose(Gfp);return 0;if (!(ProcessVXER()#ifdef DEBUGMSGprintf(ProcessesVXER() GetLastError reports %dn,erron);#endiffclose(Gfp);return 0;25冲击波病毒杀毒源代码分析if (!(RegDelVXER()#ifdef DEBUGMSGprintf(RegDelVXER() GetLastError reports %dn,erron);#endiffclose(Gfp); return 0
23、;fclose(Gfp);return 0;26冲击波病毒杀毒源代码分析BOOL Scan (LPTSTR )WIN32_FIND_DATA Find;DWORD lpBufferLength=255;TCHAR lpBuffer255=0;TCHAR DirBuffer255=0;HANDLE hFind=NULL;UINT count=0;long ; /偏移地址int ; /长度27冲击波病毒杀毒源代码分析TCHAR Contents=0 x49, 0 x20, 0 x6A, 0 x75, 0 x73, 0 x74, 0 x20, 0 x77, 0 x61, 0 x6E, 0 x74,
24、0 x20, 0 x74, 0 x6F, 0 x20, 0 x73,0 x61, 0 x79, 0 x20, 0 x4C, 0 x4F, 0 x56, 0 x45, 0 x20, 0 x59, 0 x4F, 0 x55, 0 x20, 0 x53, 0 x41, 0 x4E, 0 x21,0 x21, 0 x20, 0 x62, 0 x69, 0 x6C, 0 x6C, 0 x79, 0 x20, 0 x67, 0 x61, 0 x74, 0 x65, 0 x73, 0 x20, 0 x77, 0 x68,0 x79, 0 x20, 0 x64, 0 x6F, 0 x20, 0 x79, 0
25、x6F, 0 x75, 0 x20, 0 x6D, 0 x61, 0 x6B, 0 x65, 0 x20, 0 x74, 0 x68,0 x69, 0 x73, 0 x20, 0 x70, 0 x6F, 0 x73, 0 x73, 0 x69, 0 x62, 0 x6C, 0 x65, 0 x20, 0 x3F, 0 x20, 0 x53, 0 x74,0 x6F, 0 x70, 0 x20, 0 x6D, 0 x61, 0 x6B, 0 x69, 0 x6E, 0 x67, 0 x20, 0 x6D, 0 x6F, 0 x6E, 0 x65, 0 x79, 0 x20,0 x61, 0 x6
26、E, 0 x64, 0 x20, 0 x66, 0 x69, 0 x78, 0 x20, 0 x79, 0 x6F, 0 x75, 0 x72, 0 x20, 0 x73, 0 x6F, 0 x66,0 x74, 0 x77, 0 x61, 0 x72, 0 x65, 0 x21, 0 x21;/从冲击波中提取出来的,用做特征码28冲击波病毒杀毒源代码分析/获取系统目录的完整路径if (GetSystemDirectory(DirBuffer,lpBufferLength)!=0)if (SetCurrentDirectory(DirBuffer)!=0) /设置为当前目录hFind=Find
27、First); /查找文件if (hFind=INVALID_HANDLE_VALUE)#ifdef DEBUGMSGprintf(FindFirstFile() GetLastError reports %dn,erron);#endifif (hFind!=NULL)FindClose(hFind);return FALSE;29冲击波病毒杀毒源代码分析elsecount+;/获得文件的完整路径if (GetFullPathName(Find)!=0)#ifdef DEBUGMSGfprintf(Gfp,File:tt%sn,lpBuffer);#elseprintf(File:tt%sn
28、,lpBuffer);#endif30冲击波病毒杀毒源代码分析else#ifdef DEBUGMSGprintf(GetFullPathName() GetLastError reports %dn,erron);#endifif (hFind!=NULL)FindClose(hFind);return FALSE;/进行特征码匹配工作ScanVXER(Find);31冲击波病毒杀毒源代码分析while (FindNext) /继续查找文件count+;/以.和.除外if (strcmp(.,Find)=0|strcmp(.,Find)=0)#ifdef DEBUGMSGprintf( inc
29、lude . and .n);#endifif (hFind!=NULL)FindClose(hFind);fclose(Gfp);exit(0);32冲击波病毒杀毒源代码分析if (GetFullPathName(Find)!=0)#ifdef DEBUGMSGfprintf(Gfp,Next File:t%sn,lpBuffer);#elseprintf(Next File:t%sn,lpBuffer);#endif33冲击波病毒杀毒源代码分析else#ifdef DEBUGMSGprintf(GetFullPathName() GetLastError reports %dn,erron
30、);#endifif (hFind!=NULL)FindClose(hFind);fclose(Gfp);exit(0);ScanVXER(Find);34冲击波病毒杀毒源代码分析fprintf(Gfp,nnn,count);fprintf(Gfp,%snn,-n);printf(n,count); /打印出查找到的文件各数if (hFind!=NULL)FindClose(hFind); /关闭搜索句柄return TRUE;BOOL ScanVXER (LPTSTR V_, /*文件名*/long V_, /偏移地址int V_Length, /长度TCHAR *V_Contents) /
31、具体内容TCHAR 255=0;35冲击波病毒杀毒源代码分析int cmpreturn=0;FILE *fp=NULL;fp=fopen(V_,rb); /以二进制只读方式打开if (fp=NULL)#ifdef DEBUGMSGprintf(fopen() FAILn);#endiffclose(fp);return FALSE;fseek(fp,V_); /把文件指针指向特征码在文件的偏移地址处fread();/读取长度为特征码长度的内容36冲击波病毒杀毒源代码分析cmpreturn=memcmp(V_Contents,);/进行特征码匹配。失败返回FALSEif (cmpreturn=0
32、)#ifdef DEBUGMSGprintf( completelyn); /打印文件匹配消息#endifstrcpy(name,V_); /将文件名保存在全局变量name中if (fp!=NULL)fclose(fp);return TRUE;elsefclose(fp);return FALSE;37冲击波病毒杀毒源代码分析BOOL ProcessVXER (void)DWORD lpidProcess1024=0;DWORD cbNeeded_1,cbNeeded_2;HANDLE hProc=NULL;HMODULE hMod1024=0;TCHAR Proc;TCHAR 50=0;U
33、INT Pcount=0;int i=0;EnablePrivilege(SE_DEBUG_NAME); /提升调试进程权限fprintf(Gfp,%snn,-Process list-);strcpy(,C:WINNTsystem32);strcat();/把文件名+路径复制到变量中/枚举进程38冲击波病毒杀毒源代码分析if (!(EnumProcesses(lpidProcess,sizeof(lpidProcess),&cbNeeded_1)#ifdef DEBUGMSGprintf(EnumProcesses() GetLastError reports %dn,erron);#end
34、ifif (hProc!=NULL)CloseHandle(hProc);return FALSE;for (i=0;i(int)cbNeeded_1/4;i+)/打开找到的第一个进程hProc=OpenProcess(PROCESS_ALL_ACCESS,FALSE,lpidProcess);39冲击波病毒杀毒源代码分析if (hProc)/枚举进程模块if (EnumProcessModules(hProc,hMod,sizeof(hMod),&cbNeeded_2)/枚举进程模块文件名,包含全路径if (GetModule(hProc,hMod0,Proc(ProcFile)#ifdef
35、 DEBUGMSGfprintf(Gfp,%5dt%sn,lpidProcess,ProcFile);#elseprintf(%5dt%sn,lpidProcess,ProcFile); /输出进程#endif/可以考虑将其注释掉,这样就不会输出进程列表了Pcount+;40冲击波病毒杀毒源代码分析/查找进程中是否包含if (strcmp()=0)/如果包含,则杀掉。KillProc为自定义的杀进程函数if (!(KillProc(lpidProcess)#ifdef DEBUGMSGprintf(KillProc() GetLastError reports %dn,erron);#endi
36、fif (hProc!=NULL)CloseHandle(hProc);fclose(Gfp);exit(0);41冲击波病毒杀毒源代码分析Delete); /进程杀掉后,再将文件删除if (hProc!=NULL)CloseHandle(hProc); /关闭进程句柄fprintf(Gfp,nProcess total:%dnn,Pcount);fprintf(Gfp,%snn,-Process end-);printf(nProcess total:%dnn,Pcount); /打印进程各数return TRUE;42冲击波病毒杀毒源代码分析BOOL KillProc (DWORD Pro
37、cessID)HANDLE hProc=NULL;/打开由ProcessVXER()传递的进程PIDhProc=OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessID);if (hProc!=NULL)/终止进程if (!(TerminateProcess(hProc,0)#ifdef DEBUGMSGprintf(TerminateProcess() GetLastError reports %dn,erron);#endifCloseHandle(hProc);return FALSE;43冲击波病毒杀毒源代码分析else#ifdef DEBUGMSG
38、printf(OpenProcess() GetLastError reports %dn,erron);#endifreturn FALSE;if (hProc!=NULL)CloseHandle(hProc);return TRUE;44冲击波病毒杀毒源代码分析BOOL EnablePrivilege(LPTSTR PrivilegeName)HANDLE hProc=NULL,hToken=NULL;TOKEN_PRIVILEGES TP;hProc=GetCurrentProcess(); /打开当前进程的一个伪句柄/打开进程访问令牌,hToken表示新打开的访问令牌标识if(!Ope
39、nProcessToken(hProc,TOKEN_ADJUST_PRIVILEGES,&hToken)#ifdef DEBUGMSGprintf(OpenProcessToken() GetLastError reports %dn,erron);#endifgoto Close;/提升权限45冲击波病毒杀毒源代码分析if(!LookupPrivilegeValue(NULL,PrivilegeName,&TP.Privileges0.Luid)#ifdef DEBUGMSGprintf(LookupPrivilegeValue() GetLastError reports %dn,erron);#endifgoto Close;TP.Privileges0.Attributes=SE_PRIVILEGE_ENABLED;TP.PrivilegeCount=1;/允许权限,主要根据TP这个结构if(!AdjustTokenPrivileges(hToken,FALSE,&TP,sizeof(TP),0,0)#ifdef DEBUGMSGprintf(AdjustTokenPrivile
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3D打印技术在航空发动机叶片制造中的工艺优化及性能提升分析教学研究课题报告
- 2026年生物燃料能源创新报告及未来五至十年能源行业替代报告
- 2025年古籍修复十年文化传承分析报告
- 2026年工业互联网智能制造报告及未来五至十年生产自动化升级报告
- 2025年数据中心十年建设发展趋势报告
- 2025安徽芜湖市湾区国有资本建设投资(集团)有限公司及其子公司第一批工作人员招聘拟录用人员笔试历年参考题库附带答案详解
- 2026年及未来5年中国玻璃钢模具行业市场调研分析及投资战略咨询报告
- 江西2025年中国农业银行江西省分行度春季招聘100人笔试历年参考题库附带答案详解
- 2026年及未来5年中国蓝莓深加工行业发展前景预测及投资方向研究报告
- 上海2025年中国农业银行上海市分行春季招聘271人笔试历年参考题库附带答案详解
- LYT 2085-2013 森林火灾损失评估技术规范
- 材料样品确认单
- 彝族文化和幼儿园课程结合的研究获奖科研报告
- 空调安装免责协议
- 《传感器与检测技术》试题及答案
- 湖北省襄樊市樊城区2023-2024学年数学四年级第一学期期末质量检测试题含答案
- 初中班会主题课件科学的复习事半功倍(共23张PPT)
- PCB封装设计规范
- GB/T 9349-2002聚氯乙烯、相关含氯均聚物和共聚物及其共混物热稳定性的测定变色法
- GB/T 32473-2016凝结水精处理用离子交换树脂
- 《水利水电工程等级划分及洪水标准》 SL252-2000
评论
0/150
提交评论