如何使用BinaryNinja-Ollama提取开源AI模型并在本地运行
关于BinaryNinja-Ollama
BinaryNinja-Ollama是一款针对开源AI模型的本地化工具,该工具可以帮助广大研究人员提取开源的AI模型,并将其运行在本地设备上。
BinaryNinja-Ollama支持与您自己的本地托管的 ollama 服务器集成,使用 AI 重命名函数和变量。有些模型需要大量计算能力,而其他模型则可以在您的个人笔记本电脑上运行。
工具特性
1、它是免费的并且易于本地设置;
2、它可以在没有互联网的任何地方运行;
3、您的数据仅保存在您和您的 ollama 服务器之间,不包含第三方中间件;
工具要求
ollama
networkx>=3.2.1
工具安装
由于该工具基于Python 3.10开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3.10+环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/ahaggard2013/binaryninja-ollama.git
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cd binaryninja-ollama pip install -r requirements.txt
运行下列命令安装ollama:
pip3 install ollama
如果您将其作为独立插件安装,则可以将其放置(或符号链接)在 Binary Ninja 的插件路径中。
工具使用
重命名所有函数变量
重命名所有函数变量选项将解析函数内的所有变量并尝试根据以下提示重命名它们:
prompt = ( f"In one word, what should the variable '{variable}' be named in the below Function? " f"The name must meet the following criteria: all lowercase letters, usable in Python code" )
重命名所有函数
重命名所有函数选项将循环遍历二进制视图中的所有函数(从最小到最大),并根据提示重命名它们:
prompt = ( f"Given the following HLIL decompiled code snippet, provide a Python-style function name that describes what the code is doing. " f"The name must meet the following criteria: all lowercase letters, usable in Python code, with underscores between words. " f"Only return the function name and no other explanation or text data included." )
重命名目标函数
重命名目标函数使用与重命名所有函数相同的提示,但在触发插件时将其限制为所选函数。
重命名目标函数变量
重命名目标变量使用与重命名所有变量相同的提示,但在触发插件时限制其所选的功能。
工具设置
在设置窗口中,我们可以设置ollama使用的IP、端口和模型:
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
BinaryNinja-Ollama:【GitHub传送门】
参考资料
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录