IDA9.1使用技巧(安装、中文字符串显示、IDA MCP服务器详细部署和MCP API函数修改开发经验)
一.前言:
之前关注我的粉丝,应该都看过我写的关于IDA7和IDA8.3的安装、中文字符串教程,虽然写这两篇文章并没过去多久,但是IDA在这么短的时间内,又迭代版本了,现在IDA的版本已经来到了9.1了。之前的两篇文章链接如下,又需要的朋友可以去看看:
全站最完整的新版IDA 7不能显示搜索中文字符串的解决方法https://blog.csdn.net/donglxd/article/details/133768367?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
最新IDA8.3安装后需要做的一些完善工作(包括IDAPython报错、ChatGPT的模块安装、中文字符串的显示,各种问题解决方法合集)https://blog.csdn.net/donglxd/article/details/135243027?spm=1011.2415.3001.10575&sharefrom=mp_manage_link IDA这种软件,一般用新不用旧,但是需要注意,新版的IDA9.1只支持WIN10以上,个人建议是安装在虚拟机中,因为我们有时需要分析一些样本,所以这是必要的防护措施。
关于IDA9.1的安装包,网上有很多,比如B站东方大佬封装的IDA9.1.7的版本,网上还有一些中文汉化版、包含IDA9.1 SDK磁力链的安装包,请大家根据需要选择。
二.下载链接
本文末的链接,里面有mcp服务的安装补丁和一些常用软件打包,请大家按需自取。
三.虚拟机安装部署
在开始安装IDA前,我们需要先部署一个虚拟机,以便在虚拟环境中分析一些样本,而不会影响到宿主机的系统安全,不懂的朋友可以根据我的步骤进行安装,如果有人会这步,可以跳过不看此章节:
IDA9.1最低支持WIN10 X64位的系统,所以我们安装一个WIN10虚拟机即可,虚拟机软件我们使用的是Broadcom(博通公司)的Vmware Workstation Pro 17.6.3,正规下载需要到博通官网下载,具体过程蛮复杂的,需要注册一个外网邮箱的账户,然后才能下载到安装包,我为了大家方便,会在文末上传,序列号的话大家网上搜索下就行了,我在这就不提供了。Vmware Workstation Pro软件安装过程我就不截图了,就是一路next即可,最后运行下软件,帮助菜单栏里输入下序列号就好。
然后就是解决Window 10镜像的问题,可以到著名的Itellyou网站下载镜像,这个网站现在需要先注册一个免费账户,然后选择Windows 10 (business editions),我们可以复制ED2K的链接后下载,我在这提供下,写这篇文章时最新的镜像版本链接:
ed2k://|file|zh-cn_windows_10_business_editions_version_22h2_updated_july_2025_x64_dvd_7a96a427.iso|6802882560|2091DD7C1E716564B671BF1C8693ECD8|/
Itellyou的界面如下:
然后我们可以用迅雷快速下载,我没有用迅雷VIP,普通下载还是蛮快的,如图:
在下载镜像并安装VM软件之后,我们需要安装下WIN10虚拟机系统,如下:
1.点击VM虚拟机上的"创建新的虚拟机",进入下面的界面,选择下面的自定义,点击下一步:
2.选择下面的硬件兼容性,可以按需选择,电脑配置差的或需要移植虚拟机到其他低版本vm软件的,可以选择低版本,点击下一步:
3.选择刚刚下载的win10镜像文件,双击文件后,点击下一步:
4.选择下WIN10版本,我选择了Pro(专业版),这样的话功能比较多,比如有组策略等安全控制;然后下面可以设置下管理员的账户和密码,最下面可以勾选自动登录,这样开机不用输入密码,我喜欢手动登录,所以没选,最后点击下一步:
5.因为刚刚那步最上面没有输入WIN10激活密钥,所以弹出如下图提示,点击是,稍后激活即可:
6. 此步可以修改虚拟机名称和保存路径,大家按需设置,建议保存路径不要设置在宿主机的C盘,最后点击下一步:
7.下面选择虚拟机的引导类型,因为是WIN10,我选的UEFI,如果想安全点,可以勾选安全引导,这和物理机上的原理是一样的,防止不安全的驱动加载,保护内核文件,我没选,然后点击下一步:
8.选择虚拟机CPU的数量和内核数,这个按自己的配置选择,只要能稳定运行WIN10就行,配置高的同学不一定要分配太多,最后点击下一步:
9.配置下虚拟机内存,这个按需设置,我设置的是4G,一般想流畅运行WIN10,可以设置成8-16G,根据你的宿主机内存总数来分配,虚拟机占用的内存会和宿主机叠加在一起,注意两者相加不要超过总物理内存即可,然后点击下一步:
10. 选择虚拟机网络类型,我选的NAT,这样能隔离虚拟机和宿主机之间的网络,比较安全,设置后点击下一步:
11.选择虚拟机的SCSI硬盘控制器类型,我这老电脑没有其他选择,只能选LSI SAS,如果对硬盘的相关知识感兴趣,可以看看刘伟写的《数据恢复技术深度揭秘》,里面有关于修复硬盘的所有知识,之后点击下一步:
12.选择硬盘的类型,如果你是M.2固态可以选NVME,如果是SATA固态或机械盘,可以选SATA,点击下一步:
13.开始创建虚拟磁盘,相当于虚拟机的硬盘,一个分区一个虚拟磁盘,后续可以添加新的盘,如D盘、E盘,现在添加是C盘,我们是新建虚拟机,所以点击"创建新虚拟磁盘" ,如果你有老虚拟机磁盘需要添加进来,可以选择中间的"使用现有虚拟磁盘",虚拟磁盘的文件后缀名是.VMDK,比如WIN10.vmdk,选中后点击下一步:
14.此界面可以选择磁盘大小,是否立即分配大小(不选的话,可以动态分配大小,和EXSI里的精简置备Thin一样,另外如勾选就如Thick,这样就会一下子分配60g空间给虚拟机磁盘,动态分配磁盘大小比较合理,我们不是服务器,不用考虑磁盘不够);下面选择"将虚拟磁盘存储为单个文件",原因界面上已经说了,我们需要磁盘性能,所以选上面。最后点击下一步:
15. 最后选择下刚刚说的磁盘文件vmdk的保存位置,这个文件相当于虚拟机的硬盘,会比较大,请安放在你空余的磁盘上,并留足剩余空间,这步可以给虚拟磁盘起个其他名字,方便自己识别,默认是放在此WIN10虚拟机的文档中,刚刚已经设置过的,最后点击保存,并点击下一步:
16.确认上面的配置无误后,点击下面的完成,如果上面的步骤有问题,你也可以点击此界面的"自定义硬件"重新修改或返回上面的步骤修改:
17. 点击上步后,会根据你的设置创建虚拟磁盘,耐心等待结束就行了,如图:
18.然后虚拟机会自动开始安装,如下面的图片:
19.自动格式化虚拟磁盘,并复制安装文件:
20.上面复制完毕后,重启后继续正式自动安装:
21.底层已安装就绪:
22.自动进入配置安装阶段:
23.最后的验证阶段
24.安装完毕,进入登录界面,输入我们刚刚设置的密码(上面第4步):
25.进入系统后,我们把系统激活并简单配置下WIN10系统,然后关机做一个快照,方便以后回到最初系统,省去每次重装WIN10虚拟机的麻烦:
26. 关机后,点击"虚拟机"菜单-"快照"-"拍摄快照"或"快照管理器"
27.在此界面新建一个快照,可以给快照起个名称或注释,以便以后识别还原点:
28.关机后建立快照是很快的,而且很安全,建立后点击"开启此虚拟机",重新启动WIN10虚拟机:
29.上面点击后会出现如下提示,点击"否",一般是加载软盘错误,安装WIN10后,我们就不需要软盘了,可以点否跳过加载。
至此,虚拟机的安装已经完成。
四.IDA9.1的安装和部署
4.1. Python安装和配置
1.用浏览器打开Python官网下载最新版Python,我的截图可能已不是最新,请忽略,如图:
https://www.python.org/downloads/https://www.python.org/downloads/
2. 我的安装包中"ida安装包"文件夹里有python3.13.5的官方安装包(第4项),大家可以直接安装,请大家注意,我这篇文章写了蛮久的,打包后的文件可能和截图有点不同,但是不影响大家使用,如有问题,请联系我更新。
3.双击安装包后的界面,检查是否选中最下面的"Add python.exe to PATH",然后点击"Customize installation"进入自定义安装选项,如下图:
4.检查是否勾选如下选项:
5. 自定义安装目录,我设置成D盘,注意路径最好不要设置成中文,可能安装不了。
6.如下图这样Python就算安装成功了。
7.为了安装的python能够流畅下载安装库,在cmd中运行如下命令,来设置国内pip源:
:: 清华大学镜像(推荐,稳定快速)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
:: 中国科技大学镜像
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple
:: 阿里云镜像
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
:: 华为云镜像
pip config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple
4.2. IDA的安装
1. 把本文末的IDA91.rar压缩包(我根据东方大佬原始版本打包)复制到虚拟机中:
2.把IDA91.rar压缩包解压后,得到如图文件,里面的"IDA Professional 9.1.zip"和"Python3.13.5.zip"请解压到虚拟机目录,我是在刚刚安装的WIN10虚拟机,新建了一个D盘(虚拟磁盘),并把上面的两个压缩包解压放入:
3.解压后,进入D盘的IDA Professional 9.1目录,找到InitIDA.exe运行下,它会自动初始化IDA9.1。
4.InitIDA.exe运行的界面如下,它应该是一个封装过的python程序,但是好像没有python环境也能运行,在选择处输出y,大小写都行,然后按回车,等待它执行完毕。
5.然后在刚刚D:\IDA Professional 9.1的地址栏中输入cmd,打开本地目录下的命令提示符:
6.这步我们需要设置已安装的python环境,大家可能还记得刚刚解压的"Python3.13.5.zip",这是我配置好的环境,为了能给大家授之于渔,和之后python更新的问题,我下面介绍的是从python安装和配置ida的各种插件问题的教程,当然你也可以使用我配置好的"Python3.13.5.zip"压缩包中的python3.13.5,就是使用下面的idapyswitch配置就行。
我们在上步打开的cmd命令提示符窗口中输入idapyswitch.exe,如下图:
7. 可以看到如下例子,其中找到了两个python,版本分别是3.11.9(东方大佬IDA安装包中自带Python版本)和3.13.5(我之前安装的最新版Python),输入对应需要就行,这里我输入1,然后回车。
如图,输入1的情况,接着回车:
8.如下图,IDA调用的版本已设置成功,Python版本号为:3.13.5
9.这样IDA9.1的安装就基本完成了。
4.3. IDA的详细配置
4.3.1. 安装MCP插件
1.我的IDA91.rar解压后文件夹内有一个MCP插件的文件夹,请打开这个文件夹:
2.进入文件夹后,可以看到如下的3个项目,其中ida-pro-mcp-main.zip是原始的mcp插件(github的网址:https://github.com/mrexodia/ida-pro-mcp),"自定义函数补丁"文件夹的内容下面已说明,最后的"自动配置IDA_MCP服务.bat"每次开启IDA的MCP插件都运行下,这个批处理可以把虚拟机的mcp端口,自动端口映射到宿主机上的vscode里的cline远程调用,当然如果你会变通,也可以把一台电脑安装虚拟机,里面部署IDA和MCP服务器,然后把虚拟机的端口映射到宿主机上,设置下防火墙,用局域网下的另一台电脑来访问这个映射端口,以便远程调用IDA的MCP服务,安装了虚拟机的电脑相当于一个MCP服务器,局域网的另一台安装vscode的电脑相当于客户端,详细的配置批处理和虚拟机端口映射的方法,请看后文。
3.上面的"自定义函数补丁"文件夹内容如下图,"mcp-plugin.py"这个文件里编写了所有mcp服务的函数,cline客户端可以通过mcp服务器,来调用这些mcp函数,以便查询分析各种ida数据,比如查询函数名称、函数调用关系等等,而我在试用mcp函数时,发现在新版的cline中,调用批量查询函数名的功能不能使用,提示没有此函数(list_functions_filter),所以我根据原始的"mcp-plugin.py"文件添加了一个新的list_functions_filter函数,并根据原始的pattern_filter函数,改造并新建了,能支持多重过滤词的pattern_filter_for_funtion函数,以便list_functions_filter函数调用。
"自定义函数补丁"文件夹内容,如下图:
如下的添加的新函数pattern_filter_for_funtion:
4.试用原始的MCP函数时,报错list_functions_filter函数缺失,如下图:
5.先把原版的MCP安装包解压"ida-pro-mcp-main.zip",这里可以用Winrar或者我提供的7-zip。
6.然后复制我的补丁包中的"mcp-plugin.py"到原版的"D:\MCP插件\ida-pro-mcp-main\ida-pro-mcp-main\src"目录下,可以备份下原始的"mcp-plugin.py",比如我把原版名称"mcp-plugin.py"改成"mcp-plugin.py_bak",如下图:
7.使用之前地址栏打开cmd的方法,打开如下的MCP安装包目录,并运行"pip install .",如果你设置过上面的pip默认源,安装会快一点。
8.如果你运行上面的命令,提示如下错误,请重启你的电脑,重新进入安装目录,并运行"pip install .",如图:
9. 如果pip安装没问题的话,就会如下图这样,安装成功的信息:
10.根据MCP的github的官网安装说明,在pip安装后,还需手动运行下"ida-pro-mcp --install"的MCP服务器配置命令,但是我在尝试运行时,提示错误"No module named 'NotRequired'"这样的错误,我当时没有截图,报错位置是"D:\Python3.13.5\Lib\site-packages\ida_pro_mcp\server_generated.py",具体信息如下:
D:\安装包\MCP插件\ida-pro-mcp-main>ida-pro-mcp --install
Traceback (most recent call last):File "<frozen runpy>", line 198, in _run_module_as_mainFile "<frozen runpy>", line 88, in _run_codeFile "D:\Python3.13.5\Scripts\ida-pro-mcp.exe\__main__.py", line 4, in <module>from ida_pro_mcp.server import mainFile "D:\Python3.13.5\Lib\site-packages\ida_pro_mcp\server.py", line 180, in <module>exec(compile(code, GENERATED_PY, "exec"))~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "D:\Python3.13.5\Lib\site-packages\ida_pro_mcp\server_generated.py", line 48, in <module>class DisassemblyLine(TypedDict):...<4 lines>...comments: NotRequired[list[str]]File "D:\Python3.13.5\Lib\site-packages\ida_pro_mcp\server_generated.py", line 49, in DisassemblyLinesegment: NotRequired[str]^^^^^^^^^^^
NameError: name 'NotRequired' is not defined
可以看到上面的"server_generated.py"报错信息,但是如果你只修改这个文件,在文件头添加from typing import NotRequired,缺还是一样的报错,显然这个"server_generated.py"也是动态生成的,要快速定位到这个修改代码,我想了一个办法,如下:
可以看到,我把"server_generated.py"添加了只读属性,这样其他代码如果对"server_generated.py"进行写入操作,那么就会激活Python的写入权限被拒绝的报错信息,如下:
找到这个"server.py"的第178行,分析附近代码,发现如下:
可以看到如上位置的code字符串变量,在第166行的位置,这里的代码就是"server_generated.py" 的头部未申明NotRequired的地方,按照我图中选中的位置,添加NotRequired库即可,解决MCP服务器的配置问题。
如下是成功的界面:
上面高亮标注的就是mcp服务器的配置信息,可以在虚拟机本地安装VScode和Cline,把上面的高亮内容复制到MCP服务的json配置文件中,就可以连接MCP服务器。
但是,因为我们有时需要分析一些样本,所以在虚拟机运行Cline显然有点不太安全,因为Cline绑定了deepseek等api key,如果贸然把这个key放入虚拟机的样本环境,显然是不安全的。所以我们还需想其他方法。
11. 如上的"server.py"其实是一个可以输入参数的配置mcp服务脚本,仔细阅读github的说明和源代码后,发现有两个参数,一个是--ida-rpc参数,这个参数会建立一个本地MCP服务端,比如"--ida-rpc http://127.0.0.1:13337"这样,另一个参数是--transport,调用方法:"--transport http://0.0.0.0:8989",这个参数的作用是开启一个广播mcp的本地端口,而我们需要使用的就是这个参数,我把这个参数编写成了一个批处理程序,每次需要宿主机调用虚拟机的mcp服务器时,运行就行,同时这个批处理运行后,会有一个cmd窗口一直开着,相当于一个web服务器,宿主机发送的所有外部的mcp请求,都会显示在这个cmd窗口中。最后记得ida中的mcp插件也启动一下。
具体见下图(图中的--transport参数端口号为:"8686",可能和下文中描述有差异,请忽略)
12.现在MCP的服务端(虚拟机)已搭建好了,我们需要把"--transport http://0.0.0.0:8989"的"8989"端口提供给宿主机使用,所以我们需要使用vm虚拟机的端口映射功能,这个功能简单的说,就是把虚拟机的8989端口映射成宿主机的本地端口(宿主机端口号可以任意),这样我们使用虚拟机的"8989"端口就像使用宿主机的本地端口一样,这里为了方便,我把宿主机的本地端口也设置成"8989",这样在宿主机上的cline中,我们只要设置本地的"http://127.0.0.1:8989/sse"就行,至于为什么要加sse,github有说明。
端口映射的配置方法如下:
a.先用cmd查询下本机ip地址(图中IP地址:192.168.192.128),然后点击vm虚拟机的"编辑"菜单-"虚拟网络编辑器"
b.点击"更改设置",并授予管理员权限。
c.VM虚拟机软件被管理员授权后,自动开放VMnet8的设置,我们可以设置NET网络模式了。下一步点击"NAT设置"(也就是我们设置端口映射的地方)
d. 下图的窗口设置宿主机的端口、虚拟机IP地址、虚拟机的端口,最后点击确定,退出设置。
13.之前第11步提到的MCP自动配置批处理,路径和内容如下,下面两图中的"transport"参数的端口后可以有些不同(请大家忽略),具体端口号按自己喜好设置成一样就行(注意不要和系统的端口号冲突就行):
通过上面的步骤,MCP服务就算搭建起来了,接下来,我们来解决IDA其他插件和中文字符串显示的各种小问题,不想看的朋友可以跳过下一节。
4.3.2. IDA插件报错问题
我的桌面当前如上几个图标和文件,我们先启动IDA Pro 9.1,然后看看我们之前安装的IDA的情况,点击"HELP"菜单-"About Program"如下:
可以看到安装的很好,但是我们也看到了,下面的Output窗口有报错信息,我们展开看看,如下图:
我们可以看到上面的报错信息都是缺少相应的库,因为我们的Python是新安装的,而不是使用的大佬的老版本Python,所以会出现这样的情况,所以我们只要按部就班的用pip安装下就行。
pip install yara keystone openai
运行界面如下:
会出现报错信息,如下:
可以看到出现error: Mirocosft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools
Error:Failed to build installable wheels for some pyproject.toml based projects(scrypt) 等多个错误,我们先到https://visualstudio.microsoft.com/visual-cpp-build-tools安装下C++编译工具,也就是VisualStudio,当前版本是VisualStudio2022,如下图页面:
我在"IDA安装包"文件夹中提供了"vs_BuildTools.exe",也就是上图的第6项,双击运行即可。
如下图所示,我们只需勾选c++的编译模块即可。勾选后,点击右下角的安装即可。
如下图的安装成功的界面:
重新运行刚刚的"pip install yara keystone openai"命令,继续安装,报错如下:
如上图的报错信息,提示scrypt-1.2.1/libcperciva/crypto/crypto_aes.c(6): fatal error C1083: 无法打开包括文件: "openssl/aes.h" : No such file or directory错误,显然缺少了openssl的链接库,到如下地址下载:https://slproweb.com/products/Win32OpenSSL.html
页面截图如下:
这个安装包我也提供给大家,在"IDA安装包"中的第七项"Win64OpenSSL-3_5_1.exe",运行安装时需要注意一点,安装目录需要和VS编译器的链接库路径相同才行,看如下高亮选中部分截图:
结束安装时,注意取消这里的勾(都是捐赠的选项)
安装结束后继续运行上面的pip命令安装库,继续报错如下:
如上,提示LINK:fatal error LNK1181: 无法打开输入文件"libcrypto_static.lib",用window搜索功能搜索到"libcrypto_static.lib"并复制到如下位置即可:
这样上面的库都安装成功了,重新打开IDA9.1主程序,发现之前的报错提示没有了,但是有一些新的报错提示,使用PIP命令继续安装它们:
pip install yara-python keystone-engine anytree
再次重新打开IDA9.1主程序,提示如下:
提示error:Could not find module 'D:\Python3.13.5\DLLs\libyara.dll' (or noe of its Try using the full path with constructor syntax.)
我搜索了下这个dll文件,发现能在上面左边的路径找到,把它复制到"D:\Python3.13.5\DLLs"路径下还是报同样的错误,应该是缺少这个dll的其他依赖文件,使用Dependencies工具找到缺失的依赖,这个工具的链接如下:
https://github.com/lucasg/Dependencies/releases/
页面截图如下:
这个工具我在"IDA安装包"也提供了,在第3项,打开这个压缩包后,解压一下,然后点击它的gui程序,用它打开刚刚的"libyara.dll",如下图:
如上图所示,缺少MSVCR100.DLL,这是Visual Studio 2010的C++ 10.0运行库中的文件,因为我们是新装的虚拟机没有这些运行库很正常,到如下网址下载即可:
https://www.microsoft.com/en-us/download/details.aspx?id=14632
下载页面如下:
这个安装包我也提供了,在"IDA安装包"的第5项,安装很简单,不再截图,运行后重启IDA,显示成功,左边图中的ida输出没有报错信息,右边的Dependencies查询"libyara.dll"也没有错误,如下图:
至此,IDA插件报错和部署的问题都解决了,接下来,就是我特别增加的IDA9.1中文字符串显示的问题。
4.3.3. IDA9.1中文字符串显示
IDA9.1的中文显示问题,和之前的版本有一些不同,之前的IDA 7-8版本,我们是修改了cfg配置文件来修改全局的字符串,IDA9.1要想显示出中文字符,设置上有不同之处,我想在下面以我的一个样本文件(BusiNess.exe,在"IDA安装包"中的第2项)做一个例子,提供大家一个思路和方法。
1.首先,我们加载下这个样本文件(BusiNess.exe),并等待IDA分析结束,如下图:
2. 打开"Strings"菜单("View"菜单-"Open subviews"-"Strings")或按快捷键Shift+F12打开
3. 打开Strings字符串窗口后,搜索下"\X",可以发现有很多应该是中文的字符串没有显示出来,另外说一句,这个样本是一个仓储软件的主程序,所以有很多SQL的语句,供教程使用,大家使用后记得删除掉。忽略这些小问题,只看我的教程,我们随意点击下面搜索到的一个字符串。
4.我们点击"Options"菜单-"String literals"
5.可以看到CODE:0045B77C有一个字符串,后半部分没有显示出中文。我们点击String literals窗口中的Currently后的(no string literal),显示"no string literal",说明这个分析文件,我们没有设置过全局的字符串编码格式。
6.点击Currently后的(no string literal)按钮,会弹出下面的Encodings窗口,可以看到没有我们需要的GBK(CP936),所以我们可以在这个窗口的空白处点击右键,然后点击弹出Insert菜单。
7. 然后在编码格式中输入"CP936",如果我们不知道输入什么编码格式,我们可以把ida里的字符串复制给Deekdeep、ChatGPT这类AI分析编码格式。
8. 上面的窗口输入"CP936"后,点击OK,会发现如下的列表,里面已添加了"CP936"编码,然后点击下面的OK确认。
9.可以看到,Currently设置已经变成"CP936",如果我们需要把"CP936"设置成全局编码格式,我们可以点击Manage defaults设置。
10.点击Manage defaults后,会弹出IDA Options-Strings字符串设置,然后把图中的Default 8-bit中的"UTF-8"设置成"CP936"。
11.点击上图的UTF-8后,会弹出如下的编码界面,选择"CP936",然后点击OK。
12.点击上面的OK后,确认下是否设置成CP936,最后点击OK。
13. 最后返回到原来的String literal窗口,点击确认OK。
14.设置后,可以看到之前的SQL语句中的中文已经显示正常了。
15.经过上面的操作后,如果还有个别短字符串没有识别出来,请按照我之前IDA8.1帖子的方法,设置下最小识别字符串长度( Minimal string length),我们一般设置成2就可以了,最后点击OK确定。
16.有时候会碰到如下的情况,在上面的所有字符串设置后,有些地方还是没有识别处字符串,可以存在IDA识别错误,把字符串识别成了代码,如下:
可以看下图,可以看到下面的字符串没有识别出来,全选上面的内容,并按A键识别出来有部分乱码,
但是我们使用x64dbg动态调试器调试时,却是正常的,我们注意到x64dbg的地址在00588C94这里,比IDA的00588CAD更前面,而IDA的00588C94位置是一个函数,所以IDA一定是识别出错了。
可以看到如下的IDA的00588C94位置被误认成一个函数,点击查看蓝色的DATA XREF调用处,也发现这是一个字符串调用,而不是一个函数的call调用,而这些误认的函数,就是导致乱码不能识别字符串的原因。
所以,我们全选588C94-588CD4的所有数据,按U键取消所有识别格式,然后按A键把这些数据识别成字符串。
可以看到下图中,识别出了正确的字符串和x64dbg是一样的
然后我们来探究下产生部分乱码的原因,其实是中文字符串是单字占双字节,而我们一开始时,选中的正好是一个字的一半字节,所以就变成了乱码,因此,我们可以尝试少选一个字节试试,如下:
可以看到少选一个字节后,显示出了正常的字符串,而不是乱码。
至此,IDA9.1中文字符串显示的问题,已经说明了差不多了,具体的官方说明,我把链接放给大家自己查阅,有需要的可以看一下,里面的内容和我的教程差不多。
https://hex-rays.com/blog/igor-tip-of-the-week-13-string-literals-and-custom-encodingshttps://hex-rays.com/blog/igor-tip-of-the-week-13-string-literals-and-custom-encodings
4.3.4. IDA的MCP服务用法
1.启动虚拟机的MCP服务,按如下图点击Edit-Plugins-MCP或按Ctrl+Alt+M快捷键。
2. 运行如下的批处理脚本,注意怎么部署和虚拟机端口映射,我已经在4.3.1章节中说明过,这里就不再介绍了。
3.第一次启动,可能window防火墙会提示,允许访问即可。如批处理窗口中,没有宿主机的访问信息,建议重置防火墙(netsh advfirewall reset),重新允许上面的mcp服务和批处理,并把下面的允许访问的公用网络勾选上。
如下的重置防火墙配置:
如下图,同时勾选专用网络和公共网络,以便端口映射。
4.然后安装下Vscode编译器和Cline插件,这些都很简单,因为篇幅太长,这里就不做介绍了,不懂的朋友可以搜索下教程。
5.如下是安装好的Cline插件和需要设置的deepseek api key(因为我们需要AI来帮助我们通过MCP服务分析程序,所以需要一个API KEY,至于用什么AI,大家可以自行选择)
6.deepseek api可以登录如下的deepseek主页(https://www.deepseek.com/),点击右上方的"API开放平台"
7.如下图,点击创建API KEY,并复制创建好的API KEY。
8.点击这里添加MCP配置,以后如果要刷新MCP状态,也可以点这里。
9.如下图这样,配置下MCP服务器。
10. 如果不能访问MCP服务器,请用浏览器访问下MCP服务网址,看看虚拟机中的批处理是否有返回相应出现。
11.我们可以按照如下图的方法,检查和更新MCP服务的状态。
12.首次连接,我们在IDA9.1中先打开需调试样本,然后如上面配置好MCP服务网址后,切换到Act模式,并询问deepseek,让它帮我们检查下当前的mcp服务连接状态,以便下一步操作。
13.请看如下图的Cline使用说明,和Cline调用MCP服务函数时,需要授权的窗口提示,我们点击蓝色的Approve按键授权下,如果不想每次点击,可以点击蓝色按钮上面的Auto-approve把权限赋予Cline。
14.因为我们使用的样本就是之前截图中的仓储软件的,所以我们尝试下,让deepseek分析所有函数中是否有和进货单窗口有关的右键菜单函数,稍后我们可以用x64dbg测试下是否正确。因为我们已经知道这个主程序是dephi编写的,所以直接告诉deepseek,以便它能更好的分析函数,当然你也可以让deepseek分析下程序是什么语言编写的,它一定可以给你答案。
15.可以看到下图,deepseek已经根据我们的要求添加了过滤词来找到需要的函数,并且这个函数是我之前修改添加的新MCP函数。
16.可以看到如下图,cline使用我们的函数筛选出了右键菜单有关的函数
17.deepseek返回的结论里,也提出了这5个相关函数的结论
18.我们用IDA找到函数的地址,分析下它们的汇编代码。
19.根据IDA和X64dbg的联合调试发现,上面这个函数_TFrm_Jinh_Jinhuo_PopupMenu_Dbgrid_mxPopup(地址:0x58a8f4),就是右键菜单的地址,可以看到下面的0x58a8f4处,我们右击时中断触发了。
至此,我的这篇IDA9.1安装和使用教程已经讲完了,内容有点多,请大家根据自己的需要学习,如有什么疑问或不完善之处,请在评论区或私信给我,谢谢大家观看,再见!
IDA9.1工具压缩包链接如下:
通过网盘分享的文件:IDA9.1.rar
链接: https://pan.baidu.com/s/1Ts2cn8V99AoH983AFzX9Gw?pwd=8888 提取码: 8888