一次LoadLibrary调用失败的调试经历

仅在这里记录以做备忘!

        最近几天分析APT样本,发现很多样本都是call到一个0地址导致崩溃,后面分析发现样本在LoadLibrary加载urlmon.dll失败了,导致后面获取的UrlDownloadToFile函数地址为空,然后就call到一个0地址了。可LoadLibrary为什么会失败呢,urlmon.dll是系统dll在system32目录下,按道理不会啊。进一步详细分析,发现是因为样本shellcode开始处有执行几个inc esp指令,导致esp没有以4对齐,后面调用LoadLibrary的时候,LoadLibrary会调用NtOpenSection进入内核,内核调用ProbeForRead发现用户的buffer不对齐导致失败的。

你可能感兴趣的:(debug)