DLL 远程注入 (WIN7下32位)

DLL的远程注入在WIN7 64位系统环境下,编写的注入程序(32位)向远程目标进程(32位)注入DLL(32位)同 XP环境是么有什么区别的!

大概的过程:

1、提升注入程序的权限

  OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken);

  LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &uID);

  AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL,NULL);

  tp为一个TOKEN_PRIVILEGES结构,根据给结构成员的赋值给予当前进程的权限。

2、读写方式+创建线程方式打开远程目标进程获取远程进程ID

  hRemoteProcess = OpenProcess( PROCESS_CREATE_THREAD|PROCESS_VM_WRITE, NULL, _wtoi(RemoteProcPid));

     RemoteProcPID是远程进程的PID,可以在系统的任务管理器中查找得到。

3、向远程目标进程申请空间(注入的DLL位置属于注入程序的变量,以后远程目标进程调用时并不晓得这个DLL在哪里,所以要在远程目标进程中申请空间)

  LPVOID lpDllPathNameSpace = VirtualAllocEx(hRemoteProcess, NULL, cb, MEM_COMMIT, PAGE_READWRITE);

4、在申请的空间中写入,需要插入的DLL的全路径文件名

  WriteProcessMemory(hRemoteProcess, lpDllPathNameSpace, (LPVOID)lpDllPathName,cb, &writeLength);

5、获取kernel.dll中LoadLibraryW的函数地址,用以装载DLL

  PTHREAD_START_ROUTINE pThreadFunAddr =(PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(L"Kernel32.dll"),"LoadLibraryW");

6、创建远程线程即远程注入DLL

  hRemoteThread = CreateRemoteThread(hRemoteProcess, NULL, 0, (LPTHREAD_START_ROUTINE) pThreadFunAddr,(LPVOID)lpDllPathNameSpace , 0,NULL);

  

 

DLL的注入完全是成功的,呵呵    DLL 怎么写?特别是我需要的那种,网上都说你的DLL 成为了远程进程的一个线程了,就可以为所欲为的控制目标远程进程,我试了下,其实也不容易。

DLL的注入为我们打开了一扇想象之门,但之后的事情,搜遍网络,描述得真的很少很少,之后的路估计是探索之路了!

转载于:https://www.cnblogs.com/oujian/p/3938504.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值