C++手动定义 IAT
我刚刚从 (F)ASM 更改为 C,发现我得到了 25kb 的 MessageBox(相对于 3kb)。我刚刚包含了 windows.h,但我看到 windows.h 包含了我不需要的大约 22kb ;)。 在 ASM,我能够定义 IAT(导入地址表),并且我想使用 GCC 来减少过大的可执行文件。 那么有谁知道我该怎么做?是否可以?
PS:如果您知道其他编译器的解决方案,请也发布它(然后我将使用另一个)。
I just changed from (F)ASM to C and saw that I get for a MessageBox 25kb (vs 3kb). I just included windows.h, but I see that windows.h includes about 22kb that I don't need ;).
At ASM I'm able to define the IAT (Import Address Table) and this I want to do with the GCC to reduce the oversized executable.
SO does anyone know how I can do this? Is it possible?
PS: If you know a solution for an other compiler please post it too (then I'll use the other one).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好的,因为我找不到任何方法来做到这一点,我阅读了有关 shell 代码的内容(它必须很小并且位置独立)。
Harmonysecurity.com 对此进行了介绍,因此我将使用内联 ASM 解决我的问题。
这是博客。
我希望这有帮助。
OK because I can't find any way to do it, I read about shell code (which has to be small and position independend).
harmonysecurity.com wrote about this and so I would solve my problem with inline-ASM.
This is the blog.
I hope that helps.