远程注入执行函数

本文介绍了如何实现远程注入DLL并执行指定函数。通过修改《Windows核心编程》中的注入DLL程序,作者成功创建了一个能够注入到其他进程并弹出MessageBox的示例。文章强调ThreadFunc函数应定义为static,避免全局函数导致的问题,并分享了调试过程中可能遇到的困难。最后,作者推荐了两篇相关资源供读者进一步学习。
摘要由CSDN通过智能技术生成

      最近在看病毒相关内容,看着大部分知识都知道,不知道用起来行不行。下午正好有人问怎么注入线程,在公司用《windows核心编程》的注入DLL程序修改了一下,实现了远程注入DLL调用函数。刚才回来,觉得照着别人的程序改,总还是学不到家,自己花了两个小时写了一个。能注入到其他进程中,执行弹出MessageBox框。当然,能注入去弹出这个框,就能干很多坏事了,看你想干什么了。把代码贴上来,也不改了,反正能看懂。有几个细节可能会忽略:

      1. ThreadFunc应该定义成static,不能是全局函数。如果是全局函数,只能取到jmp ThreadFunc这块代码的地址。

      2. 在调试模式会使写函数数据时数据出错。

下午就被这两个东西浪费了一个多小时。

      推荐两篇有用的内容:http://www.cnblogs.com/BoyXiao/archive/2011/08/11/2134367.html

      http://www.vckbase.com/index.php/wv/1580

 

// InjectToRemoteProcess.cpp : 定义应用程序的入口点。
//

#include "stdafx.h"
#include "InjectToRemoteProcess.h"

#define MAX_LOADSTRING 100

// 全局变量:
HINSTANCE hInst;								// 当前实例
TCHAR szTitle[MAX_LOADSTRING];					// 标题栏文本
TCHAR szWindowClass[MAX_LOADSTRING];			// 主窗口类名

// 此代码模块中包含的函数的前向声明:
ATOM				MyRegisterClass(HINSTANCE hInstance);
BOOL				InitInstance(HINSTANCE, int);
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK	About(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK	Inject(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
	UNREFERENCED_PARAMETER(hPrevInstance);
	UNREFERENCED_PARAMETER(lpCmdLine);

 	// TODO: 在此放置代码。
	MSG msg;
	HACCEL hAccelTable;

	// 初始化全局字符串
	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	LoadString(hInstance, IDC_INJECTTOREMOTEPROCESS,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值