博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DLL劫持注入
阅读量:4968 次
发布时间:2019-06-12

本文共 1554 字,大约阅读时间需要 5 分钟。

#include <Windows.h>

#define HIJCAKDLLNAME "hijack.dll"

HMODULE g_hModule = NULL; // 原始模块句柄

// 获取EXE的名称

void GetExePath(char* pExePath)
{
int pathlen = GetModuleFileName(NULL, pExePath, MAX_PATH);
while(1)
{
if(pExePath[pathlen--]=='\\')
break;
}
pExePath[++pathlen] = 0;
}

// 加载原始模块

void Load()
{
CHAR tmpPath[MAX_PATH] = {0};
GetExePath(tmpPath);
strcat(tmpPath,"\\");
strcat(tmpPath,HIJCAKDLLNAME);
g_hModule = LoadLibrary(tmpPath);
}
// 释放原始模块
void Free()
{
if (g_hModule)
{
FreeLibrary(g_hModule);
}
}
// 获取原始函数地址
FARPROC GetAddress(PCSTR pszProcName)
{
FARPROC fpAddress;
Load();
fpAddress = GetProcAddress(g_hModule, pszProcName);
return fpAddress;
}

BOOL APIENTRY DllMain( HANDLE hModule,

DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
MessageBox(NULL,"DLL_PROCESS_ATTACH","RemoteThread inject",MB_OK);
break;
case DLL_THREAD_ATTACH:
//MessageBox(NULL,"DLL_THREAD_ATTACH","RemoteThread inject",MB_OK);
break;
case DLL_THREAD_DETACH:
//MessageBox(NULL,"DLL_THREAD_DETACH","RemoteThread inject",MB_OK);
break;
case DLL_PROCESS_DETACH:
//Free();
MessageBox(NULL,"DLL_PROCESS_DETACH","RemoteThread inject",MB_OK);
break;
}

return TRUE;

}

// 导出函数,转发方式

//#pragma comment(linker, "/EXPORT:add=hijack.add,@1")

// 直接调用方式

// #pragma comment(linker, "/EXPORT:add=_myadd,@1")
// typedef int (__cdecl *lpFun)(int, int);
// int __cdecl myadd(int x, int y)
// {
// // 获取了原函数的地址
// lpFun myFun = (lpFun)GetAddress("add");
// return myFun(x,y);
// }

转载于:https://www.cnblogs.com/15157737693zsp/p/3857785.html

你可能感兴趣的文章
Android项目的目录结构
查看>>
C++中“引用”的底层实现
查看>>
Spring Cloud与微服务构建:微服务简介
查看>>
Babel 是干什么的
查看>>
20180418小测
查看>>
数字三角形
查看>>
前端笔记-基础笔记
查看>>
【LeetCode & 剑指offer刷题】查找与排序题6:33. Search in Rotated Sorted Array(系列)
查看>>
GNU/Linux超级本ZaReason Ultralap 440体验
查看>>
将github上托管的代码 在我的域名下运行
查看>>
【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
查看>>
【codeforces 767A】Snacktower
查看>>
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>
我对应用软件——美团的看法
查看>>
执行了的程序,才是你的程序.
查看>>
struts2.x + Tiles2.x读取多个xml 配置文件
查看>>
表单校验之datatype
查看>>
python第六篇文件处理类型
查看>>
ubuntu16系统磁盘空间/dev/vda1占用满的问题
查看>>