error: command 'gcc' failed with exit status 1;;;;warning: function declaration isn’t a prototype ociap.h
error: command 'gcc' failed with exit status 1
=================================
~# aptitude install python-dev build-essential
===================================
root@w:~# cd /data/workSpace/src_tools/cx_Oracle-4.3.1/
root@w:/data/workSpace/src_tools/cx_Oracle-4.3.1# python setup.py build
running build
running build_ext
building 'cx_Oracle' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/u01/oracle/11/rdbms/demo -I/u01/oracle/11/rdbms/public -I/u01/oracle/11/network/public -I/u01/oracle/11/sdk/include -I/usr/include/python2.6 -c cx_Oracle.c -o build/temp.linux-x86_64-2.6/cx_Oracle.o -DBUILD_VERSION=4.3.1
In file included from /u01/oracle/11/rdbms/public/oci.h:3024,
from cx_Oracle.c:9:
/u01/oracle/11/rdbms/public/ociap.h:10788: warning: function declaration isn’t a prototype
/u01/oracle/11/rdbms/public/ociap.h:10794: warning: function declaration isn’t a prototype
creating build/lib.linux-x86_64-2.6
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-x86_64-2.6/cx_Oracle.o -L/u01/oracle/11/lib -L/u01/oracle/11 -lclntsh -o build/lib.linux-x86_64-2.6/cx_Oracle.so
root@w:/data/workSpace/src_tools/cx_Oracle-4.3.1#
======================================================
root@w:/data/workSpace/src_tools/cx_Oracle-4.3.1# python setup.py install
running install
running build
running build_ext
running install_lib
copying build/lib.linux-x86_64-2.6/cx_Oracle.so -> /usr/local/lib/python2.6/dist-packages
running install_egg_info
Writing /usr/local/lib/python2.6/dist-packages/cx_Oracle-4.3.1.egg-info
######################
http://blog.csdn.net/zlchina1989/article/details/6196494
#########################################
http://netsec.ccert.edu.cn/bobo/2011/03/11/phoneyc%E5%AE%89%E8%A3%85%E5%85%A8%E8%AE%B0%E5%BD%95/
phoneyc安装全记录
Phoneyc是一个低交互式的蜜罐,用于分析针对客户端的恶意代码行为,安装的过程比较痛苦,特此记之, 以资鼓励。
结构图:
安装步骤参见:http://godorz.info/2010/04/note-of-installing-phoenyc/ 总共有27步,
- sudo apt-get install libnspr4-0d libnspr4-dev #安装phoneyc依赖的nspr
- wget http://curl.haxx.se/download/curl-7.20.0.tar.gz && tar zvxf curl-7.20.0.tar.gz #以下3步安装phoneyc依赖的curl
- cd curl-7.20.0
- sudo ./install-sh
- cd ..
- wget http://godorz.info/wp-content/uploads/2010/04/pycurl-7.19.0.tar.gz && tar zvxf pycurl-7.19.0.tar.gz #以下4步安装 \ phoneyc同样依赖的pycurl <- curl的python版
- cd pycurl-7.19.0
- python setup.py build
- sudo setup.py install
- cd ..
- wget http://godorz.info/wp-content/uploads/2010/04/libemu-trunk.tar.bz2 && tar jvxf libemu-trunk.tar.bz2 #下载 \ phoneyc的依赖包并且解压缩
- cd libemu-trunk #以下4步安装libemu
- autoreconf -v -i
- . /configure –prefix=/opt/libemu
- sudo make install
- cd ..
- sudo echo “/opt/libemu/lib/libemu” > /etc/ld.so.conf.d/libemu.conf #以下两步配置ld
- sudo ldconfig
- svn checkout https://phoneyc.googlecode.com/svn/phoneyc/trunk/ phoneyc #下载phoneyc
- cd phoneyc/modules/libemu #根据jose的说法,以下3步将hook up the installed libemu to phoneyc
- python setup.py build
- sudo setup.py install
- cd .. #以下3步安装modules,包含hcalert,honeyjs,jscript,libemu等组件.
- sudo make
- sudo make install
- cd ..
- python phoneyc.py -v file://test/ssreader_0day.html #测试,如果返回结果与 /phoneyc/result//home/arthur/phoneyc/result/ssreader_0day.txt一致,就说明phoneyc已经成功安装了.
现将我在上述安装过程中每个步骤出现的问题以及所做的尝试记录如下:
第4步,sudo ./install-sh 时提示无输入,查询之后发现, apt-get install curl可以,随后更新apt-get 的源列表,安装curl成功。
第8步,python setup.py build出现错误,如下:
root@network:~/pycurl-7.19.0# python setup.py build
sh: curl-config: not found
Traceback (most recent call last):
File “setup.py”, line 90, in <module>
raise Exception, (“`%s’ not found – please install the libcurl development files” % CURL_CONFIG)
Exception: `curl-config’ not found — please install the libcurl development files
root@network:~/pycurl-7.19.0#
根据提示安装 libcurl
用apt-get install 返回无法找到该包,搜索之后得到sudo aptitude install libcurl4-openssl-dev 安装之后回到第8步还是不行,安装apt-get install python-setuptools之后运行easy_install pycurl仍然报错,同样是Exception: `curl-config’ not found — please install the libcurl development files
apt-get install libtool之后仍然不行,再次搜索之后,运用apt-cache depends python-pycurl 查看所有的依赖关系如下:
root@network:~# apt-cache depends python-pycurl
python-pycurl
Depends: libc6
Depends: libcurl3-gnutls
Depends: libgcrypt11
Depends: libgnutls26
Depends: libgssapi-krb5-2
Depends: libidn11
Depends: libldap-2.4-2
Depends: zlib1g
Depends: python
Depends: python
Depends: python-support
Suggests: libcurl4-gnutls-dev
Suggests: python-pycurl-dbg
Conflicts: <python2.3-pycurl>
Conflicts: <python2.4-pycurl>
Replaces: <python2.3-pycurl>
Replaces: <python2.4-pycurl>
查看之后,看到红色行,google搜索,运用sudo aptitude install libcurl4-gnutls-dev
回到第8步python setup.py build之后报错终于发生可喜的变化如下:
root@network:~/pycurl-7.19.0# python setup.py build | more
Using curl-config (libcurl 7.19.5)
running build
running build_py
running build_ext
building ‘pycurl’ extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DHAVE_CURL_GNUTLS=1 -DHAVE_CURL_SSL=1 -I/usr/include/python2.6 -c src/pycurl.c -o build/temp.linux-i686-2.6/src/pycurl.o
src/pycurl.c:42:20: error: Python.h: No such file or directory
src/pycurl.c:43:22: error: pythread.h: No such file or directory
……………………….
这是个头文件包含的错误,再次Google之后尝试sudo apt-get install python-dev,该步终于通过!
随后一直到第13步,autoreconf -v –i报错如下
root@network:~/libemu-trunk# autoreconf -v -i
The program ‘autoreconf’ can be found in the following packages:
* autoconf
* autoconf2.13
Try: apt-get install <selected package>
autoreconf: command not found
根据提示安装autoconf2.13之后顺利通过13步
随后到19步,提示未安装svn(apt-get install subversion)
安装SVN之后到21步时,错误又来了!
python setup.py build报错如下:
root@network:~/phoneyc/modules/libemu# python setup.py build
running build
running build_ext
building ‘libemu’ extension
creating build
creating build/temp.linux-i686-2.6
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/opt/libemu/include -I/usr/include/python2.6 -c libemu_module.c -o build/temp.linux-i686-2.6/libemu_module.o
libemu_module.c: In function ‘user_hook_URLDownloadToFile’:
libemu_module.c:79: warning: unused variable ‘szFileName’
libemu_module.c:78: warning: unused variable ‘szURL’
libemu_module.c: At top level:
libemu_module.c:594: warning: function declaration isn’t a prototype
creating build/lib.linux-i686-2.6
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.6/libemu_module.o -L/opt/libemu/lib -lemu -o build/lib.linux-i686-2.6/libemu.so
/usr/bin/ld: cannot find -lemu
collect2: ld returned 1 exit status
error: command ‘gcc’ failed with exit status 1
分析之后可知,是由于build时未找到libemu的库,网上google之后得到解决方案:
由于gcc指明的库目录是/opt/libemu/lib/,然而实际上库文件在/opt/libemu/lib/libemu中,将/opt/libemu/lib/libemu/文件夹下的文件拷贝到/opt/libemu/lib/,问题顺利解决,本以为大功告成,可是在运行最后一步检测包含恶意代码的测试网页时,出现了意外,报错如下:
root@network:~/phoneyc# python phoneyc.py -v file://test/ssreader_0day.html
Traceback (most recent call last):
File “phoneyc.py”, line 190, in <module>
from DOM.DOM import DOM
File “/root/phoneyc/DOM/DOM.py”, line 11, in <module>
from Window import Window
File “/root/phoneyc/DOM/Window.py”, line 9, in <module>
from honeyjs import Runtime
File “build/bdist.linux-i686/egg/honeyjs.py”, line 7, in <module>
File “build/bdist.linux-i686/egg/honeyjs.py”, line 6, in __bootstrap__
ImportError: libemu.so.2: cannot open shared object file: No such file or directory
root@network:~/phoneyc#
根据问题的提示,我做了将近一个小时的尝试,当时我认为是第23步安装modules(包含hcalert,honeyjs,jscript,libemu等组件)没有正确安装,在重装了这些组件之后,还重装了honeyjs,jscript依赖的spidermonkey,问题还是没有解决,这个时候我重新看了一遍错误提示,发现我从来没有仔细看过的最后一句已经把问题讲得很明白了
ImportError: libemu.so.2: cannot open shared object file: No such file or directory
显然是 在上述的.py文件中调用libmu.so.2库失败,我将libemu在/opt/libemu/lib/libemu/下的所有文件拷入/usr/lib/,重新测试成功!采取这个方法多少受到解决21步所用的方法的影响,在网上搜了一遍,没有特别合适的,正规的方法还是应该修改conf文件里调用库的路径,鉴于我目前对linux的了解,在尝试几次之后放弃了这种方法。
接下来安装北大张慧林博士的pdfanalyze模块,这个模块比较简单,分两步如下:
1、 svn checkout http://phoneyc.googlecode.com/svn/phoneyc/branches/huilin-pdfanalyze
2、 easy_install pyparsing
该模块的用法如下:
先切换到文件夹huilin_modified_jsunpack-n
use “python pdf.py filepath” to analyze each pdf sample
每个PDF产生3个文件,如:a.pdf对应于a.pdf.jsresult\a.pdf.jstime\a.pdf.out
作者的说明:
for each sample,the XX.out is the extracted JavaScript code in the PDF file, the XX_process is the parsing process to make you understand how the parser works
至此,总算装完了这套蜜罐!有那么几点体会:
第一, 在安装的过程中对系统的关键组件不要去随意改变版本,我在一开始时碰到用python编译代码出错时就重装了低版本的python,结果可想而知,问题没解决还把系统的环境搞乱了,导致周六一个下午都浪费了。
第二, 在碰到问题时,上网搜索很关键,更关键的是判断别人的回复是否靠谱。如果你的判断出错,尽快回到干净的系统,重新开始。
第三, 搜索的时候,一定要FQ,开源的代码大部分都是国外人做的。
第四, 错误提示如果很长,比如,那种GCC报的错,抓住前面的信息,一般都是头文件的问题;如果错误提示短的话,最好要看完。
第五, Linux系统里各个文件的依赖关系确实有点复杂,初学者面对问题很难做到思路清晰地将问题提取出关键字去搜索,这只能一点一点积累了。