Win32病毒入门 -- ring3篇
Windows程序中的字符编码
Windows程序中的字符编码写这篇文章的起因是这么一个问题:我们在使用和安装Windows程序时,有时会看到以“2052”、“1033”这些数字为名的文件夹,这些数字似乎和字符集有关,但它们究竟是什么意思呢?研究这个问题的同时,又会遇到其它问题。
我们会谈到Windows的内部架构、Win32 API的A/W函数、Locale、ANSI代码页、与字符编码有关的编译参数、MBCS和Unicode程序、资源和乱码等,一起经历这段琐碎细节为主,间或乐趣点缀的旅程。
0 Where is Win32 APIWindows 程序有用户态和核心态的说法。
在32位地址空间中,0x80000000以下属于用户态,0x80000000以上属于核心态。
所有硬件管理都在核心态。
用户态程序的不能直接使用核心态的任何代码。
所谓核心态其实只是CPU的一种保护模式。
在x86 CPU上,用户态处于ring 3,核心态处于ring 0。
从用户态进入核心态的最常用的方法是在寄存器eax填一个功能码,然后执行int 2e。
这有点像DOS时代的DOS和BIOS系统调用。
在NT架构中这种机制被称作system service。
在核心态提供system service的有两个家伙:ntoskrnl.exe和win32k.sys。
ntoskrnl.exe是Windows的大脑,它的上层被称为Executive,下层被称作Kernel。
Win32k.sys提供与显示有关的system service。
在用户态一侧,有一个重要的角色叫作ntdll.dll,大多数system service都是它调用的。
它封装这些system service,然后提供一个API接口。
这个接口被称作native API。
native API的用户是各个子系统(subsystem),包括Win32子系统、OS/2子系统、POSIX子系统。
各个子系统为Win32、OS2、POSIX程序提供了运行平台。
实验三 32位文件型病毒
实验三32位文件型病毒实验目的:(1)了解文件型病毒制造基本原理;(2)了解病毒的感染、破坏机制、进一步认识病毒程序;(3)掌握文件型病毒的特征和内在机制;实验环境:Win2000\Win9X\WinNT\WinXP实验内容:用PE分析器对比分析文件感染病毒后的变化病毒引导说明:文件型病毒,没有引导部分演示病毒传染说明:传染范围:Virus.exe所在目录传染目标:可执行文件(.exe)传染过程:搜索目录内的可执行文件,逐个感染病毒触发说明:触发条件:运行Virus.exe程序或被Virus.exe感染的程序病毒破坏说明:破坏能力:无害型传染时减少磁盘的可用空间,在可执行文件上附加一个节(4K)破坏方式:攻击文件在可执行文件上附加一个节(4K),修改可执行文件的入口地址破坏范围:Virus.exe所在目录病毒查杀说明:病毒危害等级:低,属于无害型病毒病毒特征类型:Bloodhound.W32.1(Norton AntiVirus检测结果,这是Symantec软件来临时指代新病毒的文件)病毒查杀方法:删除所有被感染的文件实验步骤:1、附书资源目录\Experiment\win32virus,书中的目录包括virus.exe(编译的病毒程序)、软件说明书.doc(请仔细阅读)、源代码详解.doc(对代码部分加入了部分注释)以及pll.asm(程序源代码),example.rar包中选取的一个常用程序(ebookedit)2、将example.rar解压缩到某个目录如D:\virus,解压完毕后应该在该目录下有Button目录、ebookcode.exe、ebookedit.exe、ebrand-it.exe、keymaker.exe等程序,然后把virus.rar解压后的virus.exe复制到该目录中;3、当防病毒程序如Norton AntiVirus(注:此处的测试应以当前测试机器上安装杀毒软件为准,本示例运行时机器上安装的只有Norton AntiVirus,故以此为参照)自动防护功能打开时,鼠标光标位于病毒程序上时,会看到如下的图例:图解说明:注解0-1表示Norton AntiVirus的自动防护功能打开着;注解0-2就是防病毒软件在用户鼠标置于图例0中注解0-3处的Virus.exe程序上时的报警提示。
初学WIN32汇编的体会分享
我们事先不去看它能实现的功能,而是首先就看这段代码,从代码里去分析它可 以实现的功能,这样就困难了许多. 再或者,我们先看需要实现的功能,然后自己 去写代码来实现功能,这更困难了.这是能力的 3 个层次. 我们一般看书,大部分 都是满足于第一个层次,先看功能,再看代码,然后完事.还感觉良好,可是如果让 我们课后自己独立的写一下例子里的代码,就感觉老虎吃天没法下口了. 实际上 win32 汇编并不难,对照着手册, 去看任何一段代码,都能看懂,也可以 知道实现的功能. 不过我们需要的不仅仅是这样,我们需要可以自己去写,自己 去实现, 这就需要大量的写代码抄代码,培养感觉, 对于 win32 汇编来讲,知其 意容易,难在知其”形”, 语法什幺的不成任何问题,关键是代码的组织,各个子程序的关系, 看懂容易, 自己写就很困难,我在学习中一直被这个问题困扰. 想不出别的好方法,就只好 抄书上的代码,不过学习进展很缓慢.其他朋友如果有好的学习方法,千万记得
初学 WIN32 汇编的体会分享
学习 win32 汇编没多久.有不少感想,于是写成初学 WIN32 汇编的体 会,有需要的朋友可以参考下。 匈牙利命名法很好,看代码 自己写,都按照匈牙利命名法,即使有不知道的,看 名字也能猜出大概. 一定要理解掌握 windows 的消息机制,这是 win32 汇编的基本.尤其是”回调” 这个概念,参数的来源,参数的传递,都要依靠这些概念去理解. 写代码的时候,要有”模块”这个概念,把一个过程一个函数,当成一个独立的 模块来理解来编写. 看例子的时候,我们先知道了功能,然后再看代码,心里自然会顺着事先知道 的功能去套着看例子代码,很快就看完了,感觉很容易,能理解,不难. 但是如果
菜鸟破解从头学
附破解常用工具:所謂工欲善其事,必先歷其器!不過做什麼,工具都是非常重要的.不借助工具,我們將寸步難行!下面我就把破解者最常用的工具介紹一下,希望對初學者有點幫助!當然,我不可能給每個工具給出詳細的使用說明,這裡只是告訴大家有什麼工具可以利用,以及到哪裡可以找到這些工具.具體到各種工具的使用,就要大家自己慢慢摸索了:)1)文件查看拿到一個程序,破解的第一步是什麼?"知己知彼,百戰不殆",首先當然應該了解敵人的一舉一動.對我們破解者來說,利用文件查看工具主要是弄清楚程序使用哪種編譯器編譯,是否加殼,何種加殼軟件加的殼等等.1>FileInfoFileInfo可以检测出常见的各种壳,非常方便。
看雪網站上有說FI是各类查壳工具中性能最强的。
版本:3.01作者:Michael Hering(herinmi@tu-cottbus.de)下載地址:/tools/unpac ... ers/Fileinfo/fi.rar2>peid上面介紹的FileInfo確實很強大,不過是命令行的(其實我越來越喜歡命令行的東東了),對於初學者可能不太友善.所以再推薦這款GUI的工具.版本:0.9官方網站:/~snaker/peid/下載地址:/~snaker/peid/PEid.zip2)脫殼加殼1>ASProtect这个壳在pack界当选老大是毫无异议的,当然这里的老大不仅指它的加密强度,而是在于它开创了壳的新时代,seh和各种流行的anti,bpm断点的清除都出自这里,更为有名的当属rsa的使用,使得demo版无法被crack成完整版本,code_dips也源于这里。
版本:1.23官方網站:/下載地址:/files/asprotect123.zip相應的脫殼工具AsprStripper 2.03可以全自动脱ASProtect1.2x的壳,支持EXE和DLL文件,工作平台Windows 2000/XP官方網站:/syd/下載地址:/syd/stripper_v203_public.rarCASPR v1.10ASProtect与Aspack的克星!仅对ASProtect1.2以前版本有效。
计算机病毒与防护入门教程
计算机病毒与防护入门教程第一章:计算机病毒的定义与分类计算机病毒是指一种可以在计算机系统中自我复制并传播的恶意程序。
它可以通过感染正常的程序或文件在不被察觉的情况下进入计算机系统,并对系统或文件进行破坏、修改或篡改。
根据其传播方式和破坏方式,计算机病毒可以分为多种类型。
1.1 传输病毒传输病毒通过感染网络和外部介质传播,例如通过电子邮件、网络下载等。
这类病毒会利用用户的操作行为感染其他计算机,造成恶意程序的传播。
1.2 文件感染病毒文件感染病毒是最常见的一类病毒。
它们通过感染可执行文件、文档、媒体文件等来传播。
当用户打开感染的文件时,病毒会执行自身代码并进行复制和传播。
1.3 宏病毒宏病毒是一种利用办公软件中的宏语言编写的恶意程序。
它们通常隐藏在文档和电子表格中,在用户打开文档时自动执行,并可利用办公软件的功能对计算机系统进行破坏。
第二章:计算机病毒的危害计算机病毒对个人用户、企业和社会造成了严重的危害。
了解这些危害能够帮助我们更好地认识到计算机安全的重要性。
2.1 数据损坏和丢失计算机病毒可能会破坏存储在计算机系统中的数据。
一些病毒会将文件加密或删除,导致用户无法访问重要的数据。
严重的病毒感染甚至可能导致数据的永久丢失。
2.2 系统瘫痪和崩溃某些病毒被设计用来破坏计算机系统的核心功能,例如操作系统。
这种病毒的感染会导致系统崩溃、无法启动或执行任何操作。
2.3 隐私信息泄露某些病毒会通过监控用户的操作、截取密码和信用卡信息等方式,窃取用户的个人和敏感信息。
这样的信息泄露会对个人隐私和财务安全造成严重威胁。
第三章:计算机病毒防护措施为了保护计算机系统免受计算机病毒的侵害,我们需要采取一系列的防护措施。
3.1 安装可靠的安全软件一个好的安全软件可以及时发现和阻止病毒的感染。
用户应该选择知名的安全软件并保持其及时更新。
3.2 定期更新操作系统和应用程序操作系统和应用程序更新可以修复已知的漏洞和安全问题,减少病毒的攻击面。
Win32程序开发入门:一个最简单的Win32程序
Win32程序开发⼊门:⼀个最简单的Win32程序⼀、什么是 Win32Win32 是指 Microsoft Windows 操作系统的 32 位环境,与 Win64 都为 Windows 常见环境。
这⾥再介绍下 Win32 Application 和 Win32 Console Application 之间的区别:1、程序不同Win32 Application 是标准 windows 程序,完全拥有 windows 的特性,可以通过⿏标点击窗⼝来完成控制。
Win32 Console Application 是控制台应⽤程序,类似于 MS-DOS 窗⼝,只能运⾏命令⾏程序,不具备消息响应机制。
2、⼊⼝函数不同Win32 Application ⼊⼝函数是 WinMain(),它具有消息响应机制,可以运⾏图形化的 C++ 程序。
Win32 Console Application ⼊⼝函数是 main(),可以访问部分 windows API 函数,如果你编写传统的 C 程序,必须建⽴ Win32 Console 程序。
⼆、最简单的程序创建⼀个 win32 应⽤程序⼯程,功能是显⽰⼀个消息框,随便提⽰⼀些⽂字就可以了。
具体的创建⼯程的步骤可以参考:。
代码如下:#include <Windows.h>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){MessageBox(NULL,TEXT("随便提⽰⼀些内容就可以了!哈哈哈!"), // 内容TEXT("这⾥是标题!"), // 标题名称0);return 0;}我们再看⼀下效果:接下来我们从头开始剖析这个简单的⼩程序。
三、分析⼀下3.1 头⽂件#include <Windows.h>windows.h 是⼀个最重要的包含⽂件,它囊括了若⼲其他 Windows 头⽂件,其中的某些头⽂件⼜包含另外的⼀些头⽂件。
计算机病毒结构分析(1)ppt课件
第三章计算机病毒结构分析本章学习目标•掌握计算机病毒的结构•掌握计算机病毒的工作机制•了解引导型病毒原理•了解COM、EXE、NE、PE可执行文件格式•掌握COM文件病毒原理及实验•掌握PE文件型病毒及实验总体概念•DOS是VXer的乐园(Aver) •9x病毒ring3, ring0•2K病毒主要是ring3•Windows文件格式变迁:•COM•EXE:MZ->NE->PE•Vxd: LE(16Bit, 32Bit)一、计算机病毒的结构和工作机制•四大模块:•感染模块•触发模块•破坏模块(表现模块)•引导模块(主控模块)•两个状态:•静态•动态工作机制引导模块•引导前——寄生•寄生位置:•引导区•可执行文件•寄生手段:•替代法(寄生在引导区中的病毒常用该法)•链接法(寄生在文件中的病毒常用该法)1PE文件结构及其运行原理(1)PE文件格式总体结构•PE(Portable Executable:可移植的执行体)•是Win32环境自身所带的可执行文件格式。
•它的一些特性继承自Unix的Coff(Common Object )文件格式。
•可移植的执行体意味着此文件格式是跨win32平台的,即使Windows运行在非Intel的CPU上,任何win32平台的PE装载器都能识别和使用该文件格式。
•当然,移植到不同的CPU上PE执行体必然得有一些改变。
•除VxD和16位的Dll外,所有win32执行文件都使用PE文件格式。
因此,研究PE文件格式是我们洞悉Windows结构的良机。
PE文件结构总体层次分布DOSMZheader ‘MZ’格式DOSstub Dos程序PEheader PE文件Section表•所有PE文件必须以一个简单的DOS MZ header开始。
有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体。
•DOS stub实际上是个有效的EXE,在不支持PE文件格式的操作系统中,它将简单显示一个错误提示,类似于字符串 “该程序不能在DOS模式下运行”或者程序员可根据自己的意图实现完整的DOS代码。
蠕虫病毒Win32 Blackmal G
计算机病毒
01 基本信息
03 传播方式
目录
02 具体介绍 04 危害
05 删除文件
07 其他信息
目录
06 覆盖文件
基本信息
Win32.Blackmal.G是一种通过邮件和网络共享传播的蠕虫。蠕虫是大小为94,154字节,以UPX格式加壳的可 运行程序。
基本信息
基本信息
病毒名称:蠕虫病毒Win32.Blackmal.G
其它名称:W32.Blackmal.E@mm (Symantec), W32/Mywife!ITW#10 (WildList), Win32/Mywife.L@mm (MS OneCare), W32/Nyxem-H (Sophos), Email-.e (Kaspersky)危害 Nhomakorabea危害
通过注册表修改系统设置 蠕虫从以下注册表位置删除以下键值(如果这些键值存在): Keys: HKCU\Software\Microsoft\Windows\CurrentVersion\Run HKLM\Software\Microsoft\Windows\CurrentVersion\Run HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices Values: NPROTECT ccApp ScriptBlocking MCUpdateExe
Attachments001.BHX Atta,zip[many spaces].SCR Attachments00.HQX Attachments,zip[many spaces].SCR Attachments.B64 Attachments,B64[many spaces].sCr Video_part.mim New Video,zip[many spaces].sCr Word_Document.hqx
结束进程的N种方法(RING0ANDRING3)
结束进程的N种⽅法(RING0ANDRING3)释放驱动HOOK了SSDT表中的NtOpenProcess,但是对参数过滤不严密,只过滤 PROCESS_TERMINATE, PROCESS_WRITE, XXXX(忘记了),,三种.然后⽐较的PID是放在全局变量中,可以通过发送 DeviceIoControl 改变这个值~所以我们还是可以以其他的参数打开这个进程的(只要不含有那三个参数)~不过⼤家似乎都不感兴趣这个题⽬,于是代码就不放了,想要可以直接给我消息.顺便要求⼑客公开他的⽅法~~1.使⽤ FindWindow 的⽅法,然后想窗⼝发送 WM_CLOSE 的消息2.找到进程的线程, PostThreadMessage 发送 WM_QUIT 消息结束主线程3.OpenThread ---> TerminateThread4.RemoteExitProcess,以 PROCESS_CREATE_THREAD|VM_OPERATION⽅式打开进程,然后创建个远程线程,线程开始地址是ExitProcess 参数0 ,程序⾃⾏了断.5.⾸先确保进程能被打开(8和9介绍),然后创建⼀个线程去 DebugActiveProcess 他,然后什么也不做退出线程,程序⽆⼈接管,于是挂掉~6.以 VM_OPERATION⽅式打开进程, 然后调⽤ NtUnmapViewOfSection 卸载掉他的ntdll.dll 这个时候程序还未崩溃,然后再随意发送个消息给它,它的程序⼀经调⽤直接就会异常,但是ntdll已经挂掉,⽆法⽤户空间异常处理,⾃⾏了断~(我认为这个⽅法应和往进程空间写垃圾数据属于同⼀⽅法)7.发送键盘 ESC 单击的消息(这个和发送窗⼝消息不能算同⼀个的).8.下⾯是重点要介绍的:-----------------------------由于CrackMeApp打开了驱动的⽂件句柄,所以直接不能卸载驱动的.因此需要把这个句柄给关闭.于是怎么去获取远程的⽂件句柄呢?⾸先想到的是 DuplicateHandle ,BOOL DuplicateHandle(HANDLE hSourceProcessHandle, // handle to source processHANDLE hSourceHandle, // handle to duplicateHANDLE hTargetProcessHandle, // handle to target processLPHANDLE lpTargetHandle, // duplicate handleDWORD dwDesiredAccess, // requested accessBOOL bInheritHandle, // handle inheritance optionDWORD dwOptions // optional actions);先看最后⼀个参数:DUPLICATE_CLOSE_SOURCECloses the source handle. This occurs regardless of any error status returned.DUPLICATE_SAME_ACCESSIgnores the dwDesiredAccess parameter. The duplicate handle has the same access as the source handle.也就是说当我们选择DUPLICATE_CLOSE_SOURCE时,远程的句柄就会⾃动关闭了第⼀个参数,我们可以直接OpenProcess(PROCESS_DUP_HANDLE ,XXX)获得,第⼆个参数⽐较难找,就是CrackMeApp进程⾥打开驱动的句柄,要想获得这个我们得借助个ntdll.dll中的⼀个 API, ZwQuerySystemInformation 这个可以获得整个系统中所有的句柄信息,我们可以全部找出来,然后判断哪些句柄是属于 CrackMeApp进程的,并且ObjectTypeNumber类型为⽂件类型的.关于这个的具体实现可以看我的实现代码.typedef struct _SYSTEM_HANDLE_INFORMATION { // Information Class 16ULONG ProcessId;UCHAR ObjectTypeNumber;UCHAR Flags; // 0x01 = PROTECT_FROM_CLOSE, 0x02 = INHERITUSHORT Handle;PVOID Object;ACCESS_MASK GrantedAccess;} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;这样CrackMeApp进程中通过CreateFile打开的句柄就全找到了,⼀般有三个,我们可以把它全部都关闭,也可以只关闭最后⼀个(因为最后就是打开驱动的句柄,打开驱动是最后⼀次调⽤CreateFile).这个我就得到了第⼆个参数,下⾯的参数都很简单了~于是⼀调⽤这个 DuplicateHandle ,我们不仅关闭了远程的句柄,⽽且还获得了驱动的句柄,为所欲为了~~于是我的第8个⽅法就是发送IO请求到CrackMeApp的驱动⾥,请求它修改被保护的进程PID为0,这样我们就可以⽤常规⽅法结束它了(Open+Terminate)9.上⾯⽅法的远程句柄关闭了,我们就⾃然可以去卸载驱动了~于是这个就是去 ZwUnloadDriver或者停⽌了它的Service.这样再⽤常规⽅法结束~~10.所有的win32⼦系统的进程都会有⼀个句柄在csrss.exe进程⾥⾯,CrackMeApp.exe⾃然也在,于是我们就可以把 csrss.exe ⾥⾯的句柄给dup 过来⾃⼰使⽤,DUP过来的⽅法⼤致和上⾯相同,不过判断的进程该为csrss,类型要该为5(进程句柄的类型),然后呢对每个进程句柄做⼀个ZwQueryInformationProcess() 参数为 BASIC_INFORMATION=0 的查询,看看这个句柄是不是CrackMeApp的 ,如果是就直接拿来⽤,TerminateProcess之~---------------以下是⽤借助驱动来结束的-----------11.⽤驱动patch了它的保护的PID值,然后⽤户空间⾥常规⽅法~12.⽤驱动恢复SSDT中ZwOpenProcess,这⾥我偷懒直接硬编码,调⽤那个驱动⾃⾝的恢复SSDT的函数,嘿嘿~~之后⽤户空间⾥常规⽅法(这个和11不算⼀种的)13.直接在驱动⾥调⽤ NtOpenProcess绕过它的SSDT HOOK就可以了,不过应该注意的是需要先把 KTHREAD 结构体⾥的 PreviousMode 值改为KernelMode,否则有可能会失败的~获取句柄后调⽤ZwTerminateProcess,这个不需要修改PreviousMode,直接⽤就可以~14.和13的⽅法不同的是打开句柄的⽅法,使⽤了 PsLookupProcessByProcessId+ObOpenObjectByPointer的⽅法,然后还是调⽤ZwTerminateProcess~(这个也要算不同的,,因为规则上曾经说过ObXXX和NtXX算不同的API的)15.最后⼀种了,⾸先获取CrackMeApp线程的TID,然后根据 PsLookupThreadByThreadId 获取 EThread 指针,然后向这个线程插⼊APC调⽤,在APC过程函数中,主要是执⾏的 ZwTerminateProcess( 0xffffffff, 0 );这个东西就是结束⾃⼰的意思(嘿嘿,,这个⽅法是我从IceSword⾥⾯抠出来的)~~本来想去调⽤Nt/ZwTerminateThread,结果那个函数没导出还得⾃⼰找,于是索性就简单点ZwTerminateProcess了.我的⽅法都较普通,跟你差不多驱动中只⽤了4种⽅法⽅法11:在驱动中NtOpenProcess取得句柄, 然后在驱动中TerminateProcess⽅法12:PsLookupProcessByProcessId取得Process,然后切换到进程空间,最后ZwTerminateProcess(NULL, 0);⽅法13:通过ObOpenObjectByPointer获取句柄,然后Terminate⽅法14:恢复SSDT(ZwOpenProcess),然后在应⽤层直接OpenProcess并Terminate。
windows用户防病毒三部曲
性, 复制 性 , 传 染性 , 潜伏性 、 隐 蔽 零 ) , e x p l o r e r( 中 间是 一 不 是 L ) , 这 的 是 , u 盘 盘 符 出 来 后 ,不 要 双 击
性和 可触 发 性 。
个 明 显 是 迷 惑 性 取 名 。又 如 e x p i - 打 开 ,也 不 要 点右 键 打 开 ,打 开 方
( 2 ) 在确保系统正常的情况下 ,
c : \ wi n d o ws 或
C : \ w i n ow d s \ s y s - 如 h a o 1 2 3 , 2 3 4 5等 , 前一 段 时 间 我 发
过 程 中 或 多 或 少 的 出现 过 各 种 异 常 t e n3 r 2下 ( 不 要 考 虑 这 些 文 件 夹 的 现 ,设置 百 度 为 首 页 ,再 注册 一 个
( 4 ) 启动 项 中有 异 常 启 动 。 打 开 加 冒号 , 回车 , 这样打开 , 如 u 盘 盘
是 完 全 依 赖 杀 毒 软 件 是 不 可 以 行 开 始 一 >运 行 ( w i n 7可 直 接 在 开 始 符 是 H 盘 , 那输 入 h : 回车 ( 注 意 冒 的 。首 先 杀 毒 软件 及 其影 响 系统 速 弹 出 处 输 人 命 令 ) ,输 入 r I l s c o g , 号是 英文输 入法下的 冒号 ) 。 或 者 度, 其次 他 还 会 误 删 、 漏杀 。不 是 百 回 车 一 >选 择 “ 启动” 页 , 若 在 该 处 打 开 我 的 电脑 ,在 弹 出 的 框 的 上 部
1 、 识 别 计 算 机 病 毒 是 以 破 坏 计 算 机 功
( 3)发 现 名 字 异 常 相 识 但 又 不 常 用 新 闻 网 址 等 等 。
对Win32病毒的分析与处理
1前 言 . 从 1 8 年 美 国FC h 提 出 计 算 机 病 毒 的 概 念 到 现 在 . 97 .o e 计 算 机 病 毒 的研 究 已经 形 成 一 门 属 于 计 算 机 领 域 中新 兴 的 学 科, 即计 算 机 病 毒 学 。 算 机 病 毒学 是~ 门专 门研 究 计 算 机 病 计 毒的产生 、 动机制 、 染机制 , 活 传 以及 计 算 机 病 毒 免 疫 和 防 治 的 科 学 。 究计 算 机病 毒 学 的 目 的 , 于 研 究 如 何 防 止 和抑 制 研 在 计 算机 病 毒 . 算 机 病 毒 学 作 为 一 门新 兴 的 学 科 , 是 计 算 机 计 它 程 序 设 计 技 术 发 展 与 计 算 机 技 术 发 展 极 不 平 衡 及 当今 操 作 系 统 开放 性 与 折 中性 和 倾 斜 性 的产 物 。 正 当计 算 机 以 日新 月 异 的速 度 迅 猛 发 展 、广 泛 地 深 入 到 社 会 生 活 的 各 个 方 面 的 时 候 , 以计 算 机 为 核 心 的信 息 产 业 成 为 一个 国家 现 代 化 水 平 的 一个 标 志 。 这种 情 况 下 . 算 机 病 在 计 毒 的 出现 和 广 泛 传 播 正 成 为 各 国政 府 关 注 的一 个 问题 。本 文 以Wi3 病 毒 为 例 , 其 病 毒原 理 和反 病 毒 技 术 进 行 分 析 。 n2 对 2W i 2 毒 的 原 理 . n 病 3
蠕虫病毒Win32 Bypuss B
蠕虫
01 病毒名称
03 传播方式 05 清除
目录
02 感染方式 04 危害
基本信息
Win32/Bypuss.B是一种蠕虫,通过移动存储器传播,尝试发送用户的文档副本到远程服务器。
病毒名称
病毒名称
蠕虫病毒Win32.Bypuss.B, W32.SillyFDC (Symantec), W32/SillyFDC-N (Sophos),.o (Kaspersky)
会定期的被重复写入
如果蠕虫在使用移动存储器的autorun时被调用,它就会打开一个“我的电脑”窗口,列出被感染的驱动器 根目录下非隐藏属性的内容。
如果以下进程正在运行,蠕虫会将代码注入到其中一个或者更多的进程中: explorer.exe winlogon.exe lsass.exe svchost.exe qq.exe 如果以下程序正在运行,蠕虫会运行它的恶意代码: alg.exe conime.exe
终止进程
Bypuss.B尝试终止"iparm.exe"进程。
其它信息
当Bypuss.B发送文件到服务器的时候,它可能回应一个信号,卸载蠕虫。在某个特定的日期后蠕虫也会卸 载自身。另外,蠕虫删除以下文件:
%Windows%\java\classes\java.dll %System%\kernel32.sys 它还删除以下注册表: HKCR\CLSID\< ClassID >\InprocServer32 HKCR\CLSID\< ClassID > HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer \Browser Helper Objects\< ClassID > HKLM\SOFTWARE\Microsoft\Internet Explorer\GUID 并修改以下注册表键值:
蠕虫病毒Win32 Luder M
清除
KILL安全胄甲Vet 30.3.3349版本可检测/清除此病毒。 也可使用专杀
感谢观看
蠕虫病毒Win32 Luder M
计算机蠕虫病毒
01 其它名称
03 危害
目录
02 具体介绍 04 清除
Win32/Luder.M是一种通过邮件传播的蠕虫。另外,它还会生成一个特洛伊,用来下载并运行其它的恶意程 序。它是大小为51,310字节,以UPX加壳的加密的Win32可运行程序。
其它名称
Downloader-BAI!M711 (McAfee), Mal/HckPk-A (Sophos), Win32/Luder.M!corrupt, Win32/Luder.M!Worm, W32.Mixor.Q@mm (Symantec), Trojan-.ciw (Kaspersky)
具体介绍
感染方式
传播方式
运行时,Win32/Luder.M复制"alsys.exe"到%System%目录,并设置文件属性为隐藏。随后,修改以下注册 表键值,以确保在每次系统启动时运行这个副本:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Agent = "%System%\alsys.exe"
危害
生成并运行其它恶意程序 Luder.M在被感染机器上生成Win32/Pecoan.H特洛伊。Win32/Pecoan是一类特洛伊病毒,通过很多点对点 络客户端建立通信。通过络Pecoan能够下载并运行任意文件。 终止进程 每隔4秒,如果注册表编辑器(regedit.exe)和名称中包含以下字符串的其它进程(显示在Windows Title Bar中)正在运行,Luder.M就会尝试终止注册表编辑器和这些进程: anti avg avp blackice firewall f-pro
win32学习3
分析简单的win32程序格式根据以前的小程序样式来简单分析一下:.386.model flat,stdcall 这一句是定义内存方式,语言格式.option casemap:nome 定义大小写敏感;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ;以上几句程序都是必然这么写的,尤其是后两句,是win32 ;必然定义格式,除了这些win32 没有别的定义,但是第一;句伪指令是说明引用cpu指令集的可有很多种选择(详情;根据本人上篇日志咯(*^__^*) 嘻嘻…….data<这是代码段>定义字符串,常量等.code额这就是代码段了( ⊙ o ⊙ )!此处跟dos汇编差不多也是有开始标号例如Start:。
End start这样来结束程序。
(⊙v⊙)嗯额其中 .stack .data .const .code 都是分段伪指令,但是win32中不必考虑堆栈段,系统会为程序分配一个向下扩展的,足够多大的段作为堆栈,呵呵顺便说一下386的内存分页机制,Win32 环境的内存管理与之相适应,每个页大约4KB,可以自由指定属性,例如上一个页是代码页,下一个页可能用来存放数据,win32 中的分段实际上就是把不同类型的数据或代码归类,再放到不同的页中去,因为有的数据始可读可写的,有的是可读不可写的,等,他们都要放到不同的属性页中去。
我们分开数一下不同的段。
.data 和.data? .const 定义的都是数据段,但是他们定义的数据具有不同的属性咯。
(对应上边说的~\(≧▽≦)/~啦啦啦),data 定义的是可读可写的变量,此类数据在原程序中已经具有初始值,可以被更改(在程序执行中),在程序装入内存的时候,装入内存。
.data段中存放的信息存放到可执行文件的——DATA 节区内。
.data? 可读可写的未定义变量。
这些变量一般用来当做缓冲区,或程序执行后才开始使用吗,但是要注意次类数据不会增加可执行文件的大小。
win32位下如何制作病毒
win32位下如何制作病毒怎么在win32位下设置病毒呢?也就是制作病毒,下面由店铺给你做出详细的win32位下制作病毒方法介绍!希望对你有帮助!win32位下制作病毒方法:win32位下制作病毒1、感染任何一个病毒都需要有寄主,把病毒代码加入寄主程序中(伴侣病毒除外)。
以下说明如何将病毒代码嵌入PE文件中,有关PE文件的结构请看以前的文章。
PE文件的典型结构: MZ Header DOS STUB CODE PE HEADER OPTIONAL HEADER SECTION TABLE SECTION 1 SECTION 2 … IMPORT TABLE EXPORT TABLE 和DOS的可执行文件类似,PE的代码映象分为几个SECTION,在文件中会对齐页边界(4K)。
一般来说,文件会加载在400000h开始的空间,而第一个SECTION在401000h处,同时入口地址也是401000h。
由高级语言编写的程序,每个SECTIO-N的长度不可能刚好是4K的倍数,因此在SECTION的末尾将会存在一段未用的空间,大小可由Section 的PHYSICAL SIZE-VIRTUALSIZE得到,在文件中起始位置可由PHYSICAL OFFSET得到,这段空间可以用来存放病毒代码。
此外一般来说, MZ Header+DOS STUD+PEHEADER+OPTIONAL HEADER+SECTION TABLE不过1K左右,而SECTION 1由4K开始,空出来的地方足够存放一个设计精良的病毒。
CIH就是将代码存放在这些空闲空间里。
win32位下制作病毒2、分配驻留所需内存对于驻留形的病毒,分配驻留所需内存是必需的。
在DOS下使用由于所有的应用程序都映射在相同的线性地址空间里,使用一般的内存分配调用就足够了。
而在WIN32下,每个应用程序都有自己的线性地址空间,必须使用特殊的函数分配2GB以上的系统地址。
win32事件
怎样使用WIN32的事件(Event)核心对象----How to use WIN32 Event Kernel Object(源码下载)1、说明事件的同步是一个很麻烦的区域,虽然有很多方法去处理它。
市面上也有很多书和文章介绍怎样避免多线程产生的噩梦。
通过处理这些噩梦,我渐渐理解了WIN32的事件(Win32 Kernel objects)。
在最初时,我不能理解怎么通过在线程中使用全局变量来使用全局的核心事件;后来我理解后,我发现这个是很容易来使用的。
这里,我将解释Win32事件中关于自动和手动设置重置事件的内容。
2、关于Win32 EventsWin32 Events也像其他的核心对象一样在跨进程是可利用的。
一个Win32事件就是一个状态机,它的生命期间基于2种状态--Signaled state(激活状态,有信号状态)and Non Signaled state(为激活状态,无信号状态)。
一个事件处于激活状态,意味着这个事件可以停止正在等待这个激活信号的线程;而一个处于非激活状态的,意味着它不能停止这个正在等待这个事件信号的线程。
3、自动重置Win32事件自动重置事件----它保证关闭单线程(这个单线程正处于等待这个事件的发生,然后返回到非激活状态);如果有多个线程正在同时等待这个事件信号,这些线程是随机触发关闭的。
一些Win32事件创建和使用的API:CreateEvent(); //创建事件的APICreateThread(); //创建线程的API//等待一个事件(信号)的APIWaitForSingleObject();WaitForMultipleObject();OpenHandle(); //获得一个事件句柄的APISetEvent(); //使一个事件处于激活状态的APIResetEvent(); //使一个事件处于非激活状态的APICloseHandle(); //关闭事件句柄的API下面是自动重置事件的相关代码(VS2010):#include <Windows.h>#include <iostream>using namespace std;// 需要激活的线程DWORD WINAPI ThreadFun(LPVOID n){cout << "Thread Instantiated" << endl;// 获得激活事件的句柄(以"MyEvent"为标识)HANDLE hEvent = OpenEvent(EVENT_ALL_ACCESS, false, (LPCWSTR)"MyEven t"); // (LPCWSTR)在vs2010,不加入的话会报错if(!hEvent){ return-1; }// 循环2次for(int count = 0; count < 2; ++count){ // 等待,直到hEvent事件被激活WaitForSingleObject(hEvent, INFINITE);cout << "Got The Signal.." << endl;}// 关闭事件的句柄CloseHandle(hEvent);cout << "End The Thread" << endl;return0;}int main(){// 创建一个自动重置事件("MyEvent"为它的标识):当它被激活后将自动重置为未激活状HANDLE hEvent = CreateEvent(NULL, false, false, (LPCWSTR)"MyEvent");if(!hEvent){ return-1; }// 创建一个线程,这个线程执行ThreadFun()函数DWORD Id;HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Thre adFun, 0, 0, &Id); // LPTHREAD_START_ROUTINE:指向一个函数,该函数通知宿主某个线程已开始执行。
计算机病毒基础
回到目录
下一页
自动解压缩技术
• 利用文件压缩技术,可减小文件传输的体积,即大小;但不改变文件本身的内容
回到目录
下一页
全平台反病毒技术
• 病毒活跃在各种平台,操作系统。为了做到反病毒软件同系统底层的无缝连 接,可靠地实时查杀病毒,必须在不同的平台上使用相应平台的反病毒软件。 • 比如360系列、金山毒霸系列等等
回到目录
下一页
计算机病毒分类
• 根据病毒入侵的途径可分为:源码型病毒、入侵型病毒、操作系统病毒、外 壳型病毒。
• 根据病毒存在的介质可分为网络病毒、文件病毒、引导性病毒、混合型病毒 以及宏病毒。 • 根据病毒特有的破坏能力可分为:无危险性、危险型和非常危险型病毒。 • 根据病毒特有的算法可分为:伴随型病毒、蠕虫型病毒、寄生型病毒、和变 型病毒(又称幽灵病毒)。 • 根据病毒存在的媒体可分为网络病毒,文件病毒,引导型病毒。 • 按链接方式分类,计算机病毒可分为源码型病毒、入侵型病毒、外壳型病毒 和操作系统性病毒。 • 按病毒攻击操作系统可分为:攻击DOS系统的病毒,攻击Windows系统的 病毒,攻击UNIX系统的病毒和攻击OS/2系统的病毒。回到目录 下一页
世界各地计算机用户几乎同时发现各种病毒 全国计算机病毒攻击猖獗,尤其是“米开朗琪罗” 病毒 美国首次运用计算机病毒于“海湾战争” 出现针对杀毒软件的“幽灵”病毒,如“One— half” 首次出现针对微软公司office的“宏病毒” 公认为“宏病毒”年
计算机病毒基础
编者:傲翎
目录
前言 第一章 计算机病毒的产生与分类 1.1计算机病毒含义---------------去往 1.2病毒产生的特点---------------去往 1.3计算机病毒分类---------------去往 1.3.1 按病毒存在的媒体分类 1.3.2 按病毒传染的方法分类 1.3.3 按病毒破坏的能力分类 1.3.4 按病毒算法分类 1.3.5 按计算机病毒的链结方式分类 1.3.6 按病毒攻击操作系统分类
win32错误报告
win32错误报告:为何会发生?对于大部分Windows用户而言,可能并不陌生。
这时候,我们给系统汇报一些奇怪的错误,但是却不知道为何会发生。
每次窗口弹出时,我们都开始感到慌乱:“系统出了什么问题?”“到底是哪个程序导致了错误?”“为什么我的电脑会这样表现?”今天我们将探讨这些问题,了解的具体原因及如何处理这类错误。
Win32错误发生的原因几乎所有Win32错误都是因为软件或硬件故障导致的。
这种类型的错误通常会导致程序无法正常工作,系统功能受限,或者整个系统崩溃。
Win32错误可能来自于不同平台上的软件或应用。
常见的错误原因包括以下几种:1.驱动问题:在一些中,“驱动程序无法加载”可能是错误的根源。
出现这个问题通常是由于安装了不兼容的驱动程序或者驱动程序版本太老。
2.软件未响应:如果程序没有响应(冻结),可以通过ctrl-alt-del组合键组合来打开任务管理器并关闭该程序以解决问题。
如果程序一直无法响应,则可能需要考虑重新启动计算机。
3.内存不足:内存不足是Win32错误中常见的情况之一。
当应用程序需要访问超出系统内存容量的数据时,这种错误就会发生。
如何处理Win32错误Win32错误处理方法通常取决于错误的具体原因。
在大多数情况下,处理Win32错误需要采取以下步骤:1.查看错误报告:当Win32错误发生时,系统会自动弹出窗口显示错误报告。
你可以单击“Send Error Report”或“Don’t Send Error Report”来选择是否提交错误报告。
2.检查驱动程序:如果得出错误指向驱动程序,需要打开“设备管理器”,检查并卸载不兼容或不需要的驱动程序。
之后选择一个稳定的版本或更新版本重新安装驱动程序。
3.清除磁盘空间:“磁盘空间不足”是Win32错误的另一常见原因。
请确保计算机上有足够的磁盘空间,手动删除不再需要的程序或数据。
4.使用系统还原:如果错误似乎是由于一些更改或安装新软件导致的,请尝试使用Windows系统还原功能还原系统配置到以前的日期。