deepseek_ai_ida_plugin開源插件,用于使用 DeepSeekAI 將函數反編譯并重命名為人類可讀的視圖。該插件僅在 ida9 上進行了測試

一、軟件介紹

文末提供程序和源碼下載

? ? ? deepseek_ai_ida_plugin開源插件,用于使用 DeepSeekAI 將函數反編譯并重命名為人類可讀的視圖。該插件僅在 ida9 上進行了測試。FunctionRenamerDeepseekAI.cpp 此文件包含 Hex-Rays 反編譯器的主要插件實現。它反編譯當前函數,使用 DeepSeekAI 重命名變量和函數,并輸出結果。

二、功能

  • init()?:初始化插件并檢查 Hex-Rays 反編譯器的可用性。
  • plugin_ctx_t::run(size_t)?:啟動插件時執行的主函數。它反編譯當前函數,將反編譯后的代碼發送給 DeepSeekAI 進行重命名,并應用重命名后的元素。
  • save_current_function_name(func_t* pfn)?:保存當前函數的名稱。
  • save_variables(func_t* pfn)?:保存在當前函數中找到的變量。
  • save_functions(func_t* pfn)?:保存在當前函數中找到的函數。
  • get_decompiled_code(func_t* pfn, std::string& decompiled_code)?:檢索當前函數的反編譯代碼。
  • rename_current_function(func_t* pfn, const std::string& new_name)?:重命名當前函數。
  • rename_all_lvars_and_globalvars(func_t* pfn)?:重命名所有局部變量和全局變量。
  • rename_all_functions(func_t* pfn)?:重命名所有函數。
  • mark_cfunc_dirty(ea_t start_ea)?:將當前函數標記為 dirty,表示變量已重命名。更新窗口并在重命名后顯示新名稱

DeepSeekAI.hpp

? ? ? ?此文件實現了一個通過 Akash Network API 與 DeepSeek AI 模型交互的類。主要任務是分析反編譯的代碼,自動重命名元素(函數、變量、參數),并返回結構化的 JSON。

功能:
  • SendRequestToDeepseek(const std::string& decompiledCode):
    將反編譯代碼提交到 DeepSeek 的主要方法。處理響應:刪除多余的字符,提取 和?|END_JSON|?之間的?|START_JSON|?JSON,替換引號。
  • generateBody(const std::string& decompiledCode):
    為 AI 形成請求正文:添加系統提示符,將代碼括在 /?|END_CODE|?中?|START_CODE|?,將雙引號替換為單引號,并清理字符串。
  • getSession():
    接收會話 cookie,通過 GET 請求向 Akash Network API 進行身份驗證。超時:15 秒。
  • postToChat(std::string body, cpr::Cookies cookies):
    將帶有正文和 cookie 的 POST 請求發送到 Akash 聊天 API。超時:10 分鐘。處理 HTTP 錯誤(例如,≠ 200 狀態)。

?調用示例:

DeepSeekAI ai;  
std::string jsonResult = ai.SendRequestToDeepseek(decompiled_code);  

函數工具HexRay.hpp

此文件提供了在 IDA 中使用 Hex-Rays 反編譯器的實用程序。它收集有關函數、變量和參數的信息,并根據外部數據(例如,從 DeepSeekAI 獲取的 JSON)實現它們的重命名。


?功能:
  • get_decompiled_code(func_t* pfn, std::string& out_code):
    將函數反編譯為偽代碼并將其保存到字符串中?out_code?。處理反編譯錯誤(例如,通過?hexrays_failure_t?)。
  • save_current_function_name(func_t* pfn):
    將當前函數的名稱保存到全局字典?current_function?中,以便以后重命名。
  • save_variables(func_t* pfn):
    收集函數中使用的所有局部變量(包括參數)和全局變量。將它們存儲在 中。?var_names
  • save_functions(func_t* pfn):
    查找當前函數中的所有函數調用(例如,通過 statements?call?),并將其名稱存儲在 中。?function_names
  • rename_current_function(func_t* pfn, const std::string& new_name):
    使用新名稱重命名當前函數 (通過?set_name?)。
  • rename_all_lvars_and_globalvars(func_t* pfn):
    重命名 中的所有局部變量和全局變量?var_names?。對于全局用途?set_name?,對于本地 —?rename_lvar?.
  • rename_all_functions(func_t* pfn):
    重命名?function_names?在當前上下文中找到的所有函數。
特征:
  • 與 Hex-Rays API 集成:

    使用?decompile?,?get_lvars?,?func_item_iterator_t?分析函數和變量。
  • 使用全局變量:

    通過指令解析定義全局變量(例如,?o_mem?in?insn_t?中)。
  • ?重 命名:

    使用 IDA Pro 方法 (?set_name?,?rename_lvar?) 修改名稱。
使用示例:
func_t* pfn = get_current_function();
std::string decompiled_code;
get_decompiled_code(pfn, decompiled_code);// После получения JSON от DeepSeekAI:
rename_current_function(pfn, "newMain");
rename_all_lvars_and_globalvars(pfn);
rename_all_functions(pfn);

三、插件軟件下載

迅雷網盤

本文信息來源于GitHub作者地址
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80977.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

信息系統項目管理工程師備考計算類真題講解十一

一、運籌學 1&#xff09;線性規劃 分析&#xff1a;設為獲得最大利潤&#xff0c;S應生產X件&#xff0c;K生產Y件 10X20Y<120 8X8Y<80 求MAX(12X16Y) 計算下面的方程式&#xff1a; 10X20Y120 8X8Y80 X8 2)交通運輸問題&#xff1a; 分析&#xff1a; 此題采…

深入學習解讀:《數據安全技術 數據分類分級規則》【附全文閱讀】

該文詳細闡述了數據安全技術的數據分類分級規則,內容分為基本原則、數據分類規則、數據分級規則及數據分類分級流程四大部分。 基本原則強調科學實用、動態更新、就高從嚴及53原則(雖表述不清,但可理解為多重原則的結合),同時要求邊界清晰、點面結合。 數據分類規…

連接私有數據與大語言模型的強大框架----LlamaIndex詳細介紹與案例應用

什么是LlamaIndex&#xff1f; LlamaIndex&#xff08;原GPT Index&#xff09;是一個先進的數據框架&#xff0c;用于將自定義數據源與大語言模型&#xff08;LLM&#xff09;連接起來。它提供了高效的工具來索引、檢索和將私有或特定領域的數據集成到LLM應用中&#xff0c;解…

GBDT算法原理及Python實現

一、概述 GBDT&#xff08;Gradient Boosting Decision Tree&#xff0c;梯度提升決策樹&#xff09;是集成學習中提升&#xff08;Boosting&#xff09;方法的典型代表。它以決策樹&#xff08;通常是 CART 樹&#xff0c;即分類回歸樹&#xff09;作為弱學習器&#xff0c;通…

WordPress開心導航站_一站式網址_資源與資訊垂直行業主題模板

一款集網址、資源與資訊于一體的導航類主題&#xff0c;專為追求高效、便捷用戶體驗的垂直行業網站而設計無論您是構建行業資訊門戶、資源聚合平臺還是個人興趣導航站&#xff0c;這款開心版導航主題都能成為您理想的選擇。 核心特色: 一體化解決方案:整合了網址導航、資源下載…

馬井堂-區塊鏈技術:架構創新、產業變革與治理挑戰(馬井堂)

區塊鏈技術&#xff1a;架構創新、產業變革與治理挑戰 摘要 區塊鏈技術作為分布式賬本技術的革命性突破&#xff0c;正在重構數字時代的信任機制。本文系統梳理區塊鏈技術的核心技術架構&#xff0c;分析其在金融、供應鏈、政務等領域的實踐應用&#xff0c;探討共識算法優化、…

從像素到駕駛決策:Python與OpenCV賦能自動駕駛圖像識別

從像素到駕駛決策:Python與OpenCV賦能自動駕駛圖像識別 引言:圖像識別的力量驅動自動駕駛 自動駕駛技術正以令人驚嘆的速度改變交通方式,而其中最核心的技術之一便是圖像識別。作為車輛的“視覺系統”,圖像識別可以實時獲取道路信息,識別交通標志、車輛、行人等關鍵目標…

Spring計時器StopWatch 統計各個方法執行時間和占比

Spring計時器StopWatch 用法代碼 返回結果是毫秒 一毫秒等于千分之一秒&#xff08;0.001秒&#xff09;。因此&#xff0c;如果你有一個以毫秒為單位的時間值&#xff0c;你可以通過將這個值除以1000來將其轉換為秒。例如&#xff0c;500毫秒等于0.5秒。 import org.springf…

2.2.2goweb內置的 HTTP 處理程序2

http.StripPrefix http.StripPrefix 是 Go 語言 net/http 包中的一個函數&#xff0c;它的主要作用是創建一個新的 HTTP 處理程序。這個新處理程序會在處理請求之前&#xff0c;從請求的 URL 路徑中移除指定的前綴&#xff0c;然后將處理工作委托給另一個提供的處理程序。 使…

【Fifty Project - D20】

今日完成記錄 TimePlan完成情況7&#xff1a;30 - 11&#xff1a;30收拾行李閃現廣州 & 《挪威的森林》√10&#xff1a;00 - 11&#xff1a;00Leetcode√16&#xff1a;00 - 17&#xff1a;00健身√ Leetcode 每日一題 每日一題來到了滑動窗口系列&#xff0c;今天是越…

【圖片識別改名】批量讀取圖片區域文字識別后批量改名,基于Python和騰訊云的實現方案

項目場景 ??辦公文檔管理??&#xff1a;將掃描的發票、合同等文檔按編號、日期自動重命名。例如&#xff0c;識別“編號:2023001 日期:20230403”生成“2023001_20230403.jpg”。??產品圖片整理??&#xff1a;電商產品圖片按產品編號、名稱自動命名。例如&#xff0c;…

生物化學筆記:神經生物學概論04 視覺通路簡介視網膜視網膜神經細胞大小神經節細胞(視錯覺)

視覺通路簡介 神經節細胞的胞體構成一明確的解剖層次&#xff0c;其外鄰神經纖維層&#xff0c;內接內叢狀層&#xff0c;該層在鼻側厚約10&#xff5e;20μm&#xff0c;最厚在黃斑區約60&#xff5e;80μm。 全部細胞數約為120萬個(1000000左右)。 每個細胞有一軸突&#xff…

「Mac暢玩AIGC與多模態08」開發篇04 - 基于 OpenAPI Schema 開發專用 Agent 插件

一、概述 本篇介紹如何在 macOS 環境下,通過編寫 OpenAPI Schema,開發自定義的專用插件,讓智能體可以調用外部 API,擴展功能至任意在線服務。實踐內容基于 Dify 平臺,適配 macOS 開發環境。 二、環境準備 1. 確認本地開發環境 macOS 系統Dify 平臺已完成部署并可訪問本…

【計算機視覺】深度解析MediaPipe:谷歌跨平臺多媒體機器學習框架實戰指南

深度解析MediaPipe&#xff1a;谷歌跨平臺多媒體機器學習框架實戰指南 技術架構與設計哲學核心設計理念系統架構概覽 核心功能與預構建解決方案1. 人臉檢測2. 手勢識別3. 姿勢估計4. 物體檢測與跟蹤 實戰部署指南環境配置基礎環境準備獲取源碼 構建第一個示例&#xff08;手部追…

NVIDIA高級輔助駕駛領域的創新實踐與云計算教育啟示

AI與高級輔助駕駛的時代浪潮 人工智能正在重塑現代交通的面貌&#xff0c;而高級輔助駕駛技術無疑是這場變革中最具顛覆性的力量之一。作為全球AI計算的領軍企業&#xff0c;NVIDIA憑借其全棧式技術生態和創新實踐&#xff0c;為高級輔助駕駛的產業化落地樹立了標桿。從芯片到…

頭歌實訓之存儲過程、函數與觸發器

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 種一棵樹最好是十年前&#xff0c;其次是現在&#xff01; &#x1f680; 今天來學習C語言的相關知識。 &#x1f44d; 如果覺得這篇文章有幫助&#xff0c;歡迎您一鍵三連&#xff0c;分享給更…

醫學圖像處理軟件中幾種MPR

1&#xff1a;設備廠商的MPR 2&#xff1a;后處理的MPR 3&#xff1a;閱片PACS的MPR 4&#xff1a;手術導航 手術規劃的MPR 設備廠商的MPR需求更多是掃描線、需要3DMPR &#xff0c;三條定位線的任意角度旋轉。 后處理的MPR&#xff0c;需求更多的是算法以及UI工具的研發&a…

java 類的實例化過程,其中的相關順序 包括有繼承的子類等復雜情況,靜態成員變量的初始化順序,這其中jvm在干什么

Java類的實例化過程及初始化順序 Java類的實例化過程涉及多個步驟&#xff0c;特別是在存在繼承關系和靜態成員的情況下。下面我將詳細解釋整個過程&#xff0c;包括JVM在其中的角色。 1. 類加載階段&#xff08;JVM的工作&#xff09; 在實例化一個類之前&#xff0c;JVM首…

Sce2DriveX: 用于場景-到-駕駛學習的通用 MLLM 框架——論文閱讀

《Sce2DriveX: A Generalized MLLM Framework for Scene-to-Drive Learning》2025年2月發表&#xff0c;來自中科院軟件所和中科院大學的論文。 端到端自動駕駛直接將原始傳感器輸入映射到低級車輛控制&#xff0c;是Embodied AI的重要組成部分。盡管在將多模態大語言模型&…

【題解-Acwing】870. 約數個數

題目:870. 約數個數 題目描述 給定 n 個正整數 ai,請你輸出這些數的乘積的約數個數,答案對 109+7 取模。 輸入 第一行包含整數 n。 接下來 n 行,每行包含一個整數 ai。 輸出 輸出一個整數,表示所給正整數的乘積的約數個數,答案需對 109+7 取模。 數據范圍 1 ≤ …