Marriner 发表于 2021-1-22 17:59

Linux下的ollydbg - edb新版1.3.0编译

本帖最后由 Marriner 于 2021-1-22 18:07 编辑

Linux下debug是件挺麻烦的事,好在有这个工具,操作类似ollydbg,做些基础的debug还是挺好用的。

1. 准备工作,安装好需要用到的工具
    以下为需要的工具列表(请注意版本,版本选得不好的话,可能后面会备受折磨,此处省略若干字......)
    boost   =>1_75_0
    gcc => 5.3
    cmake => 3.12.1
    capstone => 4.0.1
    graphviz => 2.40.1
    Qt => 5.6.3

2.设置下环境变量 (可以写入文件如edb.setup.5.3.csh,安装edb前,source edb.setup.5.3.csh)
setenv EDB_ROOT /PATH/edb/RHEL6
setenv BOOSTDIR $EDB_ROOT/boost_1_75_0
setenv CPLUS_INCLUDE_PATH $BOOSTDIR/include/boost
setenv Boost_INCLUDE_DIR $BOOSTDIR/include/boost

setenv CMAKE_HOME $EDB_ROOT/cmake-3.12.1-Linux-x86_64
set path = ($CMAKE_HOME/bin $path)

setenv QMAKE_HOME $EDB_ROOT/Qt5.6.3/5.6.3
set path = ($QMAKE_HOME/gcc_64/bin $path)
################################################################
# settings belowwill make find capstone and libgvc
################################################################

setenv PKG_CONFIG_PATH $EDB_ROOT/capstone-4.0.1/lib/pkgconfig:/graphviz-2.40.1/lib/pkgconfig

setenv GCC_HOME $EDB_ROOT/gcc-5.3.0-linux_x86_64
set path = ($GCC_HOME/bin $path)

setenv LD_LIBRARY_PATH $EDB_ROOT/capstone-4.0.1/lib64:$GCC_HOME/lib64:$GCC_HOME/lib:$BOOSTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH

setenv CAPSTONE_INCLUDE_DIRS $EDB_ROOT/capstone-4.0.1/include
setenv CAPSTONE_LIBRARY_DIRS $EDB_ROOT/capstone-4.0.1/lib64
setenv GRAPHVIZ_INCLUDE_DIRS $EDB_ROOT/graphviz-2.40.1/include
setenv GRAPHVIZ_LIBRARY_DIRS $EDB_ROOT/graphviz-2.40.1/lib

3. 安装edb
(a) 到下面网站下载最新版edb源文件 edb-debugger-1.3.0.tgz
      https://github.com/eteran/edb-debugger
(b)解压 tar zxvf edb-debugger-1.3.0.tgz
(c)cd edb-debugger/include
      ln -s $EDB_ROOT/boost_1_75_0/include/boost .
      ln -s $EDB_ROOT/capstone-4.0.1/include/capstone .
      ln -s $EDB_ROOT/graphviz-2.40.1/include/graphviz .
(d) 修改两个文件
   (i)在文件src/arch/x86-generic/ArchProcessor.cpp中加入下面一行
            #define __X32_SYSCALL_BIT 0x40000000

   (ii)cd edb-debugger/include, 因为编译时报下面的错,编辑文件Value.h注释掉第82行/* p += sprintf(p, "%016" PRIx64, *it); */
                  include/Value.h:82:27: error: expected ')' before 'PRIx64'
                            p += sprintf(p, "%016" PRIx64, *it);
(e) cmake -DBOOST_ROOT:PATH=$EDB_ROOT/boost_1_75_0
   make

好了,大功告成。


      

Marriner 发表于 2021-2-24 09:40

tokyohuang123 发表于 2021-2-24 09:02
好吧。我理解错了 因为我看到变量设置edb的path路径 你这边写着rhel6 我以为只能用redhat6版本 然后装了r ...

选RHEL6是因为我们的工作环境RHEL6是主流,在RHEL5、RHEL7下编译应该也是可以的。Linux下编译是比较麻烦的,所以选好各个包的版本就可以少走弯路。学习的话还是建议自己编译试试看,有过成功的经验,下次再有新版本,就可以完全自己动手了。

tokyohuang123 发表于 2021-2-24 09:02

Marriner 发表于 2021-2-23 18:08
能具体说下什么下不到吗?另外,相关包是需要自己编译的,不是下载RPM。

好吧。我理解错了 因为我看到变量设置edb的path路径 你这边写着rhel6 我以为只能用redhat6版本 然后装了redhat6.9 切了centos6源头 结果 你上面的版本要求一个没达到 你帖子要求1.7 yum search只能到1.4

rbgaoshou 发表于 2021-1-22 23:02

感觉很牛逼!

mormas 发表于 2021-1-23 08:41

52破解人可以多研究下Linux下类似ollydbg 的应用,多培养Linux人才

lifz888 发表于 2021-1-23 09:19

非常好的学习资料,支持分享

cpj1203 发表于 2021-1-23 11:52

感覺linux離我很遙遠

xie83544109 发表于 2021-1-23 13:44

{:1_918:}
学习了,多谢楼主分享

snsmqing 发表于 2021-1-23 16:25

有字符界面的吗?Linux一般都是ssh过去

plasd 发表于 2021-1-23 21:26

光是设置环境变量就要搞很久。

chenjingyes 发表于 2021-1-23 21:36

x64的系统应用也能调试吗》》??

skyyihong 发表于 2021-1-23 21:39

多谢楼主分享
页: [1] 2 3
查看完整版本: Linux下的ollydbg - edb新版1.3.0编译