DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: palmcivetcn1
今日帖子: 18
在线用户: 12
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 loubingtt (我的生活与你无关) ★☆☆☆☆ -
盒子活跃会员
2003/10/23 16:19:51
标题:
现学现卖(进程深度隐藏 已更改) 浏览:3678
加入我的收藏
楼主: 上次BIOS上传的ctrl+alt+del拦截用的远程写入。我也上传一个,但没写他那个功能,你自己可以写一个和他一样的哦:)
----------------------------------------------
按此在新窗口浏览图片
作者:
男 cnxxx (我本高手) ★☆☆☆☆ -
盒子活跃会员
2003/10/23 16:26:11
1楼: 不要把,我一点click here资源管理器就提示错误,向病毒一样。
http://delphibbs.com/delphibbs/dispq.asp?lid=563632
你看看这篇帖子,下面的代码:

AttachToProcess('Explorer.Exe', 'MyDll.Dll' );

//查找指定的进程,然后返回进程ID
procedure FindAProcess(const AFilename:string; const PathMatch:Boolean; var ProcessID: DWORD);
//AFilename为要查找(进程ID)的文件名(可以包行路径)
//PathMatch为查找的时候是否匹配路径
var
 lppe:TProcessEntry32;
 SsHandle:Thandle;
 FoundAProc, FoundOK:boolean;
begin
 SsHandle   := CreateToolHelp32SnapShot(TH32CS_SNAPALL,0);
 FoundAProc := Process32First(Sshandle,lppe);
 //枚举Process,然后判断是否是所要查找的Process
 while FoundAProc do
 begin
   //根据PathMatch的值来决定匹配的方式
   if PathMatch then
      FoundOK:=AnsiStricomp(lppe.szExefile,PChar(AFilename))=0
   else
      FoundOK:=AnsiStricomp(PChar(ExtractFilename(lppe.szExefile)),PChar(ExtractFilename(AFilename)))=0;

   if FoundOK then
   begin
     ProcessID:=lppe.th32ProcessID;
     break;
   end;
   FoundAProc :=Process32Next(SsHandle,lppe);
 end;
//  if not FoundAProc then showmessage(SysErrorMessage(GetLastError));
 CloseHandle(SsHandle);
end;

//激活或者停止指定的权限
function EnabledDebugPrivilege(const bEnabled: Boolean):Boolean;
var
 hToken: THandle;
 tp: TOKEN_PRIVILEGES;
 a: DWORD;
const
 SE_DEBUG_NAME = 'SeDebugPrivilege';
begin
 Result:=False;
 //打开当前Process的令牌(我一直叫Token为令牌)
 if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken)) then
 begin
   //调整令牌的权限,也就是加上或者取消调试权限(SE_DEBUG_NAME)
   tp.PrivilegeCount :=1;
   LookupPrivilegeValue(nil,SE_DEBUG_NAME ,tp.Privileges[0].Luid);
   if bEnabled then
     tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
   else
     tp.Privileges[0].Attributes := 0;
   a:=0;
   AdjustTokenPrivileges(hToken,False,tp,SizeOf(tp),nil,a);
   Result:= GetLastError = ERROR_SUCCESS;
   CloseHandle(hToken);
 end;
end;

//在指定的进程中插入一个DLL文件
function AttachToProcess(const HostFile, GuestFile : string;const PID:DWORD=0):DWORD;
//HostFile为要绑定的宿主文件(Exe文件),GuestFile为要嵌入的客户文件(Dll文件)
//如AttachToProcess('D:\TESTDLL.DLL','Notepad.exe') ;
var
 hRemoteProcess: THandle;
 dwRemoteProcessId:DWORD;
 cb:DWORD;
 pszLibFileRemote: Pointer;
 iReturnCode:Boolean;
 TempVar:DWORD;
 pfnStartAddr:TFNThreadStartRoutine;
 pszLibAFilename: PwideChar;
begin
 Result:=0;
 //激活当前Process的SE_DEBUG_NAME权限,如果不激活的话,一些服务进程将无法
 //打开
 EnabledDebugPrivilege(True);

 //给pszLibAFilename分配内存,为什么是Length(GuestFile)*2+1呢,因为咱们
 //等一会儿,要调用函数LoadLibraryW,而LoadLibraryW函数需要的参数是WideChar型
 Getmem(pszLibAFilename,Length(GuestFile)*2+1);
 StringToWideChar(GuestFile,pszLibAFilename,Length(GuestFile)*2+1);

 if PID>0 then dwRemoteProcessID:=PID else FindAProcess(HostFile,False,dwRemoteProcessID);
 //由于我们后面需要写入远程进程的内存地址空间并建立远程线程,所以需要申请
 //足够的权限(PROCESS_CREATE_THREAD、VM_OPERATION、VM_WRITE)。
 //然后,我们可以建立LoadLibraryW函数这个线程来启动我们的DLL,LoadLibraryW
 //函数是在kernel32.dll中定义的,用来加载DLL文件,它只有一个参数,就是DLL
 //文件的绝对路径名pszLibAFilename,(也就是DLL的全路径文件名),但是由于
 //DLL是在远程进程内调用的,所以我们首先还需要将这个文件名复制到远程地址空
 //间:(否则远程线程是无法读到这个参数的)
 hRemoteProcess := OpenProcess(PROCESS_CREATE_THREAD + //允许远程创建线程
                               PROCESS_VM_OPERATION+ //允许远程VM操作
                               PROCESS_VM_WRITE,//允许远程VM写
                               FALSE, dwRemoteProcessId);

 //计算DLL路径名需要的内存空间
 cb := (1 + lstrlenW(pszLibAFilename)) * sizeof(WCHAR);
 //使用VirtualAllocEx函数在远程进程的内存地址空间分配DLL文件名缓冲区
 pszLibFileRemote := PWIDESTRING( VirtualAllocEx( hRemoteProcess, nil, cb, MEM_COMMIT, PAGE_READWRITE));
 //使用WriteProcessMemory函数将DLL的路径名复制到远程进程的内存空间
 TempVar:=0;
 iReturnCode := WriteProcessMemory(hRemoteProcess,pszLibFileRemote, pszLibAFilename, cb, TempVar);
 if iReturnCode then
 begin
   //计算LoadLibraryW的入口地址
   pfnStartAddr := GetProcAddress(GetModuleHandle('Kernel32'), 'LoadLibraryW');
   //OK,万事俱备,我们通过建立远程线程时的地址pfnStartAddr(实际上就是LoadLibraryW
   //的入口地址)和传递的参数  pszLibFileRemote(实际上是我们复制过去的DLL的全路
   //径文件名)在远程进程内启动我们的DLL:
   //启动远程线程LoadLibraryW,通过远程线程调用用户的DLL文件
   TempVar:=0;
   Result := CreateRemoteThread(hRemoteProcess, nil, 0, pfnStartAddr, pszLibFileRemote, 0, TempVar);
 end;
 Freemem(pszLibAFilename);
end;
----------------------------------------------
黑夜中,一眼望去,我就是高手。
作者:
男 loubingtt (我的生活与你无关) ★☆☆☆☆ -
盒子活跃会员
2003/10/23 18:15:03
2楼: 谢谢楼上提醒。是welcome代码中图标文件路径问题。自己可以解决,在代码里改以下即可
----------------------------------------------
按此在新窗口浏览图片
作者:
男 kingking (kk) ★☆☆☆☆ -
普通会员
2003/10/24 9:02:51
3楼: 过分了吧!小人!为什么会连接到你的ftp去?!!!你敢说你隐藏的welcome.dll没问题吗?为什么其他源码都有,就唯独UnitDll.pas不敢一起发上来?!!!卑鄙。下流。人心xx啊。同志们小心。。。还假装说什么bios怎么怎么,图标怎么怎么。越显卑鄙之处。
----------------------------------------------
-
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/10/24 10:39:13
4楼: 真的假的?先删除附件再听候发落。
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 delphi_wx (delphi_wx) ★☆☆☆☆ -
盒子活跃会员
2003/10/24 14:25:06
5楼: 搞什么
----------------------------------------------
-
作者:
男 catanx (catanx) ★☆☆☆☆ -
盒子活跃会员
2003/10/24 14:50:05
6楼: 有什么问题
----------------------------------------------
我常逛的一个电影站,写写程序看看电影,不要太累了,会死人的:)
www.ddvan.com
很有特色哦,自己发觉吧。
作者:
男 loubingtt (我的生活与你无关) ★☆☆☆☆ -
盒子活跃会员
2003/10/26 14:33:41
7楼: 我上传什么东西只有一个目的:希望能为大家做点什么。我敢指天发誓:我没做任何对不起大家的事。在这里我一句脏话都没说过。。。。。算了。我不想说了。心痛,既然大家不相信我。那么请站长把我的帐户删了吧

----------------------------------------------
按此在新窗口浏览图片
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/10/26 18:29:19
8楼: 7楼太过激烈了,我也是对着用户负责,也许的确错怪了你,不过那个dll文件没有代码,我运行过提示错误,资源管理器非法关闭,所以小心一点好,以后任何一个人传上来的代码可疑,只是可疑哈,并不是所有高手都能识别他是否真的有害,所以除非本人出来澄清,还是不推荐大家下载。
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 pcc11051059 (人) ★☆☆☆☆ -
盒子活跃会员
2003/11/2 18:11:54
9楼: warning   极度危险,点击后就象死机了一样!!
操作系统: win98.
  care!

----------------------------------------------
--_--
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS