首页
社区
课程
招聘
[推荐]注入DLL与注入远程进程核心代码
发表于: 2010-4-28 08:52 6101

[推荐]注入DLL与注入远程进程核心代码

2010-4-28 08:52
6101
今天无意之中在网上看到关于DLL注入的文章,感觉写的真的很好,代码很实用!!所以Ctrl+C,Ctrl+V!给大家学习学习~~~~
void InjectDLL(DWORD PID,char *Path)

{
  
  DWORD dwSize;
  
  HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,PID);
                           
  dwSize=strlen(Path)+1;

  LPVOID lpParamAddress=VirtualAllocEx(hProcess,0,dwSize,PARITY_SPACE,PAGE_EXECUTE_READWRITE);

  WriteProcessMemory(hProcess,lpParamAddress,(PVOID)Path,dwSize,NULL);

  HMODULE hModule=GetModuleHandleA("kernel32.dll");

  LPTHREAD_START_ROUTINE lpStartAddress=(LPTHREAD_START_ROUTINE)GetProcAddress(hModule,"LoadLibraryA");

  HANDLE hThread=CreateRemoteThread(hProcess,NULL,0,lpStartAddress,lpParamAddress,0,NULL);

  WaitForSingleObject(hThread,1000);

  CloseHandle(hThread);

}

另一种是直接注入代码,代码如下:
//函数名:InjectCode

//功能:封装远程注入的函数

//参数:进程ID

//参数:被注入函数指针<函数名>

//参数:参数

//参数:参数长度

//**************************************************************************************

void InjectCode(DWORD dwProcId,LPVOID mFunc, LPVOID Param, DWORD ParamSize)

{

  HANDLE hProcess;//远程句柄

  LPVOID mFuncAddr;//申请函数内存地址   

  LPVOID ParamAddr;//申请参数内存地址

  HANDLE hThread;   //线程句柄

  DWORD NumberOfByte; //辅助返回值

  CString str;   

  //打开被注入的进程句柄

  hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcId);

  //申请内存

  mFuncAddr = VirtualAllocEx(hProcess,NULL,128,MEM_COMMIT,PAGE_EXECUTE_READWRITE);

  ParamAddr = VirtualAllocEx(hProcess,NULL,ParamSize,MEM_COMMIT,PAGE_EXECUTE_READWRITE);

  //写内存

  WriteProcessMemory(hProcess,mFuncAddr,mFunc,128, &NumberOfByte);   

  WriteProcessMemory(hProcess,ParamAddr,Param,ParamSize, &NumberOfByte);

  //创建远程线程

  hThread = CreateRemoteThread(hProcess,NULL,0,(LPTHREAD_START_ROUTINE)mFuncAddr,

    ParamAddr,0,&NumberOfByte);

  WaitForSingleObject(hThread, INFINITE); //等待线程结束

  //释放申请有内存

  VirtualFreeEx(hProcess,mFuncAddr,128,MEM_RELEASE);

  VirtualFreeEx(hProcess,ParamAddr,ParamSize,MEM_RELEASE);   

  //释放远程句柄

  CloseHandle(hThread);

  CloseHandle(hProcess);

}

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 266
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
貌似 有人发过吧
2010-4-28 09:36
0
雪    币: 263
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持~~~~
2010-4-29 12:22
0
游客
登录 | 注册 方可回帖
返回
//