欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[翻译]如何让 IDA Pro 使用我们提供的 Python 版本以及如何在 Chroot 的环境中运行 IDA Pro

[翻译]如何让 IDA Pro 使用我们提供的 Python 版本以及如何在 Chroot 的环境中运行 IDA Pro

如何让 IDA Pro 使用我们提供的 Python 版本以及如何在

Chroot 的环境中运行 IDA Pro

0x00 前言

在这篇文章中,我将解释一个简便的方法来使用我们自己的python,Qt 5.6,PyQt 5.6版本与IDA Pro,然后如何使用

32位 Linux Arch-chrooted 运行IDA Pro,以免污染我们的主机与pesky lib32-XX最后我将文件安装好和配置好一些有

用的IDA Pro插件。

0x01 介绍

为什么不使用已经可用的技术,如Arybo,使用rpyc将rpc调用到64位python或者idalink或者安装PIP包,并且在64位机

器上使用IDA?原因很简单 我不想用一堆烦人的点包,lib32-xx等来污染我的主机。我也想使用一些很酷的IDA Pro插

件,如 keypatch,ipyida和idaemu。

注意:这个整个过程是在Arch Linux 64bit操作系统上实现的。它可以轻松应用于Ubuntu或其他发行版。

0x03 上手

安装并配置chroot和schroot环境

Arch Linux 32位chroot

从ArchLinux Wiki获取了很多技巧。

安装几个实用程序和schroot

sudo pacman  S arch install scripts schroot

mkdir /opt/arch32

配置自定义pacman.conf

如果正在使用multilib,则需要从自定义的pacman.conf中删除它。

配置自定义pacman.conf而不支持multilib:复制默认值并删除:

[Multilib]

Include = /etc/pacman.d/mirrorlist

创建Arch 32bit的chroot安装

注意:没有插件,有一些不需要正常安装IDA Pro的软件包。我发现在pacstrap而不是从chroot安装它们的速度更快。

linux32 pacstrap  C path/to/pacman.conf  di /opt/arch32 base base devel zlib libxext

libxrender libsm libice glibc glib2 fontconfig freetype2 python2 keystone python2 python2 

jupyter_client python2 ipykernel libxkbcommon x11 libxkbcommon cmocka gtk2 p7zip wget

python2 pip git

配置我们新创建的用户/网络的chroot

sudo su

cd /etc

for i in passwd* shadow* group* sudoers resolv.conf localtime locale.gen vimrc inputrc

profile.d/locale.sh; do cp  p /etc/"$i" /opt/arch32/etc/; done

配置schroot

在/etc/schroot/schroot.conf中添加chroot的env

[Arch32]

type=directory

profile=arch32

description=Arch32

directory=/opt/arch32

users=youruser

groups=users

root groups=root

personality=linux32

aliases=32,default

配置schroot使用ipython和jupyter正常运行

编辑/ etc / schroot / arch32 / mount并添加:

/run/user/1000 /run/user/1000 none rw,bind 0 0

schroot的配置完成。我们需要改变一些东西,以使IDA Pro与我们自己的python工作。

在chroot中配置X和IDA Pro

X Stuff

访问您的X为chroot

xhost +local:

(保留以后)查找当前X会话的显示ID

echo $DISPLAY

配置IDA pro使用我们自己的版本的python

输入chroot

sudo linux32 arch chroot /opt/arch32

更换终端以便正确自动完成

export TERM=xterm

可选 - 将一些字体添加到chroot以正确显示IDA Pro GUI:

如果你像我一样,你喜欢在X中更改你的字体,不要忘记将它安装在chroot中,以防止在IDA Pro中出现奇怪的字符。

pacman  S adobe source code pro fonts xorg fonts type1 ttf dejavu artwiz fonts font bh ttf \

font bitstream speedo gsfonts sdl_ttf ttf bitstream vera \

ttf cheapskate ttf liberation \

ttf freefont ttf arphic uming ttf baekmuk

配置您的chroot以使用主机的Xserver

export DISPLAY=:0

其中0是您之前提到的显示器的ID。

下载,修补,编译和安装Qt、

下载Qt 5.6

wget https://download.qt.io/official_releases/qt/5.6/5.6.0/single/qt everywhere opensourcesrc 

5.6.0.7z

提取,配置和构建它:

7z x qt everywhere opensource src 5.6.0.7z

下载并应用十六进制补丁:

cd qt everywhere opensource src 5.6.0

wget http://www.hexblog.com/wp content/uploads/2016/08/qt 5_6_0_full.zip

7z x qt 5_6_0_full.zip

patch  p1 < qt 5_6_0_full.patch

symlink python2到python来解决Qt make安装错误:

ln  s /usr/bin/python2 /usr/bin/python

配置,编译和安装:

./configure  nomake tests  qtnamespace QT  confirm license  accessibility  opensource  

force debug info  developer build  fontconfig  qt freetype  qt libpng  glib  qt xcb  dbus  

qt sql sqlite  gtkstyle

make  j9

make install

下载,编译安装QtSvg 5.6

从Qt 5.1开始,QtSvg已经转移到独立的包中。

下载包:

wget https://download.qt.io/official_releases/qt/5.6/5.6.0/submodules/qtsvg opensource src 

5.6.0.7z

7z x qtsvg opensource src 5.6.0.7z

cd qtsvg opensource src 5.6.0

Qmake,make和install Qtsvg 5.6:

../qt everywhere opensource src 5/qtbase/bin/qmake

make  j5make install

下载,编译和安装SIP

下载SIP 4.18

wget https://sourceforge.net/projects/pyqt/files/sip/sip 4.18/sip 4.18.tar.gz/download

tar xvf sip 4.18.tar.gz

cd sip 4.18

配置,编译和安装Sip 4.18:

python2 configure.py

make -j9

make install

下载,修补,编译和安装PyQt 5.6

下载PyQt 5.6:

wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt 5.6/PyQt5_gpl 

5.6.tar.gz/download

tar xvf PyQt5_gpl 5.6.tar.gz

cd PyQt5_gpl 5.6

下载我的PyQt补丁(借助Hex-Rays):

wget

https://raw.githubusercontent.com/duksctf/duksctf.github.io/master/resources/2017/ida/pyqt.p

atch

patch  p1 < pyqt.patch

配置,编译和安装PyQt 5.6:

python2 configure.py \

  sip /root/build/qt/sip 4.18/sipgen/sip \

  sip incdir /root/build/qt/sip 4.18/siplib \

  confirm license \

  enable QtCore \

  enable QtGui \

  enable QtWidgets \

  enable QtSvg \

  no designer plugin \

  no qml plugin \

  no tools \

  verbose \

  qmake /root/build/qt/qt56/qt everywhere opensource src 5.6.0/qtbase/bin/qmake

make  j9

make install

安装IDA Pro

运行IDA Pro安装程序。安装IDA时,请勿在安装程序要求安装捆绑版本的python时选择“否”。

配置IDA专业版以使用我们自己的python和Qt套件

cd /opt/ida 6.95

rm  r libQt5*

cp

/root/build/qt/qt56/qt everywhere opensource src 

5.6.0/qtbase/lib/libQt5{CLucene,Core,DBus,Gui,Help,Network,PrintSupport,Sql,Widgets,XcbQpa}.

so.5 .

cd python

rm  r PyQt5

rm  r sip files

cd lib

rm python27.zip

mv python2.7 python_old

ln  s /usr/lib/python2.7 .

cp  r "python_old/lib dynload/ida_*" /usr/lib/python2.7/lib dynload

rm  r python_old

退出chroot,非常重要

exit

警告 - 当使用linux32进行chrooting时,不要运行schroot,在分级之前始终将chroot退出。

警告 - 在首次启动IDA Pro之前,重命名0/ .idapro并删除所有插件。

使用schroot启动我们完全chroot的IDA(访问schroot.conf中用户的主机主目录)

schroot  p /opt/ida 6.95/idaq

BONUS - 为IDA专业人员安装和配置有用的插件

我是IPython的粉丝,用来自动完成和快速编写python片段。我经常修补二进制文件,但是IDA Pro中的修补功能是不完

整的。我喜欢使用独角兽引擎来模拟奇怪的代码。

安装,配置和修补ipyida

当我在Windows下使用IDA Pro时,我最喜欢的插件之一是ida_ipython。不幸的是这个插件只是Windows。ESET的

Marc-Etienne开发了一个类似的插件,但这一次可以在Windows,Linux和Mac OSX上使用。

安装qtconsole

在chroot再次:

sudo linux32 arch chroot arch_32_chroot

pip2 install qtconsole

用jupyter_support安装ipyida

不在chroot:

cd ~/.idapro

cd plugins

git clone https://github.com/eset/ipyida.git

cd ipyida

git checkout jupyter_support

cd ..

mv ipyida ipyida_temp

安装它

mv ipyida_temp/ipyida ~/.idapro/plugins

mv ipyida_temp/ipyida_plugin_stub.py ~/.idapro/plugins/ipyida

rm  r ipyida_temp

使用汇编语言安装keypatch以修补二进制文件

wget https://raw.githubusercontent.com/keystone engine/keypatch/master/keypatch.py

注意 - 键盘需要梯形失真(安装在pacstrap中)。

使用idaemu脚本安装Unicorn-Engine来模拟事情

回到我们的chroot来安装和配置Unicorn-Engine

警告 - 如果IDA Pro在schroot中运行,请勿使用linux32进行chroot,首先退出IDA Pro。

sudo linux32 arch chroot arch_32_chroot

cd /root

mkdir build

能够以root身份运行makepkg的小技巧(通常不允许):

出于安全考虑,Makepkg无法作为root运行。这是一个能够以root身份打包的小技巧。

chgrp nobody /root/build

chmod g+ws /root/build

setfacl  m u::rwx,g::rwx /root/build

setfacl  d   set u::rwx,g::rwx,o::  /root/build

创建独角兽引擎包

git clone https://aur.archlinux.org/unicorn git.git

cd unicorn git

sudo  u nobody makepkg

安装它

pacman  U unicorn xxx.pkg.tar.xz

pacman  U python2 unicorn xxx.pkg.tar.xz

修复独角兽蛋档的奇怪问题

chown  R youruser:youruser /usr/lib/python2.7

PS:我知道这很奇怪,但它是一个chroot,所以谁在乎…

退出chroot

exit

安装idaemu插件在IDA Pro中使用独角兽

wget https://raw.githubusercontent.com/36hours/idaemu/master/idaemu.py

BONUS2 - 将我们的着色主题添加到chroot IDA Pro

我喜欢为我的IDA Pro 使用辅音色主题。如果您已经在主机上应用了主题,只需将/opt/ida-xx/idacolor.cf复制到

chroot上的/ opt / ida-xx。

整理和简短的演示

它花了我很多的研究,例如试图编译QT / PyQt是一个很大的痛苦。我结束了,只是删除从ipyida插件的依赖。

这是ipyida插件的一个小视频:

本文github https://github.com/duksctf/duksctf.github.io/tree/master/resources/2017/ida

arybo插件 https://pythonhosted.org/arybo/integration.html

libTriton原理 https://triton.quarkslab.com/documentation/doxygen/py_ast_page.html

译自https://duksctf.github.io/Make-IDA-Pro-Great-Again/


注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功