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
好了,大功告成。
tokyohuang123 发表于 2021-2-24 09:02
好吧。我理解错了 因为我看到变量设置edb的path路径 你这边写着rhel6 我以为只能用redhat6版本 然后装了r ...
选RHEL6是因为我们的工作环境RHEL6是主流,在RHEL5、RHEL7下编译应该也是可以的。Linux下编译是比较麻烦的,所以选好各个包的版本就可以少走弯路。学习的话还是建议自己编译试试看,有过成功的经验,下次再有新版本,就可以完全自己动手了。 Marriner 发表于 2021-2-23 18:08
能具体说下什么下不到吗?另外,相关包是需要自己编译的,不是下载RPM。
好吧。我理解错了 因为我看到变量设置edb的path路径 你这边写着rhel6 我以为只能用redhat6版本 然后装了redhat6.9 切了centos6源头 结果 你上面的版本要求一个没达到 你帖子要求1.7 yum search只能到1.4 感觉很牛逼! 52破解人可以多研究下Linux下类似ollydbg 的应用,多培养Linux人才 非常好的学习资料,支持分享 感覺linux離我很遙遠 {:1_918:}
学习了,多谢楼主分享 有字符界面的吗?Linux一般都是ssh过去 光是设置环境变量就要搞很久。 x64的系统应用也能调试吗》》?? 多谢楼主分享