逆向?又或者是编程知识——记录一次DLL无法加载的原因

续一下上一篇文章的故事。
今天朋友又来找我,说是极少部分Win7用户注入不了DLL,希望我看一下。

“极少部分win7用户注入不了DLL”,,,难道是因为他们系统ntdll线程特殊一点,不走ntdll!ZwTestAlert ?
不太可能,虽然win7有些版本有补丁,但不太可能影响到r3的ntdll。
抱着疑心我还是远程联系他那个用户,开x64dbg调试了看看。

嗯,ZwTestAlert上断下来了。Shellcode也正常走过去了。
问题来了,LdrLoadDll调用后返回值不是0而是0xc0000005

长话短说,中间怎么测出来的套路就不说了。

LdrLoadDll调用后返回0xc0000005的原因是缺少了环境库
让他把d3dx环境库装一下就可以了。

说到这里我又想到,不论是dll加载返回0xc0000005错误码还是exe执行弹出0xc0000005错误。应该都是缺了环境库。本质上还是dll(exe)的输入表里面用到的DLL找不到。
Windows加载器在加载模块时,会把输入表里面用到的DLL全部加载进来,找到所需的API地址后填写在输入表内。如果在当前目录和系统目录找不到所需DLL就返回这个0xc0000005错误码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值