C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 如何在EXE文件中查找要挂钩/绕行的函数地址?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我再次开车撞墙,需要你帮助一些低级别的东西.我已经成功地通过将它们注入我的目标进程来挂钩导出的DLL函数( with this code btw.)(例如,我可以轻松地从user32.dll中绕过messageBoxW).不幸的是,我的目标是一个不同的场景:我必须绕过我正在注入我的代码的可执行文件中定义的函数.该应用程序是开源的,所以我知道我需要挂钩它的所有功能,但二进制文件是用证书签名的,所以我无法编译自己的版本.是否可以在运行时获取函数的地址或使用其他技术绕过它?目标是一个“正常”的32位Windows二进制文件btw.我觉得没什么特别的;)

此致,
Nefarius

编辑:也许是因为我的蹩脚英语我不够详细,所以这里有一些示例代码

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd )
{
    foo();
}

BOOL foo(char* someData)
{
    return printf("%s",someData);
}

现在我想绕开动态库中不存在的函数foo().这是我的问题.我不知道如何,我不确定这是否像我认为的那样有效.

编辑:现在我知道这是可能的,所以重要的问题改为:如何?我如何获得所需的信息;功能地址?

解决方法

当然,只需使用类似 Ollydbg的设置断点,并在可执行文件加载后编辑程序集(并完成检查其证书).永久地执行此操作会更具挑战性,但根据证书检查的复杂程度,您可能只需用NOP(无操作)替换它就可以绕过该位代码.

编辑:如果你正在运行64位Windows,你可能会有更好的运气与微软自己的Debugging Tools.我从来没有使用它们,所以我不知道他们如何与Ollydbg比较.

大佬总结

以上是大佬教程为你收集整理的c – 如何在EXE文件中查找要挂钩/绕行的函数地址?全部内容,希望文章能够帮你解决c – 如何在EXE文件中查找要挂钩/绕行的函数地址?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。