注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

K8拉登哥哥's Blog

K8搞基大队[K8team] 信息安全 网络安全 0day漏洞 渗透测试 黑客

 
 
 

日志

 
 

Delphi BHO 编写 留着以后写病毒用()  

2010-04-18 01:16:46|  分类: VB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Delphi BHO 编写 留着以后写病毒用()

 

QQ/aiq吻    发表于2010年02月23日 22:38 阅读(22) 评论(1) 分类: 黑客编程 权限: 公开

Delphi BHO 编写 留着以后写病毒用() - QQ黑客吧 - QQ黑客吧

Delphi BHO 编写 留着以后写病毒用() - QQ黑客吧 - QQ黑客吧

 

用Delphi+VBScript实现的方法:  

  如何在IE右键菜单中添加菜单项  

          要实现在IE右键菜单中添加菜单项的功能,要依次实现以下步骤:  

          1、在注册表HKEY_CURRENT_USER\Software\Microsoft\Internet   Explorer\MenuExt项下建立一个  

  新项,项的名称既出现在菜单中的标题,例如你想建立的菜单项标题为Add   URL,则新建项的名称为  

  HKEY_CURRENT_USER\Software\Microsoft\Internet   Explorer\MenuExt\Add   URL  

          2、将新建项的默认值设定为一个URL地址,当用户点击菜单项后,IE就会调用URL指向的页面中的脚  

  本,在目标页面的脚本中通过访问external对象的menuArguments属性就可以访问IE中的页面。该属性定  

  义了一个Window对象。该对象描述了浏览器中的一个打开的窗口。详细的帮助请参考MSDN中关于  

  InternetExplore   object的帮助,熟悉了Window对象才可以比较好的了解下面的脚本。  

          对于如何实现自身的程序访问menuArguments的问题,我们可以仿效Netants的做法,首先建立一个  

  OLE   Automation对象,然后在脚本中调用该对象,并将页面信息传递对象处理。下面通过Delphi建立对象  

  来说明:  

          打开Delphi,点击菜单:   文件|新建   ,选择窗口中的ActiveX标签,在列表中选择ActiveX   Library  

  图标后按确定键,这样就新建了一个Active   Library工程。然后将工程文件保存为IEContextMenu.dpr   。  

          再点击菜单:   文件|新建   ,选择窗口中的ActiveX标签,在列表中选择Automation   Object   图标后按  

  确定键,然后在   Automation   Object   Wizard   窗口中的CoClass   Name栏中输入IEMenu1后按确定键。  

  这时会弹出IEContextMenu.tlb   的Type   Library窗口,左边是对象和属性等的列表窗口,右边是相应的选  

  项窗口。在其中已经加入了IIEMenu1接口。  

          现在给接口添加一个AddURL方法。首先选择Type   Library列表中的IIEMenu1项,然后点击Type   Library  

  窗口上面的   New   Method   按钮添加一个方法,将该方法的Name属性改为AddURL。下来再点击Parameters标签  

  转到参数设定页,添加两个参数:URL和Info,属性都设置为BSTR,设置好的Type   Library窗口如图所示:  

  (附加图片1-1.bmp)  

          关闭设置窗口回到Delphi,点击save   all按钮保存文件,现在IEMenu对象建立完毕了,在对象中我们将  

  只实现最简单的功能,既显示用户在页面中单击右键位置的对象URL,所以在Unit1的TIEMenu1.AddURL子程  

  序中只添加一句:     showmessage(URL);  

          同时在Unit1的Uses中加入Dialogs。选择菜单上的Build   |   Build   IEContextMenu   项编译生成  

  IEContextMenu.dll。  

          下面是注册对象,在资源管理器中将Windows\system目录下的Regsvr32.exe拷贝到IEContextMenu.dll  

  所在目录中,然后将IEContextMenu.dll图标拖到Regsvr32.exe上放开,这时Regsvr32.exe就会弹出对话框  

  提示对象注册成功。  

          打开UltraEdit(或者其它文本编辑器)将下面的脚本代码输入编辑器中:  

   

  <script   language="VBScript">  

   

  Sub   OnContextMenu()  

  On   Error   Resume   Next  

  set   srcEvent   =   external.menuArguments.event  

  set   EventElement   =   external.menuArguments.document.elementFromPoint(srcEvent.clientX,   srcEvent.clientY)  

  set   objNetSamp=CreateObject("IEContextMenu.IEMenu1")  

                   

                  if   srcEvent.type   =   "MenuExtAnchor"   then    

  set   srcAnchor   =   EventElement  

  do   until   TypeName(srcAnchor)="HTMLAnchorElement"  

  set   srcAnchor=srcAnchor.parentElement  

  Loop  

  Call   objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)  

  elseif   srcEvent.type="MenuExtImage"   then  

  if   TypeName(EventElement)="HTMLAreaElement"   then  

  Call   objNetSamp.AddUrl(EventElement.href,EventElement.Alt)  

  else    

  set   srcImage   =   EventElement  

  set   srcAnchor   =   srcImage.parentElement  

  do   until   TypeName(srcAnchor)="HTMLAnchorElement"  

  set   srcAnchor=srcAnchor.parentElement  

  if   TypeName(srcAnchor)="Nothing"   then    

  call   objNetSamp.AddUrl(srcImage.href,srcImage.Alt)  

  exit   sub  

  end   if  

  Loop  

  Call   objNetSamp.AddUrl(srcAnchor.href,   srcImage.Alt)  

  end   if  

  elseif   srcEvent.type="MenuExtUnknown"   then  

  set   srcAnchor   =   EventElement  

  do   until   TypeName(srcAnchor)="HTMLAnchorElement"  

  set   srcAnchor=srcAnchor.parentElement  

  if   TypeName(srcAnchor)="Nothing"   then    

  Call   objNetSamp.AddUrl(EventElement.href,EventElement.innerText)  

  exit   sub  

  end   if  

  Loop  

  end   if  

  end   Sub  

   

  call   OnContextMenu()  

   

  </script>  

           

          将文件保存到c:\program   files   下,文件名为   geturl.htm  

          从上面的脚本可以看到,首先访问external.menuArguments属性,获得用户单击鼠标右键位置的对象,然  

  后根据对象的不同获得它的URL,然后建立IEContextMenu.IEMenu1对象并调用该对象的AddURL方法。  

          接下来是为右键菜单建立注册项,打开UltraEdit(或者其它文本编辑器)将下面的注册数据输入编辑器中  

  Windows   Registry   Editor   Version   5.00  

   

  [HKEY_CURRENT_USER\Software\Microsoft\Internet   Explorer\MenuExt\&Get   URL]  

  @="c:\\program   files\\geturl.htm"  

  "Contexts"=dword:00000022  

   

          将文件以reg为后缀保存,然后在Windows资源管理器中双击该文件将注册项添加到注册表中,然后打开  

  IE,右键点击一个连接或者图片,在弹出菜单中会出现一个Get   URL项,点击该项,就会出现一个消息框显示  

  点击的连接或者图片的URL地址  

          下面再介绍一下上面注册项中Contexts项的作用,通过该项可以制定菜单项在右键点击IE中的什么对象时  

  出现,它可以为以下值的“或”组合:  

  对象 值    

  缺省   0x1    

  图片   0x2    

  控件   0x4    

  表单域   0x8    

  选择文本   0x10    

  锚点   0x20    

          例如上面我们希望菜单项在用户点击图片或者超链接时出现,那么我们就将值设置为dword:00000022,既在  

  点击图片   或者   锚点时出现菜单。一个锚点是页面中描述一个超链接的对象。如果不设置Contexts项,则菜单项  

  会在点击任何对象时出现在右键菜单中。

  评论这张
 
阅读(1900)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016