使用 Wine 运行 IDA Pro

因为网上的 IDA Pro 破解版大多是 Windows 版本的,当使用 Linux 时,来回切换虚拟机就很不方便,所以本文通过安装配置 Wine ,实现在 Linux 中也能正常使用 IDA Pro 的目的。

安装

Ubuntu 官方源中的 wine 版本比较老,不建议使用。

Wine 提供了 stable、devel、staging 三个版本,但是截至本文时,仓库中暂时没有针对 Ubuntu 22.04 的 stable 版本,所以此处安装 staging 版本。

1
2
3
4
5
6
sudo dpkg --add-architecture i386 
sudo wget -nc -O /usr/share/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt update
# ubuntu 22.04 暂时没有 winehq-stable 版本
sudo apt install --install-recommends winehq-staging

配置

初始化

1
wineboot

该命令会创建 ~/.wine 目录并在其中初始化组件,如果想清空后续设置,可以直接删除此目录,重新执行该命令即可。

winecfg

1
winecfg

在 winecfg 中修改"Graphics-Screen resolution"的值(默认的显示效果可能会很差),勾选"Staging-Enable GTK3 Theming" ,"Desktop Integration-Appearance"的主题我们选择使用自带的"Light",不喜欢的话可以在网上搜索下载安装新主题。其他选项可按需修改。

Wine Configuration

开启字体抗锯齿化

将以下内容保存为 .sh 文件,例如 winefontssmoothing.sh,并通过命令 bash winefontssmoothing.sh 执行,选择第三项即可。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/sh
# Quick and dirty script for configuring wine font smoothing
#
# Author: Igor Tarasov <tarasov.igor@gmail.com>

WINE=${WINE:-wine}
WINEPREFIX=${WINEPREFIX:-$HOME/.wine}
DIALOG=whiptail

if [ ! -x "`which "$WINE"`" ]
then
    echo "Wine was not found. Is it really installed? ($WINE)"
    exit 1
fi

if [ ! -x "`which "$DIALOG"`" ]
then
    DIALOG=dialog
fi

TMPFILE=`mktemp` || exit 1

$DIALOG --menu \
    "Please select font smoothing mode for wine programs:" 13 51\
    4\
        1 "Smoothing disabled"\
        2 "Grayscale smoothing"\
        3 "Subpixel smoothing (ClearType) RGB"\
        4 "Subpixel smoothing (ClearType) BGR" 2> $TMPFILE

STATUS=$?
ANSWER=`cat $TMPFILE`

if [ $STATUS != 0 ]
then 
    rm -f $TMPFILE
    exit 1
fi

MODE=0 # 0 = disabled; 2 = enabled
TYPE=0 # 1 = regular;  2 = subpixel
ORIENTATION=1 # 0 = BGR; 1 = RGB

case $ANSWER in
    1) # disable
        ;;
    2) # enable
        MODE=2
        TYPE=1
        ;;
    3) # enable cleartype rgb
        MODE=2
        TYPE=2
        ;;
    4) # enable cleartype bgr
        MODE=2
        TYPE=2
        ORIENTATION=0
        ;;
    *)
        rm -f $TMPFILE
        echo Unexpected option: $ANSWER
        exit 1
        ;;
esac

echo "REGEDIT4

[HKEY_CURRENT_USER\Control Panel\Desktop]
\"FontSmoothing\"=\"$MODE\"
\"FontSmoothingOrientation\"=dword:0000000$ORIENTATION
\"FontSmoothingType\"=dword:0000000$TYPE
\"FontSmoothingGamma\"=dword:00000578" > $TMPFILE

echo -n "Updating configuration... "

$WINE regedit $TMPFILE 2> /dev/null

rm -f $TMPFILE

echo ok

winefontssmoothing

安装 python

IDA Pro 中需要 python 环境执行自定义脚本,所以首先安装 python。此处我下载的是 python-3.8.0-amd64.exe

切换到安装包所在目录,执行以下命令,会弹出一个类似于 Windows cmd 的窗口,同目录下可以看到 python 安装包,直接运行该程序即可。

1
wineconsole

image-20220824142239099

安装时选择自定义安装,仅安装 python 核心功能即可,记得一定要添加环境变量。

字体

可以将 Windows 中的字体直接复制到 wine 的字体目录中,我暂时只用到了"consola"和"微软雅黑"两种字体,所以只复制了这两种字体,放入 ~/.wine/drive_c/windows/Fonts 即可。

image-20220824143916234

使用 IDA Pro

1
wine ~/bin/ida-pro/ida/ida.exe 

设置 zshrc

每次输入这么长的命令很不方便,可以在 .bashrc 或 .zshrc 中自定义函数,例如

1
2
3
4
5
6
7
function ida(){
	wine ~/bin/ida-pro/ida/ida.exe $1
}

function ida64(){
	wine ~/bin/ida-pro/ida/ida64.exe $1
}

以后使用命令 ida 或者 ida64 即可运行,也可传递目标程序路径作为参数,直接打开分析。

1
2
ida
ida target.so

中文程序

其他 Windows 应用操作与此类似,如果需要中文,可以在前面添加环境变量,例如

1
env LANG=zh_CN.UTF-8 wine calc.exe

卸载

1
2
sudo apt purge wine-staging
sudo apt autoremove

删除以下路径

1
2
3
4
5
6
~/.config/wine/
~/.wine
~/.config/menus/applications-merged/wine*
~/.local/share/applications/wine
~/.local/share/desktop-directories/wine*
~/.local/share/icons/????_*.xpm

参考链接

1、Installing WineHQ packages

2、improve gui appearance of wine applications

3、IDA Pro 7.7.220118 (SP1)

updatedupdated2022-08-242022-08-24