编程与调试 C++ -- Nemesis blog 杂谈

https://www.cnblogs.com/suanguade/ https://github.com/276793422

内存泄漏

umdh 工具快查内存泄露。 umdh 工具和 gflags 工具都是 WinDBG 工具集里面的工具,去目录里面找就好,这个内存泄漏查询,只能支持正在执行的进程。

DynamoRIO

插桩库的编译

clamav

我为啥要弄 clamav 呢,因为这玩意就是个开源杀毒软件啊。

三套函数实现应用层做文件监控

下载指定符号

  1. 下载 dmp 文件所有相关模块的 symbols,缓存到共享路径,便于其它人快速下载。
    "D:\Debuggers.10\x86\symchk.exe" /id c:\MyApplication.dmp /s SRV*\\symbols_server\WinSymbols\*http://msdl.microsoft.com/download/symbols
    
  2. 下载某个已运行进程所有相关模块的 symbols,缓存到共享路径,便于其它人快速下载。
    "D:\Debuggers.10\x86\symchk.exe" /ie qq.exe /s SRV*\\symbols_server\WinSymbols\*http://msdl.microsoft.com/download/symbols
    
  3. 下载某个 exe/dll 文件对应的 symbols,例如 user32.dll,输入命令行:
    "D:\Debuggers.10\x86\symchk.exe" c:\windows\system32\user32.dll /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols
    
  4. 下载整个目录下(例如 system32)所有模块的 symbols:
    "D:\Debuggers.10\x86\symchk.exe" /r c:\windows\system32\ /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols
    

使用 64 system32 目录下的文件

/**
 * @brief 用于在局部区域短暂关闭 Wow64 下的文件重定向功能
 */
class WinFileWow64Guard {

public:

    // Wow64DisableWow64FsRedirection 只对当前线程有效!
    WinFileWow64Guard(BOOL bEnable = TRUE, BOOLEAN forceWow64FsEnableRedirection = FALSE)
        : m_bEnable(bEnable)
        , m_bWow64(FALSE)
        , m_pVoidValue(NULL)
    {
        if (m_bEnable && WinCheckCureentProcessIsWow64Process(&m_bWow64) && m_bWow64)
        {
            // 每次用 m_pVoidValue,可以保证嵌套的情况下可用。
            WinWow64DisableWow64FsRedirection(&m_pVoidValue);

            if (forceWow64FsEnableRedirection) {
                WinWow64EnableWow64FsRedirection(forceWow64FsEnableRedirection);
            }
        }
    }

    virtual ~WinFileWow64Guard()
    {
        if (m_bEnable && m_bWow64)
        {
            // 每次用 m_pVoidValue,可以保证嵌套的情况下可用。
            WinWow64RevertWow64FsRedirection(m_pVoidValue);
        }
    }

private:
    BOOL  m_bEnable;
    BOOL  m_bWow64;
    PVOID m_pVoidValue; // 每次用 m_pVoidValue,可以保证嵌套的情况下可用。
};

参考资料快照
参考资料快照

本文短链接:
If you have any questions or feedback, please reach out .