• DllMain


    DllMain

    BOOL WINAPI DllMain(

    HANDLE hinstDLL,      句柄

     DWORD dwReason,     调用实际

    LPVOID lpvReserved);    指定初始化和清理的其他方面

     

    对于一个Dll模块,

    DllMain函数是可选的

      dll加载和卸载的时候被调用,

      dll初始化和资源的释放

    exe有个main或者WinMain入口函数一样,DLL也有一个入口函数,就是DllMain。

    系统是在什么时候调用DllMain函数的呢?静态链接时,或动态链接时调用LoadLibrary和FreeLibrary都会调用DllMain函数。

    DLL_PROCESS_ATTACH:

        进程启动

        loadlibrary,

        第一加载到进程地址空间

    DLL_PROCESS_DETACH:

        进程结束

    FreeLibrary,每次调用会减少引用计数,当计数值为0,则卸载dll

    返回值:

      FALSE:

       进程启动中,会弹出一个错误,然后立刻调用DLLMain,并传入DLL_PROCESS_DETACH

    main函数之前执行代码:

      1. dllmain

      2. 全局对象的构造

      3. 全局变量使用函数赋值

    函数转发:   (又叫dll劫持)

       所导出的函数实现不在本dll,而在其他dll中

    创建进程

    WinExec(

    "cmd /k copy D:\process.exe d:\1.exe",   文件名  可以是命令行

     SW_NORMAL);        窗口 sw_show参数相同

    Uint ShellExecute(
    HWND hwnd, //父窗口句柄
    LPCSTR lpOperation, //操作类型
    LPCSTR lpFile, //要进行操作的文件或路径
    LPCSTR lpParameters, //当lpOperation为“explore”时指定要传递的参数,通常设为NULL
    LPCSTR lpDirectory, //指定默认目录,通常设为NULL
    INT nShowCmd //文件打开的方式,以通常方式还是最大化或最小化显示
    )

     返回值大于32表示执行成功
      返回值小于32表示执行错误
      返回值可能的错误有: = 0 {内存不足}
      ERROR_FILE_NOT_FOUND = 2; {文件名错误}
      ERROR_PATH_NOT_FOUND = 3; {路径名错误}
      ERROR_BAD_FORMAT = 11; {EXE 文件无效}
      SE_ERR_SHARE = 26; {发生共享错误}
      SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或无效}
      SE_ERR_DDETIMEOUT = 28; {超时}
      SE_ERR_DDEFAIL = 29; {DDE 事务失败}
      SE_ERR_DDEBUSY = 30; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
      SE_ERR_NOASSOC = 31; {没有相关联的应用程序}

    操作类型

    Edit:编辑文件

    Exporer:打开资源管理器(必须是目录)

    Find:打开搜索对话框

    Open:打开文档、可执行文件与文件夹

    ShellExecute 可以打开命令行  脚本  网页

    学如逆水行舟,不进则退。 博客园技术交流群 群 号:1073255314 (本群没人,刚刚建立 -_-!!! )
  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13613291.html
Copyright © 2020-2023  润新知