Avi*_*viv -2 c windows assembly winapi internals
我尝试从另一个位置加载DLL文件“ bcryptprimitives.dll”(在我的情况下,该文件最初位于“ C:\ Windows \ syswow64 \ bcryptprimitives.dll”下),带有以下代码段:
LoadLibraryW(L"<altered path>\\bcryptprimitives.dll");
Run Code Online (Sandbox Code Playgroud)
但是,在执行这一行代码后,我得到了以下错误:
C:\ Program Files(x86)\ Notepad ++ \ bcryptprimitives.dll并非旨在在Windows上运行,或者包含错误。尝试使用原始安装媒体再次安装程序,或与系统管理员或软件供应商联系以获取支持。错误状态为0xc0000428。
我在以下字典中搜索了0xc0000428 NTSTATUS:https ://msdn.microsoft.com/en-us/library/cc704588.aspx
,显然此状态是STATUS_INVALID_IMAGE_HASH。
最初的错误是有道理的,因为我将图像PE标头中的“ LoaderFlags”字段从0x00000000更改为0x00000001(由于此字段已弃用,因此不需要任何影响),但是即使我更改了该字段,我也已修复PE校验和。
但是,LoadLibrary仍然拒绝加载DLL。深入研究ntdll发现错误是从内核返回的:
这让我认为DLL已通过某种方式签名,并且内核检查DLL是否被更改。因此,就我而言,无论如何我如何从另一个位置加载此DLL并删除符号检查?
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |