Skip to content

在32位下,使用项目自带测试程序不成功 #17

Open

Description

@reloc2

image

image

image

OS:Win11 22H2 64为
编译环境:VS2022

Activity

  1. bb107 commented on Nov 17, 2022

    @bb107
    Owner

    LdrLoadDllMemoryExW的返回值是什么?看样子kernel32.dll是系统已经加载过的dll,重复加载会失败的。

  2. reloc2 commented on Nov 17, 2022

    @reloc2
    Author

    #define STATUS_IMAGE_MACHINE_TYPE_MISMATCH ((NTSTATUS)0x4000000EL)
    image

  3. bb107 commented on Nov 17, 2022

    @bb107
    Owner

    你加载的dll是什么?system32目录下的还是syswow64目录下的?

  4. reloc2 commented on Nov 17, 2022

    @reloc2
    Author

    加载的是kernel32.dll,32位的不是直接加载的syswow64目录下的吗?具体应该怎么看加载的是哪个目录下的dll呀?

  5. reloc2 commented on Nov 17, 2022

    @reloc2
    Author

    我尝试调试了下,这个项目刚开始看,里面的一些代码没有看懂。

  6. bb107 commented on Nov 17, 2022

    @bb107
    Owner

    如果使用绝对路径(如图),Windows会自动为32位程序重定向到syswow64。你的开发环境比较新,不排除是系统兼容性的问题,在我的系统上加载没问题。
    Snipaste_2022-11-17_16-06-35

  7. reloc2 commented on Nov 17, 2022

    @reloc2
    Author

    不好意思刚才的问题我理解错了,一开始加载的DLL文件是项目中的a.dll。
    image

  8. bb107 commented on Nov 17, 2022

    @bb107
    Owner

    正常情况下32位程序不能加载64位dll。请尝试加载32位的a.dll。

  9. reloc2 commented on Nov 17, 2022

    @reloc2
    Author

    好的感谢。

  10. reloc2 commented on Nov 17, 2022

    @reloc2
    Author

    我在测试32位程序时发现RtlRbInsertNodeEx函数和RtlRbRemoveNode函数(BaseAddressIndex.cpp)需要加__stdcall才可以,给您反馈下。
    image

  11. bb107 commented on Nov 17, 2022

    @bb107
    Owner

    感谢反馈。我在最近一次提交里已经添加了NTAPI。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions