Articles of 包装

有没有人用C ++封装函数的例子?

我在网上search了很多,但我找不到一个与g ++一起工作的例子,所有的例子都使用gcc。 我不断收到的错误是 wrap_malloc.o: In function `__wrap_malloc(unsigned int)': wrap_malloc.cc:(.text+0x20): undefined reference to `__real_malloc(unsigned int)' wrap_malloc.o: In function `main': wrap_malloc.cc:(.text+0x37): undefined reference to `__wrap_malloc' collect2: ld returned 1 exit status 创build这个错误的代码如下(如果我使用gcc进行编译并将头文件从cstdio更改为stdio.h,则此代码有效): #include <cstdio> #include <cstdlib> void *__real_malloc(size_t); void *__wrap_malloc(size_t c) { printf("My malloc called with %d\n", c); return __real_malloc(c); } int main(void) { void *ptr = […]

无法在Linux内核中封装函数

我已经写了一个实现可信任path执行(TPE)到您的内核的LKM: https://github.com/cormander/tpe-lkm 当我将WRAP_SYSCALLS定义为1时,遇到了一个偶然的内核OOPS(在这个问题的末尾描述),并且在我的智慧结束处试图追踪它。 一点背景: 由于LSM框架不会导出它的符号,所以我不得不将TPE检查插入正在运行的内核。 我写了一个find_symbol_address()函数,它提供了我需要的任何函数的地址,并且工作得非常好。 我可以调用这样的函数: int (*my_printk)(const char *fmt, …); my_printk = find_symbol_address("printk"); (*my_printk)("Hello, world!\n"); 它工作正常。 我使用这种方法来查找security_file_mmap , security_file_mprotect和security_bprm_check函数。 然后用asm跳过我的函数来覆盖这些函数来做TPE检查。 问题是,当前加载的LSM将不再执行该函数的钩子代码,因为它已被完全劫持。 这里是我做的一个例子: int tpe_security_bprm_check(struct linux_binprm *bprm) { int ret = 0; if (bprm->file) { ret = tpe_allow_file(bprm->file); if (IS_ERR(ret)) goto out; } #if WRAP_SYSCALLS stop_my_code(&cs_security_bprm_check); ret = cs_security_bprm_check.ptr(bprm); start_my_code(&cs_security_bprm_check); #endif out: return ret; […]

为Linux封装专有软件

我正在进行跨平台开发,我想为Linux构build一个很好的自包含(!)包。 我知道这不是通常的做法,但是应用程序需要将所有数据放在一个地方,所以我将它安装到/ opt中,就像许多其他专有软件包一样。 我将最终提供deb和rpm包,但现在只能是.tar.gz。 用户应该把它解压到某个地方,它应该可以工作。 我宁愿没有安装程序。 首先是我的问题,然后是细节: 其他人如何为Linux专门包装软件? 有包装软件包括共享库的工具吗? 现在的一些细节:这是我的项目(我称之为富 )为此目的布局: foo(二进制) config.ini文件 数据 现在在这个包里面还会有两个额外的元素: 库 foo.sh libs将包含项目所需的所有共享库,而foo.sh是一个将LD_LIBRARY_PATH设置为包含lib的脚本。 因此,用户将执行foo.sh程序应该启动。 我有一个shell脚本,在以下步骤中打包软件: 创build空目录并将foo.sh复制到它 调用构build过程并安装到新目录中 从文件系统复制共享库 打包一切.tar.gz 你觉得这怎么样? 这种方法有一些问题: 我必须硬编码所有的依赖两次(一次在CMake,一次在包装脚本) 我必须定义版本号两次(一次在源代码中,一次在打包脚本中) 你怎么做呢? 编辑:刚刚出现的另一个问题:你如何确定你的软件依赖于哪些库? 我做了一个ldd foo ,但是有很多很多。 我研究了WorldOfGoo软件包的外观,而且他们只出货很less的图书馆。 我怎样才能做出哪些图书馆将出现在用户的系统,哪些不会? 只要将所有的目标发行版安装到虚拟磁盘上,看看有什么需要?

如何将.java或.jar文件转换为Linux可执行文件(没有.jar扩展名,这意味着它不是.jar文件)

我一直在寻找许多类似的post,但我仍然无法find我的答案。 我想将一个.java程序转换成一个Linux可执行文件,没有.jar扩展名。 我该怎么做? 我正在尝试使用Launch4j java包装,JWrapper,IzPack,制作一个.sh,制作一个.bat,使用java -jar myFile.jar等来运行它,但是它们都没有工作。 有些程序很复杂,很难debugging。 有没有简单的方法将.java文件或.jar文件转换为Linux可执行文件? 我需要将这个程序作为一个Linux可执行程序整体传递给另一个以此程序为参数的程序。

ruby鞋包装的问题?

Hacketyhack.net的(Ruby Shoes)包装解决scheme不起作用。 任何人都可以指出我的select?

阻止应用程序的所有其他input,并通过Java中的包装器进行控制

我有一个Windows应用程序,它有一个复杂的GUI,我想隐藏用户。 为了做到这一点,我想用一个非常简单的接口创build一个包装器,覆盖这个应用程序,并在用户单击包装器上的一个button时自动执行一些操作。 (我希望“包装”是合适的术语。)是否可以使用Java来阻止对底层应用程序的input,以便用户不会无意中搞乱自动化? 我将如何去做这件事? 另外,如何在不劫持鼠标的情况下自动按下按键并点击应用程序? 这在Java中可能吗? 我看了java.awt.Robot ,但它似乎劫持鼠标。 我也看过AutoIT ,但它也劫持鼠标,不与Java集成。 这些选项都不足以满足我需要的function,但我不知道如何继续。

打包使用ImageMagick C API的应用程序

我已经创build了一个使用ImageMagick C API的小应用程序,但已经碰到了一堵砖墙。 该应用程序工作正常,我准备与我们的组织中的其他人分享,但我找不到文件分发这样的应用程序,而无需在目标机器上安装ImageMagick。 这里有没有人有信息或信息的链接,详细说明如何打包发行? 哪些DLL是必需的,哪些需要注册到Windows? 目标用户将使用XP和Win7。

将文件包装在一个可执行文件包中

我想在一个可执行程序包中包装一堆文件(一个.exe,一个.xml,一些图像)。 当用户启动这个可执行文件包时,包含在这个可执行文件包中的.exe应该运行。 这可能是在Windows平台上的第一个地方? 我不在寻找的是自解压zip或安装程序,因为他们实际上都将新文件移动到硬盘上。 我为什么要这个? 我希望用户只有一个文件,以便于分发。 提前致谢 巴特 感谢您的回答。 我不得不承认,我不是一个应用程序开发人员,所以这对我来说有点新鲜。 我实际上是一个Flash开发人员。 我想要更具体一些,并向大家解释我实际上正在做的事情: 我开发了以下文件: viewer.exe(一个flash独立的浏览器,通常这是一个编译的.swf文件,但是这个文件types确实需要一个浏览器插件播放器来显示它自己。 content.xml文件 图像文件夹与不同种类的图像 viewer.exe加载content.xml,使用content.xml中定义的内容(带有指向images文件夹中不同图像的链接)创build演示文稿。 我的客户不太喜欢具有所有不同文件的完整结构,因为分发这些文件并不容易。 所以我试图把所有的文件“包装”在一个.exe或其他东西:) 我希望我更清楚一点。 如果你的解决scheme之一仍然可以创build这种types的包,请随时纠正和教育我:) 巴特