dll 源码_萌新逆向学习笔记——远程线程注入DLL

本文是看雪论坛作者psycongroo的精华文章,讲解了DLL源码与远程线程注入技术。重点介绍了如何传递被调用的函数,适合对DLL注入感兴趣的读者。文中还提及了相关工具和经典安全分析文章。
摘要由CSDN通过智能技术生成

e1910d5271fc61fef3c18d731d33329c.png

本文为看雪论坛精华文章

看雪论坛作者ID:psycongroo

  前言 今天的主题——远程线程注入DLL,用以在他人EXE中实现自己代码功能的操作,这次就不仅限于键盘记录了。

准备工作

阅读并实现本文主题,需要以下工具及知识:

1. C++/C语言的基本知识 2. 进程监控软件procexp 当然,倘若读者并没有掌C++/C语言,也可以继续阅读浏览。因为本文主要为萌新笔者的学习笔记,因此也并没有过于深奥晦涩难懂的地方。只要对基本原理,核心API函数留有印象即可。

原理 在讲解远程注入DLL原理之前,读者需要知道从代码层级上DLL加载时的函数调用流程。

代码中加载DLL 要在一个Win32 app中,也就是我们的exe程序中加载DLL只需要调用一个函数——LoadLibraryA/W。 以下是 LoadLibrary文档 :
HMODULE LoadLibraryA/W(  LPCWSTR lpLibFileName   //DLL文件的全路径);
以下为一个控制台程序加载DLL示例:
#include int main(){
        LoadLibrary(L"F://Project//MyDll.dll");}
参数 LPCWSTR lpLibFileName为DLL文件的路径,需要说的是,当加载的DLL文件和EXE在同一文件夹下可只写DLL为文件名。   当DLL被使用LoadLibraryA/W加载后,在DLL文件中的DllMain函数会被自动调用。
以下为创建的DLL文件:
BOOL APIENTRY DllMain( HMODULE hModule,                       DWORD  ul_reason_for_call,                       LPVOID lpReserved ){
        switch (ul_reason_for_call)    {
        case DLL_PROCESS_ATTACH:        MessageBox(NULL, L"内容", L"标题", MB_OK);        break;    case DLL_THREAD_ATTACH:    case DLL_THREAD_DETACH:    case D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值