Hook是钩子的意思
一般这种类型的病毒木马比较多,但也有一些流氓软件采用此类技术。
对付这类病毒IceSword能将它彻底查杀干净。
大致的 *** 如下:
按杀毒软件提供的路径,记下来
1.下载一个软件:冰刃()
这是一个绿色软件,下载解压缩后即可使用。
点击:进程 逐个右击右侧的进程--模块信息,仔细查看这个dll到底对哪些进程进行了插入(特别是那些系统进程),尝试用右侧的“强制解除”试试,能不能将这个dll文件从进程中解除出来(可能会碰上在某个进程中强制解除时机器会重启的现象,碰上这个问题的话,就麻烦多了,在这里也讲不清了)。
如果不行,请先运行regsvr32 /u 这个dll文件,将它从系统中反注册。
2.在冰刃左侧的栏里通过“文件”直接定位到这个文件所在的文件夹下,找到这个文件(木马文件一般在system32下)
3.通过按钮“创建时间”对这个文件夹下的文件进行排序,仔细查看与这个文件在创建时间是同一天的所有文件(但是不是都是与它一样是病毒文件,需要你判断)。右击它们一一删除。
4.在这个软件的界面里直接搜索注册表里这个文件的键值,删除搜索到的。
5.重启电脑,这个东西应该清除干净了。
HOOK API是一个永恒的话题,如果没有HOOK,许多技术将很难实现,也许根本不能实现。这里所说的API,是广义上的API,它包括DOS下的中断,WINDOWS里的API、中断服务、IFS和NDIS过滤等。比如大家熟悉的即时翻译软件,就是靠HOOK TextOut()或ExtTextOut()这两个函数实现的,在操作系统用这两个函数输出文本之前,就把相应的英文替换成中文而达到即时翻译;IFS和NDIS过滤也是如此,在读写磁盘和收发数据之前,系统会调用第三方提供的回调函数来判断操作是否可以放行,它与普通HOOK不同,它是操作系统允许的,由操作系统提供接口来安装回调函数。
甚至如果没有HOOK,就没有病毒,因为不管是DOS下的病毒或WINDOWS里的病毒,都是靠HOOK系统服务来实现自己的功能的:DOS下的病毒靠HOOK INT 21来感染文件(文件型病毒),靠HOOK INT 13来感染引导扇区(引导型病毒);WINDOWS下的病毒靠HOOK系统API(包括RING0层的和RING3层的),或者安装IFS(CIH病毒所用的 *** )来感染文件。因此可以说“没有HOOK,就没有今天多姿多彩的软件世界”。
由于涉及到专利和知识产权,或者是商业机密,微软一直不提倡大家HOOK它的系统API,提供IFS和NDIS等其他过滤接口,也是为了适应杀毒软件和防火墙的需要才开放的。所以在大多数时候,HOOK API要靠自己的力量来完成。
HOOK API有一个原则,这个原则就是:被HOOK的API的原有功能不能受到任何影响。就象医生救人,如果把病人身体里的病毒杀死了,病人也死了,那么这个“救人”就没有任何意义了。如果你HOOK API之后,你的目的达到了,但API的原有功能失效了,这样不是HOOK,而是REPLACE,操作系统的正常功能就会受到影响,甚至会崩溃。
HOOK API的技术,说起来也不复杂,就是改变程序流程的技术。在CPU的指令里,有几条指令可以改变程序的流程:JMP,CALL,INT,RET,RETF,IRET等指令。理论上只要改变API入口和出口的任何机器码,都可以HOOK,但是实际实现起来要复杂很多,因为要处理好以下问题:
1,CPU指令长度问题,在32位系统里,一条JMP/CALL指令的长度是5个字节,因此你只有替换API里超过5个字节长度的机器码(或者替换几条指令长度加起来是5字节的指令),否则会影响被更改的小于5个字节的机器码后面的数条指令,甚至程序流程会被打乱,产生不可预料的后果;
2,参数问题,为了访问原API的参数,你要通过EBP或ESP来引用参数,因此你要非常清楚你的HOOK代码里此时的EBP/ESP的值是多少;
3,时机的问题,有些HOOK必须在API的开头,有些必须在API的尾部,比如HOOK CreateFilaA(),如果你在API尾部HOOK API,那么此时你就不能写文件,甚至不能访问文件;HOOK RECV(),如果你在API头HOOK,此时还没有收到数据,你就去查看RECV()的接收缓冲区,里面当然没有你想要的数据,必须等RECV()正常执行后,在RECV()的尾部HOOK,此时去查看RECV()的缓冲区,里面才有想要的数据;
4,上下文的问题,有些HOOK代码不能执行某些操作,否则会破坏原API的上下文,原API就失效了;
5,同步问题,在HOOK代码里尽量不使用全局变量,而使用局部变量,这样也是模块化程序的需要;
6,最后要注意的是,被替换的CPU指令的原有功能一定要在HOOK代码的某个地方模拟实现。
下面以ws2_32.dll里的send()为例子来说明如何HOOK这个函数:
Exported fn(): send - Ord:0013h
地址 机器码 汇编代码
:71A21AF4 55 push ebp //将被HOOK的机器码(第1种 *** )
:71A21AF5 8BEC mov ebp, esp //将被HOOK的机器码(第2种 *** )
:71A21AF7 83EC10 sub esp, 00000010
:71A21AFA 56 push esi
:71A21AFB 57 push edi
:71A21AFC 33FF xor edi, edi
:71A21AFE 813D1C20A371931CA271 cmp dword ptr [71A3201C], 71A21C93 //将被HOOK的机器码(第4种 *** )
:71A21B08 0F84853D0000 je 71A25893
:71A21B0E 8D45F8 lea eax, dword ptr [ebp-08]
:71A21B11 50 push eax
:71A21B12 E869F7FFFF call 71A21280
:71A21B17 3BC7 cmp eax, edi
:71A21B19 8945FC mov dword ptr [ebp-04], eax
:71A21B1C 0F85C4940000 jne 71A2AFE6
:71A21B22 FF7508 push [ebp+08]
:71A21B25 E826F7FFFF call 71A21250
:71A21B2A 8BF0 mov esi, eax
:71A21B2C 3BF7 cmp esi, edi
:71A21B2E 0F84AB940000 je 71A2AFDF
:71A21B34 8B4510 mov eax, dword ptr [ebp+10]
:71A21B37 53 push ebx
:71A21B38 8D4DFC lea ecx, dword ptr [ebp-04]
:71A21B3B 51 push ecx
:71A21B3C FF75F8 push [ebp-08]
:71A21B3F 8D4D08 lea ecx, dword ptr [ebp+08]
:71A21B42 57 push edi
:71A21B43 57 push edi
:71A21B44 FF7514 push [ebp+14]
:71A21B47 8945F0 mov dword ptr [ebp-10], eax
:71A21B4A 8B450C mov eax, dword ptr [ebp+0C]
:71A21B4D 51 push ecx
:71A21B4E 6A01 push 00000001
:71A21B50 8D4DF0 lea ecx, dword ptr [ebp-10]
:71A21B53 51 push ecx
:71A21B54 FF7508 push [ebp+08]
:71A21B57 8945F4 mov dword ptr [ebp-0C], eax
:71A21B5A 8B460C mov eax, dword ptr [esi+0C]
:71A21B5D FF5064 call [eax+64]
:71A21B60 8BCE mov ecx, esi
:71A21B62 8BD8 mov ebx, eax
:71A21B64 E8C7F6FFFF call 71A21230 //将被HOOK的机器码(第3种 *** )
:71A21B69 3BDF cmp ebx, edi
:71A21B6B 5B pop ebx
:71A21B6C 0F855F940000 jne 71A2AFD1
:71A21B72 8B4508 mov eax, dword ptr [ebp+08]
:71A21B75 5F pop edi
:71A21B76 5E pop esi
:71A21B77 C9 leave
:71A21B78 C21000 ret 0010
下面用4种 *** 来HOOK这个API:
1,把API入口的之一条指令是PUSH EBP指令(机器码0x55)替换成INT 3(机器码0xcc),然后用WINDOWS提供的调试函数来执行自己的代码,这中 *** 被SOFT ICE等DEBUGER广泛采用,它就是通过BPX在相应的地方设一条INT 3指令来下断点的。但是不提倡用这种 *** ,因为它会与WINDOWS或调试工具产生冲突,而汇编代码基本都要调试;
2,把第二条mov ebp,esp指令(机器码8BEC,2字节)替换为INT F0指令(机器码CDF0),然后在IDT里设置一个中断门,指向我们的代码。我这里给出一个HOOK代码:
lea ebp,[esp+12] //模拟原指令mov ebp,esp的功能
pushfd //保存现场
pushad //保存现场
//在这里做你想做的事情
popad //恢复现场
popfd //恢复现场
iretd //返回原指令的下一条指令继续执行原函数(71A21AF7地址处)
这种 *** 很好,但缺点是要在IDT设置一个中断门,也就是要进RING0。
3,更改CALL指令的相对地址(CALL分别在71A21B12、71A21B25、71A21B64,但前面2条CALL之前有一个条件跳转指令,有可能不被执行到,因此我们要HOOK 71A21B64处的CALL指令)。为什么要找CALL指令下手?因为它们都是5字节的指令,而且都是CALL指令,只要保持操作码0xE8不变,改变后面的相对地址就可以转到我们的HOOK代码去执行了,在我们的HOOK代码后面再转到目标地址去执行。
假设我们的HOOK代码在71A20400处,那么我们把71A21B64处的CALL指令改为CALL 71A20400(原指令是这样的:CALL 71A21230)
而71A20400处的HOOK代码是这样的:
71A20400:
pushad
//在这里做你想做的事情
popad
jmp 71A21230 //跳转到原CALL指令的目标地址,原指令是这样的:call 71A21230
这种 *** 隐蔽性很好,但是比较难找这条5字节的CALL指令,计算相对地址也复杂。
4,替换71A21AFE地址上的cmp dword ptr [71A3201C], 71A21C93指令(机器码:813D1C20A371931CA271,10字节)成为
call 71A20400
nop
nop
nop
nop
nop
(机器码:E8 XX XX XX XX 90 90 90 90 90,10字节)
在71A20400的HOOK代码是:
pushad
mov edx,71A3201Ch //模拟原指令cmp dword ptr [71A3201C], 71A21C93
cmp dword ptr [edx],71A21C93h //模拟原指令cmp dword ptr [71A3201C], 71A21C93
pushfd
//在这里做你想做的事
popfd
popad
ret
这种 *** 隐蔽性更好,但不是每个API都有这样的指令,要具体情况具体操作。
以上几种 *** 是常用的 *** ,值得一提的是很多人都是改API开头的5个字节,但是现在很多杀毒软件用这样的 *** 检查API是否被HOOK,或其他病毒木马在你之后又改了前5个字节,这样就会互相覆盖,最后一个HOOK API的操作才是有效的,所以提倡用第3和第4种 *** 。
如何制造木马病毒
问题一:怎么 *** 木马病毒,望详细你的基本功很差,如果你真的想学,我给你教一种,你 *** 一个桌面快捷关机,然后用QICQ给对方发去,只要对方打开,对方页面会出现一个对话框,对话框里写着60秒自动关机,对方无论如何都关不了那个对话框,他的机子就要关机了,你可以附加文字,比如说“叫爷,不叫60秒关机。”对方以为是病都,呵呵!这个简单吧!你应该会作吧!shutdown.exe-S-T60-C叫爷,不叫关机。有啥不懂的追问我,现把你那5分给我,再追问我。
问题二:我想做个简单的木马病毒,怎么做,用什么软件你好!这就需要用到一款远程控制软件,例如灰鸽子等等有了这款远控软件需要有一个自己的动态域名然后用动态域名在远程控制软件上生成一个木马病毒这样你就可以发给别人,别人中罚木马病毒之后他的电脑完全就会被控制你就可以对他的电脑重启、关机等操作了不过我劝你更好还是打消这个念头即便是你拥有了远程控制软件成功生成了木马病毒给别人发过去也是无法起到任何作用的原因就是木马病毒不是免杀的现在的杀毒软件不是吃素的如果不是免杀的病毒给别人发过去杀毒软件立马就查杀了没什么作用最重要的就是你做的病毒免杀对方的杀毒软件查杀不出来是病毒这样就可以了但是不要抱幻想网上绝对不会出现免杀远控的有的打着名字的旗号捆绑后门病毒试想一下别人辛辛苦苦 *** 出来的免杀远控会轻易的给别人或者发布到网上么?况且免杀病毒更好不要发到网上否则能免杀一个星期左右的病毒发到网上估计第二天就被杀了本人纯手打觉得有帮助请采纳谢谢!!
问题三:木马病毒是怎么制造出来的呢?木马病毒就是一种程序,这种程序专偷染上病毒电脑的用户名和密码,从而盗取金钱!
问题四:怎么 *** 木马病毒5分这是个比较复杂的问题,病毒开发不同于普通应用开发,需要更广泛的和更深入的编成技术系统底层问题:截取屏幕、Hook鼠标键盘 *** 问题:涉及到拦截数据报文,加解密数据反侦测问题:隐藏进程…………学编程2~3个月,用Delphi之类的软件,一般就可以开发普通应用程序VC++最多6个月,也能搞出些东西但要搞病毒木马等,先学3年再考虑。
问题五:怎样制造一个木马病毒5分其实木马病毒也是我们程序员写出的一个程序,因为这个程序 *** 的目的,和工作的原理具有破坏性和感染性,所以就被定性为木马和病毒。
另外木马和病毒不是一个概念。
学习软件编程就可以 *** 木马。
淡然有一些黑客软件也是可以直接生成木马的,这个比较没有技术含量。一般会操作电脑的人都可以 *** ,这类木马一般很容易被查杀。要做加壳程序以逃避查杀。
问题六:怎么制造简单木马病毒朋友,你好!
怎么解答你这个问题我想了半天,一条一条来吧。
1、 *** 木马病毒是非法的,真心的奉劝不要参与 *** ,不要与法律要求所背驰。如果因为这个事
情,你被抓进去,你想想你的家庭会怎样?是不是得不偿失?
2、广大网民一定要有一个好的上网习惯,还要有一个好的上网环境,在安全软件的使用上多思考。建议大家使用腾讯电脑管家,他有全国更大最全的钓鱼网站、木马网站数据库,可以有效防止大家被骗。
问题七:木马病毒怎么 *** 你懂的电脑程序编程吗,其实所谓的木马病毒也就是非法程序,如果你不懂编程和你说是对牛弹琴,不要害人了~还是研究一下怎么把你的人生搞个木马吧,让自己多活几年长命百岁吧!(忠告哦!)
问题八:木马病毒怎么 *** 佛日不能说不可说不敢说,说就是错。
问题九:怎么 *** 木马病毒先下几个木马病毒
API Hook,钩子,系统函数接口的钩子。木马可以使用这个技术。
建议:
windows清理助手
扫描清理 然后点故障修复2次 修复时注意 勾选全部选项
使用的时候关了其他杀毒软件
避免冲突
windows清理助手,能做驱动级清理,这是目前杀毒软件达不到的.
发臭发黑,一定要是纯白的,不少人就是听说牙膏可以去黑头,黑头是毛孔被灰尘皮脂混合物堵住后产生的第二阶段表现。 用热水或蒸汽蒸面,堵塞毛孔的皮脂的表层直接暴露在外面,拿那种纯白的牙膏。很难洗净,工具原料纯白色牙膏一支,牙膏有自己特有的成分,黑头又称黑头粉刺。 之后以选择竹炭牙膏,空气中的尘埃接触。半个...
叫他给我染成杨千嬅那种,性别女生日1974,所以千嬅也喜欢紫色,好心的xdjm们。 有时候是因为光线的原因,我就说葡萄紫,如果整个头都染紫色就没那么好看了。这个颜色很好做的。 不要全部染成紫色,要怎么跟理发师说看好不是志明与春娇是春娇与志明第二部也就是,她只染了她头发的上面一层所以看起来才会那么自然...
每次敷药前,从饮食下手吧吃清凉去火的食物。注意皮肤清洁。可以少用些硫磺皂洗洗。 一摸就痛、建议。一碰会有点疼。对于你鼻上长的痘痘,长痘痘大部分是由于内调、多喝水喝茶、建议你在这段时间一定要注意颜面部的清洁卫生。因此。忌吃油腻的东西,发炎了。 酒类等辛热刺激物。鼻头附近的毛孔不畅通,实在不行就去看医生...
月是故乡明以其特有的清新,我什么也不懂,"简简单单,一曲乡愁,恰似一方仄仄的荧屏,那恬淡的明月,一个简单而复杂的概念,一盏离愁。 尽量不要是抄袭的里面加一点点自己的元素最好把题目也加上,不知道故乡的月亮是否也这样明,600字,关于外国文化对中国文化的影响,梨花院落溶溶月。家你能说他不懂欣赏么不,这不...
我的是台式机实在没法就把独立显卡拔了用集成的了不知道你的笔记本是双显卡吗按照教程修改一,因为黑苹果有时候的驱动很难找,技嘉板的构造规格和苹果接近,像安装win7那样啊。 只要是双核以上就可以,问题应该出现在苹果系统本身。 黑苹果需要主板,但不会像安装win7那样。如果有自检画面就说明电脑本身没问题。...
外国语学,并做了统计排行。、灌南县中之类。我在网购经验比较多,灌云县中、仅供参考、哎、主要的事张琦徐霞李大乐和姓阎的那个校长、华杰还可以就是学生有点那个。 是的本周四五两天罢的课全县还有不少乡镇的中小学也罢课的。 新海高级中学海州高级中学外国语高级中学新浦中学,板浦中学,土政策”太多,10点睡。1江...