移花接木 将Alexa工具条改装成间谍木马

 更新时间:2016年9月20日 19:04  点击:1799
Alexa是一个发布全球网站排名信息的网站,他的网址是http://www.alexa.com。Alexa通过在客户端安装Alexa工具条来收集采样全球网站的访问数据,以这些数据为依据对全球网站进行排名,类似于电视收视率的统计。Alexa工具条是一种类似于Google工具条的IE插件,你可以在下面URL中下载:http://download.alexa.com/index.cgi。

  一、Alexa工具条的工作原理

  Alexa工具条是一种基于BHO和Toolbar Bands技术的一种IE插件。它以DLL文件的形式存在于系统中,是一种COM组件,IE会在运行时将其加载到自身进程中去,所以一般情况下防火墙是无法禁止该软件访问网络的,这就为他的木马角色提供了先天的便利,而且比本机Sniff软件收集密码的优势是:无论是HTTP还是HTTPS的网站,不管通信通道是否加密,只要是IE页面的表单都能收集到。具体原理可以查阅《关于Alexa排名作弊的一些解惑》。

  系统在安装了Alexa工具条后,会在系统目录下生成AlxTB1.dll和AlxRes.dll两个DLL文件(有些情况下是AlxTB2.dll,而不是AlxTB1.dll。那是因为Alexa工具条会自动上网更新的原因)。Alexa工具条的主要二进制代码存在于AlxTB1.dll文件中,这个文件同时也被注册成多个COM组件,他完成了BHO和Toolbar Bands的COM接口,并将IE的WebBrowser控件封装为一个COM组件供AlxRes.dll调用。AlxRes.dll文件仅包含少量的二进制代码,大量的代码是HTML和javascript代码,他们以资源的形式存在于AlxRes.dll文件中,你可以通过res://AlxRes.dll/CHTML/about.html这样的URL来访问这些资源。也许你会奇怪:又不是做网站,为什么软件的代码会是javascript写的?这就是Alexa工具条垃圾的地方。Alexa工具条的主界面是由HTML+javascript实现的。这些javascript代码通过调用AlxTB1.dll实现的COM接口来实现软件的全部功能。这样做不仅导致软件的效率低下,而且产生大量的资源泄漏,绝对是一种VERY超级SB的开发模式,但是却为我们修改Alexa工具条的功能提供了方便——根本不需要CRACKER知识,只要一个PE资源修改工具就可以对Alexa工具条的代码进行修改了。

  二、破解Alexa工具条

  当然,Alexa也不是真傻,绝对不会蠢到让自己的代码被你用资源修改工具随便改。为了防止AlxRes.dll中的资源被随意修改,他采取了计算文件校验和的保护方法,要是发现文件被修改,就会拒绝加载。我们在修改代码前,必须破解这种保护机制。

  AlxTB1.dll导出一个名叫ChecksumResources的函数,这个函数就是用来计算文件校验和的。用c32asm反汇编AlxRes.dll文件,查看字符串调用列表,找到"ChecksumResources"字符串,跳转到调用该字符串的代码,于100017C0处。往下翻几行,在100017F6处找到一句跳转,采用爆破方式,用NOP指令覆盖JNZ指令即可。通俗点讲:就是将AlxRes.dll文件偏移"0x17F6"处的两个字节"75 11"改成"90 90",你可以使用WinHex之类的16进制编辑软件来修改。

::100017C0:: 68 9C700010 PUSH 1000709C :BYJMP JmpBy:100017A4,100017B1, ->: ChecksumResources
::100017C5:: 57 PUSH EDI
::100017C6:: FF15 1C500010 CALL [1000501C] >>>: KERNEL32.DLL:GetProcAddress
::100017CC:: 85C0 TEST EAX, EAX
::100017CE:: 74 0E JE SHORT 100017DE :JMPDOWN
::100017D0:: 8D4D DC LEA ECX, [EBP-24]
::100017D3:: 51 PUSH ECX
::100017D4:: FF35 44740010 PUSH DWORD PTR [10007444]
::100017DA:: FFD0 CALL EAX
::100017DC:: 59 POP ECX
::100017DD:: 59 POP ECX
::100017DE:: 57 PUSH EDI :BYJMP JmpBy:100017CE,
::100017DF:: FF15 18500010 CALL [10005018] >>>: KERNEL32.DLL:FreeLibrary
::100017E5:: 8D45 B8 LEA EAX, [EBP-48]
::100017E8:: 50 PUSH EAX
::100017E9:: 8D45 DC LEA EAX,

< 说到这个问题,可能有人就会说,那还不简单,直接用flash的ActionScript中的url方法不就搞定了,那么如果我们的UI人员设计完flash,但flash对应的链结还没有确定或者以后会变更怎么办?我需要的是能够在外部修改flash对应的链结。

  那直接在flash所在的object元素外部加<a></a>标签来控制不就行了,可能有些人会这么想,思路正确,但是行不通。呵呵,怎么办?百度一下先,呵呵,真是相当佩服某些人的牛脑,真牛,下面是一种解决的方法:

  首先,我们肯定是要先插入FLASH.因为,Flash默认是最高层.所以, 我经常会遇见Flash把下拉菜单挡住的情况. 把Flash文件放到一个层中,设为最底层,FLASH设为透明.
<div style="z-index:-1"> <!--1.设置FLASH为底层-->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="200" height="115">
<param name="movie" value="media.swf">
<param name="quality" value="high">
<embed src="http:///htmldata/2005-11-19/media.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="200" height="115"></embed>
<param name="wmode" value="transparent"> <!--2.必须把FLASH设置为透明-->
</object> </div>

  再接下来,就是在FLASH的层上再加上一层, Flash本身不能直接加入onclick.等事件,所以,只能借助别的东西啦. 就是在FLASH上加个透明层,
<div id="huiLayer" style="cursor: hand; position:absolute; left:10px; top:10px; width:200px; height:115px; z-index:1; visibility: visible;"><a href="http://www.cnlk.com">
<img src="http:///htmldata/2005-11-19/kong.gif" width="200" height="115" border="0"></a></div>
  论坛上面,给了一些解决方法,就是加个透明的层,但是,如果光有个透明层, 还是不能接受事件的. 更确切地说,是一部分可以,一部分不可以,和FLASH部分重叠的那一部分不行. 为什么不行.说实话,我也不清楚,我是试验得出来的...

  当我把这个层的背景颜色设为任意一种时,不是透明时,发现.可以接受事件了,在层上加了个
超连接,也可以.. 但是,这还不是我们要的结果.因为,把整个"精美"的FLASH给遮盖了.. 所以,有<img src="http:///htmldata/2005-11-19/kong.gif" width="200" height="115" border="0">

  我用PhotoShop做了个透明的图片kong.gif 大小都可以,但是必须是透明的!这样才不至于把底下的FLASH给遮盖住了.

  试验了一下... 成功了... 点击FLASH.其实是击中了FLASH上层的透明图片kong.gif
图片,就可以接受很多事件啦,onclick , onmouseover ,onmosueout ...... 给图片加个<a></a>超连接是再简单不过的事啦.. 这时,以上的问题是不是都解决了,把事件都给kong.gif接受! 单击事件, <div onclick="ok()" id="huiLayer" ...........

  不管是坐火车,还是飞飞机,过年都得回家,所以方法还是有的,Flash本身还提供了一种方法,相当的好用,就是在Flash内部通过FSCommand调用外部的脚本,个人认为这种方法简单实用,可控能力强,具体用法,就不在这里多说了,你在网上搜FSCommand关键键字就会啊到很多实例,不过还是有一点提示:在提供javascript版本的调用方法时,最好也提供一个vbscript的版本,否则调用可能会不成功。

  1. 了解你的网站所要传达的讯息和品牌。选择可以加强这些讯息的颜色。例如,如果在设计一个强调稳健的金融机构,那么就要选择冷色系、柔和的颜色,像是蓝、灰或绿。在这样的状况下,如果使用暖色系或活泼的颜色,可能会破坏了该网站品牌。

  2. 了解你的读者群。文化差异可能会使色彩产生非预期的反应。同时,不同地区与不同年龄层对颜色的反应亦会有所不同。年轻族群一般比较喜欢饱和色,但这样的颜色却引不起高年龄层的兴趣。

  3. 不要使用过多的颜色。除了黑色和白色以外,约选择四到五个颜色就够了。太多的颜色会导致混淆,也会拉走读者的注意力。

  4. 在阅读的部分使用对比色。颜色太接近无法产生足够的对比效果,也会妨碍观众阅读。白底黑字的阅读效果最好。

  5. 用灰阶来测试对比。当你在处理黑色、白色和灰色以外的颜色的时候,有时候会很难决定每个颜色的相对值。为了要确认你的色盘能提供足够的对比,你可以建立一个仿真网站,并将它转换成灰阶即可。

  6. 选择颜色要注意时效性。同一个色彩很容易就充斥着整个市场,且消费者很快的就对流行色彩感到麻木。但就另外一个角度来看,你可以使用几十年前的流行色彩,引起人们的怀旧之情。

  7. 选择色盘时请考虑功能性的颜色。别忘了将关键信息部分建立功能性的颜色,例如标题和超级链接等。

  8. 注意网站色差问题。每一个网站开发人员都知道,即使是网络通用颜色在跨平台显示的时候都会有些不同。记得要校正你的 gamma 值,并在不同的作业平台上测试你的色盘。




  先说这个“长”,中国网站的页面真是长啊,以至于我坐在电脑前浏览的时候经常会想,这个页面的最低端会不会已经搭拉到我的脚面上了。我们的万里长城是第几大奇迹来着?反正中国的网站应该紧排在她后面。

  我们的大型门户网站恐怕应该是长页面的领军者吧。现在能生存下来的大型门户各个实力不凡,又纷纷上市,其他网站能与他们页面相似应该也能说明实力相似吧,这几家大型门户已经给用户形成了“长则是好”的印象,于是众多网站都纷纷“长”起来了。无论是综合性网站还是专业性网站,只要有内容,就能做多长就做多长,没有内容,抄袭别人内容也要做长,以至于不少实力有限的网站只是首页很长,到了栏目页面(二级页面)就简陋的可怜了。

  长的基础就是要内容要多,这些众多的长网站在组织内容的思路上基本是一致的,就是把二级页面的内容摘要的放在首页上。首页分成若干个相应的通栏的大块儿(这样可以逐个部分的下载页面,易于显示),再在每两块之间加一条广告,最后再在页面的最上面加一个更综合的区域,所谓的重中之重,这样以来页面想短都短不了。

  按照Jakob Nielsen的说法:网站首页的长度不应该超过4屏。当然这个准则也未必就那么准确,但是至少应该承认页面不是越长越好的。

  第二,说说“闪”。就是网页上能动的东西 众所周知,网页文字的排版设计对于页面的整体效果有着非常重要的影响。就象传统的报刊杂志一样,我们将网页看作一张报纸、一本杂志来进行文字的排版处理,针对不同的需要,有可能需要使用一些特殊的文字排版技巧。比如做一个介绍古文的网页时,我们可能会用到文字竖排、文字从右读起的效果以增强页面表现力;做一个新闻页面,可能会用到段落首字下沉等效果,用以强调某条新闻。

  在一张报纸上、一本杂志上要实现这些效果并不难,但是我们如何在网页上实现这样的效果呢?下面就向大家介绍几种文字排版处理的技巧。

  1、段落首行自动缩进

  每个段落的首行要缩进两个汉字大小是众人皆知的常识,我们通常在每个段落首行加上多个“ ”标签来实现缩进,这样虽然能够达到目的,但是却过于麻烦。其实我们只要运用一些简单的CSS语法就可以一劳永逸地在一个页面中实现首行缩进。

<style type="text/css">
p{text-indent: 2em}
</style>

  通过上面的样式,页面中每段包含在标签<p>和</p>之间的段落都会自动缩进两个汉字字符大小。

  2、段落首字下沉

  我们阅读传统媒体时,经常看到如图1的效果,通过使用样式,我们也可以很轻松地实现类似效果。


图1 很常见的段落首字下沉效果


<style>
#chr:first-letter{font-size: 24pt;left: 0px; float: left;position: absolute }
</style>

  上面这段代码定义了一个首字大小为24pt的缩进,使用时我们只要在某个段落的标签中添上一个“id=chr”就可以了,例如下面的段落:

<p id=chr>柳永(987?-1053?)字耆卿,福建崇安人。……</p>

  3、文字竖排效果

  如下面的一段诗文,在网页上显示时文字呈竖直排布,非常适合诗词的文字编排。

<div style="line-height: 18px; text-align: center; writing-mode: tb-rl">
<pre>
长恨歌(片段)<br>白居易<br>
汉皇重色思倾国,御宇多年求不得。
杨家有女初长成,养在深闺人未识。
天生丽质难自弃,一朝选在君王侧。
……
</pre></div>

代码

  标签中的样式规定了文字的竖直排布,并且每行的间距为18像素,文字为中间对齐。网页读取时都会自动将空格去除后才显示,在诗文内容开始和结束部分分别加上标签<per>和</per>,可以使诗文内容按照自己的意愿精确显示,其效果如图2。
SyntaxHighlighter.highlight();
[!--infotagslink--]

相关文章

  • Elasticsearch工具cerebro的安装与使用教程

    这篇文章主要介绍了Elasticsearch工具cerebro的安装与使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-08
  • 微信小程序二维码生成工具 weapp-qrcode详解

    这篇文章主要介绍了微信小程序 二维码生成工具 weapp-qrcode详解,教大家如何在项目中引入weapp-qrcode.js文件,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下...2021-10-23
  • 国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程

    明天就是国庆节了,最近看到好多好友换了国庆风的头像,感觉这个挺有意思,就找到了类似的源码研究了一番,并进行了改造(并非原创,只是进行了改造,只要想分享一下实现思路)。下面就来看看如何实现一键生成国庆风头像小工具。&#8203;...2021-10-01
  • Vue组件实现旋转木马动画

    这篇文章主要为大家详细介绍了Vue组件实现旋转木马动画效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-07-23
  • 短视频(douyin)去水印工具的实现代码

    这篇文章主要介绍了市面上短视频(douyin)"去水印"的工具原来是这样实现的,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-30
  • Eclipse中安装反编译工具Fernflower的方法(Enhanced Class Decompiler)

    这篇文章主要介绍了Eclipse中安装反编译工具Fernflower的方法(Enhanced Class Decompiler),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-20
  • Vue组件文档生成工具库的方法

    本文主要介绍了Vue组件文档生成工具库的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-11
  • 时间戳与时间相互转换(php .net精确到毫秒)

    本文给大家分享的时间戳与时间相互转换(php .net精确到毫秒) ,感兴趣的朋友一起学习吧...2020-06-25
  • Delphi实现木马自我拷贝方法

    这篇文章主要介绍了Delphi实现木马自我拷贝方法,对于研究木马的运行原理很有帮助,需要的朋友可以参考下...2020-06-30
  • 介绍Android测试工具Espress及安装使用

    Espresso是一个API精确,简洁小巧,容易学习的针对APP的UI测试代码的小工具,可以用来测试Android开发,本文我们来介绍一下Espresso及Espresso的安装使用。 Espresso是...2016-09-20
  • Delphi实现木马文件传输代码实例

    这篇文章主要介绍了Delphi实现木马文件传输的方法,对于了解木马的运行原理有一定的帮助,需要的朋友可以参考下...2020-06-30
  • 基于C++自动化编译工具的使用详解

    本篇文章是对C++中自动化编译工具的使用进行了详细的分析介绍,需要的朋友参考下...2020-04-25
  • 基于C# 写一个 Redis 数据同步小工具

    Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这篇文章主要介绍了用 C# 写一个 Redis 数据同步小工具,需要的朋友可以参考下...2020-06-25
  • Java jar打包工具使用方法步骤解析

    这篇文章主要介绍了Java jar打包工具使用方法步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-15
  • 支持正则表达式更名的命令行工具

    这篇文章主要介绍了支持正则表达式更名的命令行工具,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • 超详细的Android开发调试工具ADB命令及安装介绍

    这篇文章主要介绍了Android调试工具ADB安装使用技巧,非常详细,有需要的朋友可以借鉴参考下,希望可以有所帮助,祝大家早日升值加薪...2021-09-09
  • Javac/javap 自带工具简单使用讲解

    这篇文章主要介绍了Javac/javap 自带工具简单使用讲解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-12
  • 第一次接触JS require.js模块化工具

    第一次接触JS require.js模块化工具,本文为大家介绍了JS模块化工具require.js教程第一课认识require.js,编写require.js,感兴趣的小伙伴们可以参考一下...2016-04-19
  • 详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)

    这篇文章主要介绍了微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-21
  • Illustrator的3D工具制作三维轮廓教程

    今天小编在这里就来给Illustrator的这一款软件的使用者们来说一说3D工具制作三维轮廓的教程,各位想知道具体信息的使用者,那么下面就快来看看小编给大家带来的教程吧。...2016-09-14