VB木马也疯狂
/***************************************************
小金注:这是我在2003年写的文章,当初想给X档案精华本投稿的,后来因为太长了,土豆要我换写了那篇《编程实现浏览器控制》,这篇文章就一直搁浅在硬盘上了。到今天(2005-6-5)才想起来,真是对不起大家~~~~>__<~~~~~
OK,言归正传,因为年代的关系,其中的一些例子和思想也许会是错误的或者过时的,希望大家多多包涵,毕竟,已经过了几年了……
****************************************************/
一、开篇废话一箩筐
VB写的BackDoor/Trojan似乎是与尴尬同在的,不信?你去各大技术论坛发帖问问“小弟想做个木马,用什么开发好啊?”,大多数Expert级的建议都是“VC++、C++ Builder、Delphi”,唯独把VC++的同门兄弟VB拒之门外。难道VB真的就这么烂?进一步问问吧,高手们会给你列举VB的以下“好处”:
1.必须有MSVBVM60.DLL(VB6.0)、MSVBVM50.DLL(VB5.0)存在,否则VB木马就只能当花瓶了。
2.看看你用了多少个ActiveX吧——“Can't create Object,refused to run”
3.运行时例外错误,突然蹦出个窗口来告诉马场主:“嘿,我是VB写的木马,我崩溃了,啦啦啦:P”
4.超级不稳定,不知道什么时候就挂了。
5.体积庞大……
以上的确是在说实话……由于VB编写的程序有很多致命弱点,所以“聪明人”的首选当然是VC++、Delphi,但这并不能说VB就是穷途末路,记住,程序写得怎么样,看的是编写者的水平,而不是看他用什么语言!
开动你的脑筋,做最周到的考虑,尽最精细的分析,就让VB木马也疯狂一回!
二、忍住ActiveX的诱惑——纯API编程
最基本的重点!别把后门技术与一般编程混为一谈,平时写程序喜欢挂多少个ActiveX随便你,但是在这里不可以!要想VB木马能四处撒欢,就必须先把VB程序无形的束缚——ActiveX技术抛掉,否则它就如一条缰绳,把你费尽苦心“拼装”出来的木马给牢牢的拴在你家里——难道你还想为你的马驹做个InstallShield?
抛掉了ActiveX,还有什么?Windows给我们提供了强大的API(Application Programming Interface,应用程序编程接口)支持,为什么C代码这么简洁?就因为Windows环境的大部分C代码实际上是与系统API紧紧结合的,微软和第三方开发商已经提前把大量的API调用声明写入头文件(C++ Header File)了,VC程序员不必自己再写一大堆函数声明,直接用#include把相关的API声明的头文件拉进代码就可以!大家可以找个简单的C写的Exploit代码来看看头文件声明,例如:
====================================================
#include <winsock.h>
WSAStartup(MAKEWORD(1,1),&wsaData);
SockRaw=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);
====================================================
而在VB里要写一大堆:
====================================================
Declare Function WSAStartup Lib "Winsock.dll" (ByVal wVR As Integer, lpWSAD As WSADataType) As Integer
Declare Function socket Lib "Winsock.dll" (ByVal af As Integer, ByVal s_type As Integer, ByVal protocol As Integer) As Integer
Const AF_INET = 2
Const SOCK_RAW = 3
Const IPPROTO_ICMP = 1
ret = WSAStartup(&H101, wsadStartupData)
SockRaw = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)
====================================================
对比两段代码,看出什么没有?VC程序员可以用一句#include <winsock.h>就把WSAStartup、socket、AF_INET等API声明和常数定义给省略了,而VB程序员就有得苦了。难怪ActiveX可以在VB的天下横行无忌——偷懒谁不会啊?
但是我们是在做木马,要偷懒你就睡觉去吧,要想你的马驹在别人的马场里撒欢,就要对ActiveX说“NO”!我们只剩下API,好好发挥吧!
小金注:这是我在2003年写的文章,当初想给X档案精华本投稿的,后来因为太长了,土豆要我换写了那篇《编程实现浏览器控制》,这篇文章就一直搁浅在硬盘上了。到今天(2005-6-5)才想起来,真是对不起大家~~~~>__<~~~~~
OK,言归正传,因为年代的关系,其中的一些例子和思想也许会是错误的或者过时的,希望大家多多包涵,毕竟,已经过了几年了……
****************************************************/
一、开篇废话一箩筐
VB写的BackDoor/Trojan似乎是与尴尬同在的,不信?你去各大技术论坛发帖问问“小弟想做个木马,用什么开发好啊?”,大多数Expert级的建议都是“VC++、C++ Builder、Delphi”,唯独把VC++的同门兄弟VB拒之门外。难道VB真的就这么烂?进一步问问吧,高手们会给你列举VB的以下“好处”:
1.必须有MSVBVM60.DLL(VB6.0)、MSVBVM50.DLL(VB5.0)存在,否则VB木马就只能当花瓶了。
2.看看你用了多少个ActiveX吧——“Can't create Object,refused to run”
3.运行时例外错误,突然蹦出个窗口来告诉马场主:“嘿,我是VB写的木马,我崩溃了,啦啦啦:P”
4.超级不稳定,不知道什么时候就挂了。
5.体积庞大……
以上的确是在说实话……由于VB编写的程序有很多致命弱点,所以“聪明人”的首选当然是VC++、Delphi,但这并不能说VB就是穷途末路,记住,程序写得怎么样,看的是编写者的水平,而不是看他用什么语言!
开动你的脑筋,做最周到的考虑,尽最精细的分析,就让VB木马也疯狂一回!
二、忍住ActiveX的诱惑——纯API编程
最基本的重点!别把后门技术与一般编程混为一谈,平时写程序喜欢挂多少个ActiveX随便你,但是在这里不可以!要想VB木马能四处撒欢,就必须先把VB程序无形的束缚——ActiveX技术抛掉,否则它就如一条缰绳,把你费尽苦心“拼装”出来的木马给牢牢的拴在你家里——难道你还想为你的马驹做个InstallShield?
抛掉了ActiveX,还有什么?Windows给我们提供了强大的API(Application Programming Interface,应用程序编程接口)支持,为什么C代码这么简洁?就因为Windows环境的大部分C代码实际上是与系统API紧紧结合的,微软和第三方开发商已经提前把大量的API调用声明写入头文件(C++ Header File)了,VC程序员不必自己再写一大堆函数声明,直接用#include把相关的API声明的头文件拉进代码就可以!大家可以找个简单的C写的Exploit代码来看看头文件声明,例如:
====================================================
#include <winsock.h>
WSAStartup(MAKEWORD(1,1),&wsaData);
SockRaw=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);
====================================================
而在VB里要写一大堆:
====================================================
Declare Function WSAStartup Lib "Winsock.dll" (ByVal wVR As Integer, lpWSAD As WSADataType) As Integer
Declare Function socket Lib "Winsock.dll" (ByVal af As Integer, ByVal s_type As Integer, ByVal protocol As Integer) As Integer
Const AF_INET = 2
Const SOCK_RAW = 3
Const IPPROTO_ICMP = 1
ret = WSAStartup(&H101, wsadStartupData)
SockRaw = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)
====================================================
对比两段代码,看出什么没有?VC程序员可以用一句#include <winsock.h>就把WSAStartup、socket、AF_INET等API声明和常数定义给省略了,而VB程序员就有得苦了。难怪ActiveX可以在VB的天下横行无忌——偷懒谁不会啊?
但是我们是在做木马,要偷懒你就睡觉去吧,要想你的马驹在别人的马场里撒欢,就要对ActiveX说“NO”!我们只剩下API,好好发挥吧!
-
相关文章