iot环境配置备忘
Marce1

Linux中配置ida

安装ida以及如何在Windows下配置idapython路径

在《揭秘家用路由器0day漏洞挖掘技术》一书中了解到可以直接在Linux中爽用ida联合gdb动调,心血来潮装了个kali虚拟机尝试

之前打pwn的时候一直都只是用wsl2,选用kali的原因之一是kali集成了很多web渗透工具,在学习iot过程中利用路由器漏洞或许可以直接用,省去不少和环境斗智斗勇的时间。在vmware中安装kali虚拟机的过程按下不表。

我使用的是ida pro 8.3绿色版,在正式开始之前可以先把压缩包解压了,在windows中提前使用绿化工具绿化好。

在安装好vmtools之后直接将ida8.3文件夹拖入虚拟机桌面,改一个没空格的名字放入用户目录下

image-20250327181442295

一般情况下不能直接在Linux中执行.exe文件,但是已经有一款成熟的模拟器软件,wine

1
sudo apt-get install wine

此时直接通过wine运行ida64.exe是可以成功的,第一次使用wine可能会花一点点时间自动更新配置。虽然会爆一堆错,但不必理会(

image-20250327181911694

可以在用户目录下写一个脚本,不必每次打开ida都敲代码

1
2
#!/bin/sh
wine /path/to/your/ida64.exe

打开ida后能够正常进行静态分析,但是下方的输出窗口会报错:

1
2
3
4
5
6
7
8
9
10
WARNING: Python 3 is not configured (Python3TargetDLL value is not set).
Please run idapyswitch to select a Python 3 install.

LoadLibrary(Z:\home\marcel\ida\Setup\plugins\idapython3_64.dll) error: 找不到模块。
Z:\home\marcel\ida\Setup\plugins\idapython3_64.dll: can't load file
WARNING: Python 3 is not configured (Python3TargetDLL value is not set).
Please run idapyswitch to select a Python 3 install.

LoadLibrary(Z:\home\marcel\ida\Setup\plugins\idapython3_64.dll) error: 找不到模块。
Z:\home\marcel\ida\Setup\plugins\idapython3_64.dll: can't load file

他会提示我们找不到python3。理应说我们安装的绿色版ida8.3内置了python3.11,如果在windows中遇到了这个问题可以直接手动运行idapyswitch.exe来选择python路径:

你可以直接运行idapyswitch.exe,通过引导设置:(wsl环境下)

1
./idapyswitch.exe

image-20250327182523916

也可以通过主动设置路径(当前一种方式无法定位到绿色版自带的python时)

1
idapyswitch.exe --force-path [/path/to/python3.dll]

image-20250327182813691

值得注意的是最好是用绿色版自带的python3.11,如果你使用的不是绿色版,我也推荐你在电脑上下载一个python3.11及之前的python版本用于配置idapython。之后的版本,如3.12会出现在加载插件时无法找到特定库的问题。

以上是windows下,包括ida插件导入失败、设置python路径问题下的解决方案。

但是,划重点:在Linux中配置python不能这么做。

在Linux中配置ida不要尝试直接通过wine idapyswitch.exe设置python路径。

在Linux中配置ida不要尝试直接通过wine idapyswitch.exe设置python路径。

在Linux中配置ida不要尝试直接通过wine idapyswitch.exe设置python路径。

如果你不想听我赘述这么做会踩的坑,请直接看通过wine注册表设置idapython路径

首先,当你尝试执行这条命令,他会提示:

1
2
3
4
5
6
7
$ wine ida/Setup/idapyswitch.exe 
it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first. as root, please
execute "dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32:i386"
"Software\Hex-Rays\IDA" exists, but no "Python3TargetDLL" value found
No Python installations were found

首先,没有已安装的python被检测到,因为windows下检查的环境变量与Linux下不同;

其次,他要你安装wine32。

一定不要装,装了之后你会发现连通过wine打开ida64.exe都不行了,每次你尝试这样执行他都会dump出一个600多兆的文件

然后,此时如果你尝试通过–force-patch 设置python路径,你会发现也打不开ida64.exe了,同样也会dump出一个贼大的文件

那怎么解决?

Linux下通过wine注册表设置idapython路径

首先,你至少先通过wine成功打开ida64.exe一次,ida才会被计入wine 的注册表。

其次,在python文件夹下找到python3.dll文件,记录下该文件的文件地址

image-20250327185001487

执行wine regedit打开wine的注册表编辑器,进入Software/Hex-Rays/IDA/

image-20250327190944136

在右侧的操作框中新建一个Python3TargetDLL键值,然后双击设置值数据为之前记录的python3.dll地址(wine中会把Linux根目录映射成windows下的Z盘,此处也要填写windows路径格式

image-20250327191955228

确定->关闭注册表,此时再次打开ida应该就没有报错了

image-20250327191905659

参考

IDA Pro 8.3 绿色版(2024.2.26更新) - 吾爱破解 - 52pojie.cn

64位Linux下安装IDA pro&IDA pro的使用 - 闲不住的小李 - 博客园

如何在Linux上舒适地运行IDA Pro并且正常使用脚本

网络环境配置

执行:

1
sysctl -w net.ipv4.ip_forward=1

开启ipv4数据包转发功能,把 Linux 系统当作路由器使用,让连接到该系统的不同网络之间能够进行通信

修改/etc/network/interfaces

首先安装一下网桥工具

1
2
sudo apt-get install bridge-utils
echo "bridge" | sudo tee -a /etc/modules

此时ifconfig应该也会出现网桥br0的接口

然后编辑网络配置文件

1
sudo vim /etc/network/interfaces
1
2
3
4
5
6
7
8
9
10
11
12
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_maxwait 0
bridge_stp off
bridge_fd 0

在修改之前用ifconfig看一下自己的以太网接口时eth0还是ens33;如果是ens33,把上面所有eth0全部改成ens33

重启网络配置

1
sudo /etc/init.d/networking restart

安装qemu

1
2
sudo apt-get install qemu-user-static
sudo apt-get install qemu-system

打开网络接口启动脚本/etc/qemu-ifup并写入:

1
2
3
4
5
6
7
#!/bin/sh
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridge mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /sbin/brctl addif br0 $1
sleep 2

赋予权限

1
sudo chmod a+x /etc/qemu-ifup

创建qemu使用桥的配置文件

1
2
sudo mkdir /etc/qemu
sudo vi /etc/qemu/bridge.conf

写入

1
allow br0

安装binwalk

1
sudo apt install binwalk

安装sasquatch

devttys0/sasquatch

1
2
3
4
5
sudo apt-get install build-essential liblzma-dev liblzo2-dev zlib1g-dev
git clone --quiet --depth 1 --branch "master" https://github.com/devttys0/sasquatch
cd sasquatch
wget https://github.com/devttys0/sasquatch/pull/51.patch && patch -p1 <51.patch
CFLAGS=-fcommon ./build.sh

最后执行./build.sh之前可能要挂一下虚拟机的代理,不然请求不到。

这应该是最优解了,踩了不少坑

由 Hexo 驱动 & 主题 Keep
总字数 47.9k 访客数 访问量