草庐IT

Linux安全加固

全部标签

windows - 是否存在可以编译可在 linux windows 中运行的 native 可执行文件的跨平台编译器?它可能存在吗?

我记得几年前(2002年)有一种多方病毒可以在linux和windows上本地运行。我不知道编译器是否可以专门制作一个可执行文件,以便它可以同时作为ELF和PE读取,以便操作系统在不同的入口点开始执行。或者一个程序可以将两个程序合并为一个程序,一个使用mingw编译,一个使用原生linux编译。我不知道这样的程序是否存在,或者是否可能存在,我知道这可以用Java或某种脚本语言实现,但这不是native程序。想象一下这种可能性,我可以部署一个带有linux和window(也许还有os/x)库的程序,以及一个可以在任何操作系统上运行的主要可执行文件。跨平台支持将补偿更大的尺寸。

windows - linux 需要 'rubygems' 但 windows 不需要。为什么?我可以解决这个问题吗?

我正在设置Linux开发环境。安装Ruby和RubyGems后,我很快发现我需要require'rubygems'才能使用gems,而在WindowsVista中不需要这样做。我能做些什么来解决这个问题吗?我应该为此担心吗? 最佳答案 您可能希望默认包含rubygems(特别是因为Ruby1.9现在默认包含)。编辑您的.bash_profile或等效文件并添加exportRUBYOPT=rubygems 关于windows-linux需要'rubygems'但windows不需要。为什么

windows - 我可以安全地重命名/移动一个已经被进程加载的 dll 吗?

我有一个由进程加载和文件锁定的dll,我想用更新的版本更新它。我正在寻找一种替代方法来终止进程以在更新dll之前释放文件锁。现有的事件进程仍然使用旧版本是可以的,只要新实例化的进程采用新逻辑即可。似乎我可以简单地重命名/移动dll,并且实时进程似乎仍然运行良好。这样做安全吗?如果dll的代码已经加载到进程中,为什么还需要锁定dll? 最佳答案 移动任何随机应用程序使用的所有dll并不总是可以的。某些应用程序,如asp.net,使用影子副本概念,它们实际复制dll并使用副本让您可以自由修改原始文件。在asp.net的情况下,如果您修改

windows - 学习C++(Linux+QtCreator)应该升级到Windows+VisualC+VisualAssist吗?比较如何?

我是Linux的长期用户和“高级”Python程序员。我最近在周末有一些空闲时间,我开始学习C++。我正在使用QtCreator进行开发,因为它具有很好的功能,而且简单、快速,我还计划在未来编写Qt应用程序,所以如果我已经习惯了QtCreator这样的东西,它会很简单.我喜欢自动完成、体面的代码突出显示、视觉调试辅助等功能,以及这些现代功能,只要它们不妨碍我。但是,很多人告诉我,如果我真的喜欢这些功能,我应该使用VisualC++和VisualAssist(一种插件)。一个friend带着他的带有VisualStudio的笔记本来这里,我的第一印象是它太复杂了,屏幕上有成千上万的菜单和

c++ - 在 Windows 7 中交叉编译 C 和 C++ 应用程序,在 linux 下使用 MinGW

我在Windows7上安装了MinGW编译器,GCC版本是4.6.1。我有HelloWorld应用程序:#includeintmain(intargc,char*argv[]){printf("HelloWorld!");return0;}我如何使用MinGW编译器在Windows7下编译这个应用程序,以便我可以在linux中运行这个应用程序,而无需重新编译。 最佳答案 您需要在这里区分两个系统:build系统,即您的编译器运行所在的系统,以及host系统,即您的可执行文件将运行的系统运行。MinGW是主机系统Windows的GCC

c++ - 如何安全地从 DLL 连接到消息泵?

我正在尝试从加载我的DLL的进程中获取消息。我试过:SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)WndProc,hInstance,0);这给了我关于“程序X无法启动,因为系统中缺少Y.dll”的错误弹出窗口。这就是我在标题中加上“安全”的原因。我也试过:SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)WndProc,hInstance,threadId);threadId是我的DLLMain中GetCurrentThreadId()的结果。这个有效,但我没有收到任何窗口消息(只有一堆512和1025)。

c++ - 是否可以使用 Cygwin 或 MinGW 将 Linux 守护程序移植到 Windows?

我有一个作为守护进程运行的LinuxC++应用程序。当用户执行这个应用程序时,它会在后台运行,监听一个端口,等待来自客户端的连接。是否可以使用Cygwin或MinGW将此类应用程序移植到Windows平台?谢谢。 最佳答案 Cygwin的目标是实现POSIX/Linux源代码级别的兼容性,因此您的应用程序应该可以在不进行修改或仅进行少量修改的情况下构建和工作。MinGW不会尝试提供这样的兼容层。它只是适用于Windows的GNU工具链,因此您需要用Windows等效项替换对POSIX/Linux特定API的任何使用。

java - 从 linux 到 windows 的传输中丢失了换行符

我用java编写了一个简单的客户端/服务器,它使用javaNIOSocketchannel传输文件。当我将一个简单的文本文件从Linux传输到Windows时,返回的行都消失了。我知道这两个操作系统使用不同的字符编码,但我想弄清楚在这个过程中我会在哪里考虑到这一点。当服务器发送文件时,它只是发送原始字节,由FileInputStream读取。我的客户端将字节从channel读入到ByteBuffer,然后我从中获取字节数组。socketChannel.read(this.readBuffer);每次从channel接收到更多信息时,我都会遍历字节数组,寻找EOF,如果找不到,我将其放入

python - 将Windows上的python脚本交叉编译为linux可执行文件

我在Windows上使用Python创建了一个程序。你如何把它变成Linux可执行文件?具体来说是LinuxUbuntu9.10。 最佳答案 天斗,因为我通常在Linux机器上开发,当我需要一个windows版本时,我经常使用cx_freeze来制作windows二进制文件,但我也用它来制作Linux二进制文件并且它工作得很好(它是多平台的,py2exe不是).就像Eli上面说的,它并没有真正编译,而只是将解释器、字节编译代码和需要的库捆绑到一个可执行文件中,但你会得到你想要的(在没有预装python的机器上运行)。在Linux机器

c++ - Linux相当于windows的EnterCriticalSection

这个问题在这里已经有了答案:Whataregcconlinux'sequivalenttomicrosoft'scriticalsections?(4个答案)关闭4年前。我找不到明确的答案,所以就是这个地方。Windows的EnterCriticalSection以我可以在同一个线程中多次锁定它的方式运行,并且我需要在退出的确切次数时将其解锁,以便它获得自由。什么是Linux等价物?pthreadmutex是否以相同的方式起作用?还是多锁,单解锁...