宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 4222|回复: 6

[原创] Delphi实现DLL远线程注入

[复制链接]

该用户从未签到

apoer 发表于 2010-4-26 15:08:52 | 显示全部楼层 |阅读模式

欢迎您注册加入!这里有您将更精采!

您需要 登录 才可以下载或查看,没有账号?注册

x
LoadLib函数返回值为Boolean型。参数一:类型DWORD型,目标进程标识(pid);参数二:类型string型,被注入的DLL路径。
  1. //DLL远程注入
  2. function LoadLib(dwPID:DWORD;DLLPath:string):Boolean;
  3. var
  4.   dw:DWORD;
  5.   hProcess:THandle;
  6.   hThread:THandle;
  7.   lpszRemoteFiles:LPWSTR;
  8.   pfnThreadRtn:Pointer;
  9.   LibPath:LPWSTR;
  10. begin
  11.   LibPath:=StringToOleStr(DLLPath);
  12.   hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,dwPID);
  13.   Result:=False;
  14.   if hProcess=0 then
  15.   begin
  16.     MessageBox(0,PChar('Unable OpenProcess,fail! error:'+ IntToStr(GetLastError)),'error',MB_OK+ MB_ICONERROR);
  17.     Exit;
  18.   end;
  19.   lpszRemoteFiles:=LPWSTR(VirtualAllocEx(hProcess,nil,sizeof(WCHAR)*lstrlenW(LibPath)+1,MEM_COMMIT, PAGE_READWRITE));
  20.   if lpszRemoteFiles=nil then
  21.   begin
  22.     MessageBox(0,PChar('Unable Apply Space,fail! error:'+ IntToStr(GetLastError)),'error',MB_OK+ MB_ICONERROR);
  23.     Exit;
  24.   end;
  25.   if WriteProcessMemory(hProcess,lpszRemoteFiles,LibPath,sizeof(WCHAR)*lstrlenW(LibPath)+1,dw)=False then
  26.   begin
  27.     MessageBox(0,PChar('Unable Write Adderss,fail! error:'+ IntToStr(GetLastError)),'error',MB_OK+ MB_ICONERROR);
  28.     Exit;
  29.   end;
  30.   pfnThreadRtn:=GetProcAddress(GetModuleHandle('Kernel32.dll'),'LoadLibraryW');
  31.   if pfnThreadRtn=nil then
  32.   begin
  33.     MessageBox(0,PChar('Unable Get Function Adderss,fail! error:'+ IntToStr(GetLastError)),'error',MB_OK+ MB_ICONERROR);
  34.     Exit;
  35.   end;
  36.   hThread:=CreateRemoteThread(hProcess,nil,0,pfnThreadRtn,lpszRemoteFiles,0,dw);
  37.   if hThread=0 then Exit;
  38.   WaitForSingleObject(hThread,INFINITE);
  39.   VirtualFreeEx(hProcess,lpszRemoteFiles,0,MEM_RELEASE);
  40.   CloseHandle(hThread);
  41.   CloseHandle(hProcess);
  42.   Result:=True;
  43. end;
复制代码
调用方法:
  1. if  LoadLib(目标进行ID,DLL路径)=True then form.Close ;
复制代码

该用户从未签到

保护伞 发表于 2010-4-26 15:15:44 | 显示全部楼层
來看下一下,~最近在學DELPHI ,目標是寫一整套登錄器

该用户从未签到

朽龙 发表于 2010-5-2 16:11:02 | 显示全部楼层
源码源码
我要源码

该用户从未签到

hzjzq2000 发表于 2010-6-27 10:28:01 | 显示全部楼层
我也希望能够看到源码。
  • TA的每日心情
    开心
    2012-7-29 00:25
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    花心胡萝卜 发表于 2010-8-4 09:38:18 | 显示全部楼层
    比较感兴趣

    该用户从未签到

    mqcoo 发表于 2010-8-11 16:42:02 | 显示全部楼层
    学习中。。。。支持下啊

    该用户从未签到

    hzjzq2000 发表于 2010-8-12 10:44:04 | 显示全部楼层
    学习下先。顶一个
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2024-12-22 21:04 , File On Powered by Discuz! X3.49

    快速回复 返回顶部 返回列表