第二次

一、应用HOOK技术进行DLL注入,调用安装钩子函数和钩子函数
二、利用远程线程来进行DLL注入,调用CreateRemoteThread函数
三、利用特洛伊DLL进行注入 ,调用API函数

计算机病毒主要传播途径有以下四种:①通过软盘等存储介质传播;②通过游戏软件传播;③通过网络传播;④通过计算机硬件传播。

经常会有程序崩溃,任务管理器和注册表编辑器不可用,用功能强大的杀毒软件进行杀毒

push    ebp:子程序如何存取参数,因为缺省对堆栈操作的寄存器有 ESP 和 EBP,而 ESP是堆栈指针,无法暂借使用,所以一般使用 EBP 来存取堆栈,假定在一个调用中有两个参数,而且在 push 第一个参数前的堆栈指针 ESP 为 X,那么压入两个参数后的 ESP 为 X-8,程序开始执行 call 指令,call 指令把返回地址压入堆栈,这时候 ESP 为 X-C,这时已经在子程序中了,我们可以开始使用 EBP 来存取参数了,但为了在返回时恢复 EBP 的值,我们还是再需要一句 push ebp 来先保存 EBP 的值,这时 ESP 为 X-10,再执行一句 mov ebp,esp,根据右图可以看出,实际上这时候 [ebp + 8] 就是参数1,[ebp + c]就是参数2。
mov    ebp, esp:当程序到达OEP的时候Push EBP这句对于ESP的值来说就是ESP-4,然后是ESP-4赋给了EBP,而做为保存ESP值作用的EBP寄存器在这个“最上层的程序”中的值将始终不会改变。虽然他可能在进入子call里面以后会暂时的改变(用于子程序的堆栈平衡)但是在退出了以后依*pop ebp这一句将还原原来的EBP的值。 以这句做为突破口,就是说只要我们能断在“最上层的程序”中,就能通过观察EBP的值得到壳在JMP到OEP的时候的ESP的值了。
sub esp, 50:在堆栈中留出局部变量的空间

调用一个子程序,数据出栈

用户系统信息:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WPS; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618)