ARP联盟图文中心下载中心手机频道最近更新软件最近更新文章网络热点
您当前的位置→图文中心安全防范简单Crack与Hacker思维打造灵巧后门
站内搜索:

简单Crack与Hacker思维打造灵巧后门


2009/3/29  编辑:佚名 来源:本站整理 

适合读者:破解迷、黑兵器库老板
前置知识:Crack工具的基本使用方法
Icefire:长久以来破解爱好者们都在不断地寻求一种方式,可以突破Cracker局限的方式,可以不单单在各类软件中随意驰骋,更能在网络这块天地中自由翱翔。或许本文就提供了一种让二者结合更巧妙的方式
适合读者:破解迷、黑兵器库老板

前置知识:Crack工具的基本使用方法

Icefire:长久以来破解爱好者们都在不断地寻求一种方式,可以突破Cracker局限的方式,可以不单单在各类软件中随意驰骋,更能在网络这块天地中自由翱翔。或许本文就提供了一种让二者结合更巧妙的方式,希望能给你一点启发。

简单Crack与Hacker思维打造灵巧后门

文/ dickboy

相信这篇文章的出现将造成网络电视之类的东西漫天飞舞(或许还有一种新兴后门),我可没有一点点私心啊,知道这点东西就立刻和大家分享了。

同学想看网络电视,可惜程序要注册,把我这个义工叫了过去,几下搞定后,一看注册费……还真不是一般的贵!要不咱也写一个得了?说不定也可以搞点钱花花。住宿费还欠着呢,不交钱不让考试,穷人家的孩子啊(Icefire:同道同道!想当初……唉,还是不想了,大过年的。),5555……。可惜我也不知道怎么写,我还没有学过Windows编程,还记得上期杂志我的文章《Crack新手进化篇》吗?我的补丁程序可是黑忽忽的界面啊!哎,没有办法啊,不会Windows编程,只好分析别人的程序了,就拿网络电视小精灵下手吧!

Peid检查后发现是用Delphi编写的,郁闷,很难找到是哪个函数自动打开Realplay或Media Player播放影音资料的,要是用VC++编写的就好了。到网上找了几个类似的网络电视程序,不是Delphi就是VB写的。没有一个VC++的,只好对网络电视小精灵动真功夫了——按江湖规矩,我们单挑……那个拿葱的大婶你过来!

Crack思维

用Dede反编译,Tnit1的TForm1看到很多事件,仔细看看,看到了一个CCTV1Click事件,双击来到对应代码:

004A1A80   53                     push    ebx

004A1A81   8BD8                   mov     ebx, eax

004A1A83   6A01                   push    $01

004A1A85   6A00                   push    $00

004A1A87   6A00                   push    $00

* Possible String Reference to: 'http://www.cctv.com/sports/'

|

004A1A89   68A01A4A00             push    $004A1AA0

004A1A8E   6A00                   push    $00

004A1A90   8BC3                   mov     eax, ebx

* Reference to: QForms.TCustomForm.GetClientHandle(TCustomForm):QWorkspaceH;

|

004A1A92   E88501FAFF             call    00441C1C

004A1A97   50                     push    eax

* Reference to: shell32.ShellExecuteA()

|

004A1A98   E89B94F8FF             call    0042AF38

004A1A9D   5B                     pop     ebx

004A1A9E   C3                     ret

嘿嘿,原来用的ShellExecuteA。打开Ollydbg,载入网络电视小精灵,下断点在004A1A80,也就是CCTV1Click事件开始的第一条语句。运行,点击中央一台,开始播放了……等等,不对啊,竟然没有断下?!仔细看看网址,原来用的ShellExecuteA是打开网页http://www.cctv.com/sports/的,CCTV1Click不是调用Media Player.exe打开中央一台的事件,那这个到底是什么东东呢?打开网络电视小精灵看看,在网络导航的体育栏目看到了原来是点击CCTV体育的事件,晕倒。

继续,再找一个熟悉的:BBC1Click,从名字上看,应该是播放BBC电台或者电视台的事件(不知道有没有BBC电视台,呵呵),双击来到对应的地方,发现这次的代码和上面的完全不同:

0048E298   BAB0E24800             mov     edx, $0048E2B0

* Reference to control TForm1.WebBrowser1 : TWebBrowser

|

0048E29D   8B805C040000           mov     eax, [eax+$045C]

* Reference to : TWebBrowser._PROC_0046395C()

|

0048E2A3   E8B456FDFF             call    0046395C

0048E2A8   C3                     ret

分析发现网络电视小精灵似乎使用TWebBrowser构件来播放网上的影音资料。赶紧从网上找了一下TWebBrowser的资料,原来是Delphi的一个控件……不会啊,没办法。不能死心,再找其它的事件——12:00了,还是睡觉再说,明天早上还要上课呢!

刚躺到床上,突然想起前面的ShellExecuteA不是可以打开网页吗?那还有没有其它作用呢?赶紧起床!用IDA反汇编网络电视小精灵,找到ShellExecuteA(不要问我怎么找的,在Names选项),IDA就是好啊,给出了注释:

jmp     ds:__imp_ShellExecuteA ; Opens or prints a specified file

看到了吗?简单翻译应该是:打开或打印一个具体文件。

看来有希望,网上看电影不也是打开一个具体文件吗?还记得用Realone网上看电影吧,突然掉线的时候,是不是弹出一个对话框,说什么*.rm不能播放。赶紧用百度查了查ShellExecuteA的资料,哇,太多了,大部分都是VB中怎么用这个控件,没有一个我要的。灵机一动,换一种思维方式:当我们点击一个电视台或者广播台的时候,不是用Media Player.exe打开就是用Realplay.exe打开的。所以,要是可以用ShellExecuteA并且用Realplay.exe作为参数可以打开一个网上的影音文件,那么用“ShellExecuteA realplay.exe”搜索应该是有结果的。

好了,搜索“ShellExecuteA realplay.exe”,没有发现,,不会吧?Ok,再来搜索ShellExecuteA  Media Player.exe,也是一个结果也没有。只好出绝招了,拿出Cracker必备的API手册,查ShellExecuteA,居然是用VB描述的……

第二天上课的时候没有心思,继续想这个问题,没有什么结果,回到寝室,查MSDN,有发现了:

HINSTANCE ShellExecute(     
    HWND hwnd,

    LPCTSTR lpOperation,

    LPCTSTR lpFile,

    LPCTSTR lpParameters,

    LPCTSTR lpDirectory,

    INT nShowCmd

);

lpOperation支持的用法有:

edit

Launches an editor and opens the document for editing. If lpFile is not a document file, the function will fail.

explore

Explores the folder specified by lpFile.

find

Initiates a search starting from the specified directory.

open

Opens the file specified by the lpFile parameter. The file can be an executable file, a document file, or a folder.

print

Prints the document file specified by lpFile. If lpFile is not a document file, the function will fail.

英语菜,就不翻译了,更具体请查阅MSDN,我怕说我骗稿费。到这里,你有什么想法?lpOperation已经指出了一些操作,对编写网络电视有用的只有上面的“open”。后来从网上找到了《深入浅出ShellExecute》:

Q:如何打开一个网页?

ShellExecute(this->m_hWnd,"open","notepad.exe", "c:\\MyLog.log","",SW_SHOW );

As you can see, I haven't passed the full path of the programs.

ShellExecute(this->m_hWnd, "open", "http://www.google.com";, "", "", SW_SHOW );

你觉得哪个更有用呢?第一个?实验一下,假如我替换Notepad.exe为Media Player.exe,替换“c:\\MyLog.log”为“d:\\t.mid”,当然这里的“d:\\t.mid”是真实存在的MID音乐,这样行吗?先简单测试一下。选择开始菜单->运行,输入“Media Player.exe d:\t.mid”,弹出Windows Media Player开始播放t.mid了。

赶快用VC新建一个Win32 Console Application工程,输入如下代码:

#include <windows.h>

int main(int argc, char* argv[])

{

       ShellExecute(0, "open", "Media Player.exe", "d:\\t.mid", "", SW_SHOW);

       return 0;

}

执行,呵呵,是不是一个黑忽忽的界面之后,弹出Windows Media Player开始播放t.mid了?成功!

小提示:Windows 98不是Media Player.exe,98下面是Mplayer2.exe,请大家对照自己的机器做实验。文中的机器是Windows XP。

第二个例子打开一个网页,用什么打开呢?用IE,确切的说是用默认的浏览器,因为这里没有指定有什么打开,也就是说打开网页有一个关联程序,也就是默认的浏览器。发散一下思维,如果把这里的http://www.google.com换成其它呢?这里我换成“d:\\t.mid”,赶快用VC新建一个Win32 Console Application工程,输入如下代码:

#include <windows.h>

int main(int argc, char* argv[])

{

       ShellExecute(0, "open", "d:\\t.mid", "", "", SW_SHOW);

//注意与上面的不同之处,去掉了“Media Player.exe”,同时要打开文件的具体位置成了第3个参数

       return 0;

}

执行,呵呵,是不是一个黑忽忽的界面之后弹出Windows Media Player开始播放t.mid了。因为我测试的机器默认MID关联Windows Media Player。这就是为什么我在上面强调“打开网页关联默认的浏览器”,如果你的机器默认关联其它的播放器(如豪杰系列),则应该弹出豪杰的超级音频解霸播放t.mid。

已经出现曙光了,现在到Baidu找一首歌曲,我找的是:陈慧琳-记事本。查看属性,得到地址:http://mp3.baidu.com/u?u=http://www.jsshmzx.com/zhuwei/geci/flash/ZzI$.mp3

继续修改程序:

hellExecute(0, "open", "http://mp3.baidu.com/u?u=http://www.jsshmzx.com/zhuwei/geci/flash//ZzI$.mp3", "", "", SW_SHOW );

小提示:这个地址是Baidu搜索的,到读者测试的时候可能已经过时了。

运行,Windows Media Player开始播放陈慧琳的记事本了!成功!

   

Hacker思维

当我们上网看电视的时候,Windows Media Player或者Realone会打开网络电视内置的网址,这个网址是要作为Windows Media Player或者Realone的请求发给服务器的,所以这里有两个方法:

1.  既然是网络电视内置的网址,那么我们可以先用W32dasm反汇编之后去找网址。

这里仍以网络电视小精灵为例,用W32dasm反汇编,会发现大量的网址,但是仔细看,会发现几乎没有一个网址是用来看电视和听广播的,都是网络电视小精灵里面网络导航提供的网址。似乎此路不通?等等,再用Ollydbg载入网络电视小精灵,查看字符参考,没有吃惊吧?基本可以找到所有的看电视和听广播的网址。

2.  既然这个网址是要作为Windows Media Player或者Realone的请求发给服务器,所以我们可以用Sniffer获得真实地址。

测试时我用的Commview,个人觉得这是我等菜鸟最好用的Sniffer,这里我简单说一下,设置过滤条件:IP为自己机器的IP,只捕获流出的数据包。设置协议,因为播放影音文件一般的协议有这些:mms://,rtsp://等。如果捕获不到地址,放宽条件就可以了。

Ok,现在解决了所有问题,剩下的就是不停地加入网址,写代码了。下面谈谈怎么利用ShellExecute做一个属于自己的隐蔽的后门,这也是从上面的内容中引发的灵感。先看以下代码:

// test.cpp:定义控制台应用程序的入口点

//

#include <windows.h>

int main(int argc, char* argv[])

{

      ShellExecute(0, "open", "Media Player.exe", "d:\\t.mid", 0, SW_HIDE);

      return 0;

}

测试上面的代码,运行,有什么发现吗?应该有吧:黑忽忽的界面之后,听到音乐了吧!但是看到“Media Player”的界面了吗?没有!这是因为最后一个参数改为了SW_HIDE;如果这里第2个参数不用Open,而用0则不会呈现“Media Player”的界面,但是却在播放音乐——想到了什么?仔细想想,如果这里不是Media Player.exe,而是你的木马xx.exe?你用另外的一个正常的程序悄悄启动xx.exe?呵呵,这个想法不错吧!这可是拥有不容易被杀死的极品后门啊!

参考消息:http://www.arpun.com/好了,文章到这里就结束了,希望大家能看明白,我要在上面写出ShellExecute的原型就是因为我想让朋友们去发掘每一个参数的意义,说不定就能发现宝藏哦!
 

更多精彩,请查看本类栏目: 安全防范
除非注明,ARP联盟文章来于网络,投稿原创等,转载请以链接形式标明本文地址。
本文地址:http://www.arpun.com/article/2718.html

相关文章
  • ·修复U盘的几个简单方法
  • ·[图文]OPPO R9开箱图赏与简单体验评测
  • ·[图文]清理流氓软件新闻简单报的方法
  • ·[组图]简单粗暴批量PS去除复杂水印方法
  • ·盗qq号密码最简单方法
  • ·[图文]4个简单的步骤使你的直觉变敏锐
  • ·[图文]乐1和小米4简单对比介绍
  • ·苹果iPhone设置1位数简单密码教程
  • 发表评论
    栏目列表
    阅读排行
    本类最新
    网站帮助 - 广告合作 - 下载声明 - 网站地图