2013年6月18日星期二

Linux 下运行 IDA Pro

Q. 如何在 Linux 下使用图形界面的IDA Pro

可以使用 IDA Pro 6.2 + 的Linux版本,IDA  Pro 6.2 + 的Linux 版本提供了Qt 界面。
买不起也有办法 ,使用 wine 可以很好地运行IDA pro

$ wine idag.exe

IDA Pro 6.1  成功运行.

但是idapython 有些问题,如何处理?

引起idapython不能正常运行的原因主要有下面两个:

1) 文件缺失
大概会报下面错误
err:module:import_dll Library python27.dll (which is needed by L"C:\\ida61\\plugins\\python.plw") not found

要解决这个错误,需要从windows下拷贝两个文件过来,这两个文件是 msvcr90.dll,python27.dll

$ wine idag.exe

2) 环境变量
会报下面类似错误, ImportError: No module named site
发生这个错误的原因是找不到python安装路径,可以使用unix下的python
使用shell命令设置环境变量

$ export PYTHONPATH=/usr/lib/python2.7/
$ wine idag.exe

一切运行正常

参考链接:http://www.openrce.org/forums/posts/463

2012年11月2日星期五

hexdump C++ version



#include <sstream>
#include <iostream>
#include <string>
#include <iomanip>
#include <cctype>
#include <fstream>
using namespace std;

int  hexdump(std::string s, int len, int width) {
    stringstream hexd;
    stringstream printa;
    stringstream line;

    for (int ix = 0; ix < len; ) {
        hexd.str("");
        printa.str("");
        line.str("");

        int i = ix;
        for (; ix < i + width && ix < len; ix ++) {
            hexd << setw(2) << setfill('0') << hex \
                << static_cast<int>(static_cast<unsigned char>(s[ix])) << " ";

            isprint(s[ix])? printa << s[ix] : printa << '.';
        }

        line << right << setw(4) << setfill('0') << hex << i << " ";
        line << left << setw(width*3) << setfill(' ') << hexd.str() << printa.str() << endl;
        cout << line.str();
    }

    return 0;
}

int main (int argc, char ** argv) {
    std::string input("");
    //std::cin >> input;
    //hexdump(input, input.size(), 16);
    fstream in("h:\\bootmgr", ios::in | ios::binary);
    fstream out("abc", ios::out | ios::binary);
    stringstream ss;
    ss << in.rdbuf();
    input = ss.str();
    hexdump(input, input.size(), 16);
    return 0;
}

2012年10月28日星期日

SPIKE 在 ubuntu 下的编译


http://sickness.tor.hu/?p=345
http://resources.infosecinstitute.com/fuzzer-automation-with-spike/

编译问题方法
------------------------
wget https://www.immunitysec.com/downloads/SPIKE2.9.tgz
tar zxvf SPIKE2.9.tgz
cd SPIKE/SPIKE/src
aclocal && automake && autoconf && ./configure

上面的命令将生成Makefile文件, 但是这个Makefile 在 ubuntu 12.04 下编译由问题,
需要处理一下。

libdlrpc.so: dlrpc.o dlargs.o $(SPIKE_OBS)
    gcc -ggdb -shared -fpic -o libdlrpc.so dlrpc.o dlargs.o $(SPIKE_OBS)

generic_send_tcp: generic_send_tcp.o dlrpc.o dlargs.o $(SPIKE_OBS) libdlrpc.so
    gcc -ggdb -o generic_send_tcp generic_send_tcp.o dlrpc.o dlargs.o spike.o $(DL_LIB) -L. -ldlrpc

有多处需要修改。最后执行make, ALL Done。开始的按照网络上说的方法,编译成功
但是遇到了undefined symbol 的问题,怎么也弄不过去。最后还是自己修改了Makefile
搞定

2012年8月2日星期四

对漏洞的理解


国外资料对漏洞比较好的定义:
In computer security, the term vulnerability is a weakness which allows an attacker to reduce a system's Information Assurance. 
翻译过来是在计算器安全领域,术语漏洞是可以被攻击者利用,能够降低系统的信息安全保障的问题。
     微软对漏洞的定义,即使使用者在合理配置了产品的条件下, 由于产品自身存在的缺陷,产品的运行可能被改变以产生非设计者预期的后果,并可最终导致安全性被破坏的问题, 包括使用者系统被非法侵占、数据被非法 访问并泄露,或系统拒绝服务等。我们将这些缺陷称为安全漏洞。
    微软的定义有个关键点,合理配置。像空口令这种问题,从严格意义上来说不应该属于漏洞范畴,应该属于配置不当的问题。漏洞属于bug(软件缺陷),但只是bug的一个子集。
    最近在Wooyun经常看见有人提交Bug,漏洞和bug还是比较容易混淆的,整理了一下自己对漏洞的理解,供大家参考。

fcitx 4.2.6 ubuntu源码编译安装


安装依赖的库
------------------
sudo apt-get install build-essential automake
sudo apt-get install x11proto-xext-dev libxtst-dev
sudo apt-get build-dep fcitx
sudo apt-get install libxpm-dev
sudo apt-get install gettext
sudo apt-get install libxkbfile-dev
sudo apt-get install libgirepository1.0-dev 

下载编译安装
--------------------
cd fcitx
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_GTK3_IM_MODULE=On -DENABLE_QT_IM_MODULE=On 
make 
sudo make install

2012年3月20日星期二

ubuntu 问题记录


Q. ubuntu 升级ATI显卡,双显示器解决方法




升级ATI显卡后发现无法进入X,查看配置文件后,是xorg.conf 的配置问题,更改驱动
类型后(修改为ati),正常进入X。到ATI网站下载最新驱动程序,后用ATI显卡设置工具
可以设置显示器拓展模式(需要root权限)


安装好驱动后, amdccle 可以设置显示器为拓展模式。




Q. ubuntu 下如何禁止mysql服务自动启动 ( samba)
A. ubutun mysql 和 samba 的启动方式改为ustart, 不受传统的init 脚本控制




2011-12-16
Q. 小键盘不好用了, 变成控制方向键
A. shift+alt + number lock