注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无翼风的网易博客

欢迎光临无翼风的网易博客

 
 
 

日志

 
 

把自己的代码注入explorer.exe。详细参见源代码  

2010-03-25 18:42:59|  分类: 编程与电脑技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#define UNICODE
#define _UNICODE 
#include 
#include 
#include 
typedef struct _remoteparameter
{
DWORD       rpfindfirstfile;
DWORD       rpdeletefile;
DWORD       rpfindclose;   

HANDLE      rpfilehandle;
WIN32_FIND_DATA rpfdata;
TCHAR       rptname[MAX_PATH];
}REMOTEPARAMETER, *PREMOTEPARAMETER;
DWORD GetProcessId(LPCTSTR str) 

    HANDLE         hProcessSnap = NULL; 
    PROCESSENTRY32 pe32      = {0}; 

    // Take a snapshot of all processes in the system.
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == (HANDLE)-1) 
        return -1; 

    // Fill in the size of the structure before using it.
    pe32.dwSize = sizeof(PROCESSENTRY32); 

    // Walk the snapshot of the processes, and for each process, 
    
    if (Process32First(hProcessSnap, &pe32)) 
    { 
        do
   {
    if(_tcsicmp(str,pe32.szExeFile)==0)
    {
     CloseHandle (hProcessSnap); 
     return pe32.th32ProcessID;
    }
   }
        while (Process32Next(hProcessSnap, &pe32)); 
    } 
    
    CloseHandle (hProcessSnap); 
    return -1; 
}
DWORD WINAPI remote(LPVOID pvparam)
{
PREMOTEPARAMETER erp=(PREMOTEPARAMETER)pvparam;
    typedef HANDLE (WINAPI *EFindFirstFile)(LPCTSTR, LPWIN32_FIND_DATA);
typedef BOOL   (WINAPI *EDeleteFile)(LPCTSTR);
typedef BOOL   (WINAPI *EFindClose)(HANDLE);
EFindFirstFile       tFindFirstFile;
EDeleteFile          tDeleteFile;
EFindClose           tFindClose;
tFindFirstFile=(EFindFirstFile)erp->rpfindfirstfile;
tDeleteFile=(EDeleteFile)erp->rpdeletefile;
tFindClose=(EFindClose)erp->rpfindclose;


erp->rpfilehandle=tFindFirstFile(erp->rptname,&erp->rpfdata);
if(erp->rpfilehandle!=INVALID_HANDLE_VALUE)
{
   if(!tDeleteFile(erp->rptname))
   {
    return -1;
   }
}
if(!tFindClose(erp->rpfilehandle))
{
   return -1;
}

return 0;
}
int main()
{
   // TODO: Place code here.
TCHAR name[20];
_tcscpy(name,_T("c:\\shenyue.txt"));
HANDLE            ethread;
DWORD remotepid;
int cb;
REMOTEPARAMETER   rp;
HINSTANCE         hkernel32;
LPVOID remotethr;
LPVOID remotepar;
remotepid=GetProcessId(_T("explorer.exe"));
if(remotepid==-1)
   return -1;
HANDLE rphandle=OpenProcess(PROCESS_CREATE_THREAD |     
                         PROCESS_VM_OPERATION |     
              PROCESS_VM_WRITE,           
           FALSE,remotepid);
cb=sizeof(TCHAR)*4*1024;
remotethr=(PTSTR)VirtualAllocEx(rphandle,NULL,cb,MEM_COMMIT,PAGE_EXECUTE_READWRITE); 
if(remotethr==NULL)
{
        CloseHandle(rphandle);       
   return -2;
}
    if(WriteProcessMemory(rphandle,remotethr,(LPVOID)remote,cb,NULL)==FALSE)
{
        CloseHandle(rphandle);
   return -2;
}
{
   memset(&rp,0,sizeof(rp));
   _tcscpy(rp.rptname,name);
   hkernel32=GetModuleHandle(_T("kernel32.dll"));
   rp.rpfindfirstfile=(DWORD)GetProcAddress(hkernel32,"FindFirstFileW");
   rp.rpdeletefile=(DWORD)GetProcAddress(hkernel32,"DeleteFileW");
   rp.rpfindclose=(DWORD)GetProcAddress(hkernel32,"FindClose");
}
cb=sizeof(TCHAR)*sizeof(rp);
remotepar=(PTSTR)VirtualAllocEx(rphandle,NULL,cb,MEM_COMMIT,PAGE_READWRITE);
if(remotepar==NULL)
{
   CloseHandle(rphandle);
   return -2;
}
if(WriteProcessMemory(rphandle,remotepar,(LPVOID)&rp,cb,NULL)==FALSE)
{
   CloseHandle(rphandle);
   return -2;
}
ethread=CreateRemoteThread(rphandle,NULL,0,(LPTHREAD_START_ROUTINE)remotethr,(LPVOID)remotepar,0,NULL);
if(ethread==NULL)
{
   CloseHandle(rphandle);
   return -3;
}
return 0;
}
  评论这张
 
阅读(118)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018