Articles of Linux操作系统

Linux缓冲区溢出环境variables

我一直在审查不同风格的缓冲区溢出,遇到了一个问题,我不记得它为什么会发生。 下面的代码是我试图执行缓冲区溢出的程序: #include <stdio.h> void func(char *buff){ char buffer[5]; strcpy(buffer, buff); printf("%s\n", buffer); } int main(int argc, char *argv[]){ func(argv[1]); printf("I'm done!\n"); return 0; } 程序的核心概念很简单,我只是溢出缓冲区来覆盖func()的返回地址。 这一切都很好,当我给它一个地址,如0x0804850c正好是程序的<_fini> 。 当我用这个地址实现溢出的最终结果是程序退出“优雅”没有打印I'm done! 。 我现在遇到的问题是,当我试图redirect返回地址的东西说一个环境variables位于0xbfffd89 。 位于特定环境variables中的shell代码应该在发出hello之后退出程序。 然而,这并没有发生,程序简单地分段故障,就是这样。 shell代码已经被证实可以在我写的testingshell代码的前一个程序中使用。 任何人有任何想法,为什么这是行不通的。 谢谢

编译synology上的truecrypt

我试图编译和安装我的synology框(DS212J)truecrypt下面这篇文章,但我没有得到任何成功。 http://systemsnotebook.blogspot.com/2011/05/truecrypt-7-on-synology.html 当我尝试运行时,从第一步开始 ./configure –prefix=/opt/local CFLAGS="-march=i686" CC=gcc 我明白了 Home> ./configure –prefix=/opt/local CFLAGS="-march=i686" CC=gcc checking for gcc… gcc checking whether the C compiler works… no configure: error: in `/volume1/BACKUP/nasm-2.10': configure: error: C compiler cannot create executables See `config.log' for more details 我在跑 Marvell Kirkwood mv6281 1.2Ghz ARM处理器(Marvell ARMADA 300)16位@ DDR2,256MB RAM 基于 http://forum.synology.com/wiki/index.php/What_kind_of_CPU_does_my_NAS_have

在C / C ++中对命令行程序进行回归testing

我有一个Linux实用工具,parsing结构化的input(一个文本文件),处理它,并打印结果到屏幕上。 例如:(input) COMMAND=create NAME=Stack SURNAME=Overflow 我的实用程序将上述文本文件作为input,并尝试在数据库中创build一个对象(堆栈,溢出)。 如果操作成功执行,我的程序将返回如下所示的内容: COMMAND=create Code=0 Result=OK 或者在发生错误的情况下 COMMAND=create Code=10 Result=Duplicate entry 我正在寻找一种为我的二进制文件创build回归套件的好方法。 任何适合我的情况的想法? 在C / C ++的JUnit的任何替代?

mkdir,带符号的path名

我有一个小问题,我需要从我的C代码或C ++目录,无所谓。 但是,目录名称必须包含“:”,“','”等字符。 在目前的一般情况下,当我尝试使用mkdir()函数创build时,我得到EINVAL错误,但是从system("mkdir …")一切正常。 我怎么解决这个问题? 谢谢!!!

Linux的权限(LAMP)

我正在尝试在/ var / www中使用安全权限configurationLinux服务器。 我读过,你不应该由于各种原因将你的用户帐户添加到www-data组。 相反,最好(我被告知)要创build一个独立的开发人员组。 以下是我想到的: group add developers usermod -a -G developers my_account chown -R root:developers /var/www find /var/www/ -type d -exec chmod 775 {} \; find /var/www -type d -print | xargs chmod g+rwxs find /var/www/ -type f -exec chmod 664 {} \; 另外,编辑/ etc / apache2 / envvars并添加: umask 002 问题: […]

Bash脚本从rc.local运行

我制作了一个使用名为Diascope的程序,它是一个video幻灯片程序。 我试图在encodeVideo.sh中运行这个命令 echo "Running diascope -clean /mnt/videos/video$1.txt…" diascope -clean /mnt/videos/video$1.txt > /var/www/html/video/encodeVideo.log echo "Removing old deploy dir, and making new one…" 我从rc.local运行这个脚本,以便每次启动实例时都运行它。 我所需要的是获得“diascope”命令的输出 ,在rc.local中运行encodeVideo: /bin/bash /var/www/html/video/encodeVideo.sh > /var/www/html/video/newlog 在newlog我可以看到这一点 Running diascope -clean /mnt/videos/video7.txt… Removing old deploy dir, and making new one… 和/var/www/html/video/encodeVideo.log是完全空的! Diascope使用gawk,顺便说一句,当我手动运行encodeVideo.sh脚本时,我可以看到处理的输出。 为什么我不能在这个日志中捕获它? 有可能它不是标准输出,所以“>”实际上并没有捕获它? 任何想法将是有益的,谢谢!

bash_profile不能正常工作

您好我在远程设备上运行linux angstrom分发,我添加.bash_profile和.bashrc到/ home / root,因为他们不存在,我写了这个在他们 PATH=/opt/qt-arm/lib:$PATH export PATH 但是现在当我login到这个设备并键入$ PATH我没有看到新添加的path…任何想法?

在shell脚本中使用for循环遍历参数列表?

我想通过参数显示提供给我的shell脚本的文件的内容。 我需要使用普通的'for(())'循环来做这个,而不是'for arr'循环。 这是我的代码。 我应该如何正确的文件名称为该猫命令? for (( i=1;$i<=$#;i=$i+2 )) do cat '$'$i #display the contents of the file currently being traversed done

零拷贝机制和libpcap

是否有可能使用零拷贝数据包机制在Linux上使用libpcap读取数据包? (我正在使用CentOS 6.2)如果是,我可以看到任何代码的例子吗?

缩放类似search引擎的search引擎,但对于Linux / UNIX

最近我发现了Zoom Search Engine ,这让我觉得很有趣,因为它的软件允许索引过程和search过程轻松解耦。 换句话说,您在本地机器上运行索引器,然后上传此索引以及使用它的PHP文件,将其search到您的networking服务器。 所以你的networking服务器不必做索引。 我有一个共享环境中的主机,尽可能less使用资源,所以这对我来说是非常棒的。 此外,我有一个大部分未使用的小型服务器在家里(这不是我的networking服务器),我可以使用索引的目的。 但是,它仅运行Linux,仅适用于SSH,因此Zoom Search Engine不是一个选项。 是否有一些与缩放search引擎(本地索引,上传索引+ PHP到网站)相同的原理,但可用于命令行Linux环境?