MCPcopy Create free account

hub / github.com/P4nda0s/IDA-NO-MCP / functions

Functions81 in github.com/P4nda0s/IDA-NO-MCP

↓ 12 callersFunctionensure_dir
确保目录存在
INP.py:77
↓ 11 callersFunctionenable_undo
启用撤销功能 - IDA 9.x 已移除此 API,保留为空操作以兼容调用点
INP.py:96
↓ 7 callersFunctionclear_undo_buffer
清理缓存,释放内存(IDA 9.x 已移除 undo API,仅做 gc)
INP.py:83
↓ 4 callersMethod_flush_all_pending
等待所有挂起 future 完成并收集结果。
INP.py:876
↓ 4 callersFunction_ptr_export_add_record
去重后加入一条记录
INP.py:1441
↓ 4 callersFunction_ptr_export_is_valid_target
判断目标地址是否落在有效段内
INP.py:1314
↓ 4 callersFunctionclear_processing
清除处理标记
INP.py:291
↓ 4 callersFunctionsave_progress
保存当前进度到文件
INP.py:227
↓ 3 callersMethod_finish
等待 I/O 完成,写日志,显示完成对话框。在主线程中调用,完全安全。
INP.py:919
↓ 3 callersMethod_should_yield
检查当前 tick 是否已超出时间预算,需要让出主线程。
INP.py:1750
↓ 3 callersFunctionget_default_export_dir
默认导出目录:`原文件名.扩展名_export_for_ai`。
INP.py:62
↓ 3 callersFunctionget_function_output_relative_path
获取函数导出文件的相对路径
INP.py:159
↓ 2 callersFunction_add_to_blacklist
将函数添加到反编译黑名单
INP.py:346
↓ 2 callersMethod_collect_done_futures
收集已完成的写入 future(非阻塞)。
INP.py:865
↓ 2 callersFunction_decompile_safe
安全反编译调用(已移除 SIGALRM,避免 macOS Cocoa NSRunLoop 冲突)。 macOS 上 SIGALRM 会干扰 Cocoa 事件循环的信号处理机制, 可能导致 NSRunLoop 嵌套或不可恢复的 UI 死锁。 改为依赖函数大小/指令数限制 +
INP.py:355
↓ 2 callersMethod_finish
(self, cancelled)
INP.py:2169
↓ 2 callersMethod_fit_wait_box_field
截断或右侧空格补齐到固定宽度,避免 wait box 随文本长度 resize。
INP.py:503
↓ 2 callersMethod_job_owns_wait_box
Decompile 阶段 job 已创建后,由 job 单独更新 wait box。
INP.py:1794
↓ 2 callersMethod_lazy_init
延迟初始化:加载进度、黑名单、函数列表。在首次 tick 中调用。 将这些 IDA API 调用延迟到 timer tick 中,避免在 __init__ 或 pipeline tick 中阻塞。此时 pipeline 已完全结束,不会有定时器冲突。
INP.py:539
↓ 2 callersMethod_process_one
(self, func_ea)
INP.py:741
↓ 2 callersFunction_ptr_export_get_ptr_size
获取当前数据库的指针大小
INP.py:1295
↓ 2 callersFunction_ptr_export_get_segment_name
获取地址所在段名
INP.py:1305
↓ 2 callersFunction_ptr_export_get_target_name
获取目标符号名
INP.py:1339
↓ 2 callersFunction_ptr_export_read_pointer
读取指针值
INP.py:1300
↓ 2 callersFunction_ptr_export_safe_text
将文本压成单行,便于写入导出文件
INP.py:1321
↓ 2 callersMethod_record_future_result
(self, future, func_ea, func_name, callers, callees, export_type, fallback_reason)
INP.py:889
↓ 2 callersMethod_update_wait_box
更新等待框显示。 macOS 上不能连续调用 show_wait_box(),否则会创建嵌套模态对话框导致死锁。 策略:先尝试 replace_wait_box(接管已有的等待框),仅在 replace 失败时 才调用 show_wait_box。避
INP.py:509
↓ 2 callersFunctiondisable_undo
禁用撤销功能 - IDA 9.x 已移除此 API,保留为空操作以兼容调用点
INP.py:91
↓ 2 callersFunctionexport_exports
导出导出表
INP.py:1183
↓ 2 callersFunctionexport_imports
导出导入表
INP.py:1154
↓ 2 callersFunctionformat_address_list
格式化地址列表为逗号分隔的十六进制字符串
INP.py:129
↓ 2 callersFunctionget_function_output_filename
根据导出类型生成函数输出文件名
INP.py:145
↓ 2 callersFunctionget_function_output_path
获取函数导出文件的绝对路径
INP.py:167
↓ 2 callersFunctionget_function_output_subdir
根据导出类型返回函数输出子目录
INP.py:152
↓ 2 callersFunctionload_crash_blacklist
加载导致崩溃/卡死的函数黑名单 如果上次导出时某个函数导致 IDA 崩溃或卡死,.currently_processing 文件会残留, 该函数会被自动加入黑名单,后续导出自动跳过反编译,使用反汇编回退。
INP.py:301
↓ 2 callersFunctionload_progress
从文件加载进度
INP.py:246
↓ 1 callersMethod__init__
(self, export_dir, skip_existing=True, force_reexport=False)
INP.py:396
↓ 1 callersMethod_build_status_msg
构建包含详细进度信息的等待框文本(固定 5 行宽度,避免弹窗随内容 resize)。
INP.py:443
↓ 1 callersFunction_ptr_export_classify_target
返回 (target_name, target_type, target_detail)
INP.py:1391
↓ 1 callersFunction_ptr_export_collect_data_xrefs
收集所有代码头/数据头上的 data xref
INP.py:1459
↓ 1 callersFunction_ptr_export_collect_raw_pointers
扫描常见数据段中的裸指针,补齐未建立 xref 的项
INP.py:1496
↓ 1 callersFunction_ptr_export_is_import_target
启发式判断是否为导入项/IAT
INP.py:1376
↓ 1 callersFunction_ptr_export_try_get_string_preview
尝试提取字符串预览
INP.py:1351
↓ 1 callersMethod_update_wait_box
(self, extra="")
INP.py:1802
↓ 1 callersMethod_write_logs
(self)
INP.py:977
↓ 1 callersFunctionbuild_function_output_lines
构建函数导出文件内容
INP.py:184
↓ 1 callersFunctiondo_export
执行导出操作 所有耗时操作(auto-analysis 等待、Hex-Rays 初始化、数据导出)都在定时器驱动的 pipeline 中异步执行,run() 立即返回,不阻塞 IDA UI。 Args: export_dir: 导出目录路径,如果为None
INP.py:2202
↓ 1 callersFunctiondo_export_sync
同步阻塞导出,适用于 `idat -A -S...` 批处理模式。
INP.py:2283
↓ 1 callersFunctionexport_decompiled_functions_sync
阻塞式导出函数,用于批处理模式。
INP.py:1101
↓ 1 callersFunctionexport_memory
导出内存数据,按 1MB 分割,hexdump 格式
INP.py:1208
↓ 1 callersFunctionexport_pointers
导出指针引用,保留原有导出目录模式
INP.py:1551
↓ 1 callersFunctionexport_strings
导出所有字符串
INP.py:1114
↓ 1 callersFunctionfind_existing_function_output
查找函数已有的导出文件
INP.py:174
↓ 1 callersFunctiongenerate_function_disassembly
生成函数的反汇编文本,用于反编译失败时回退
INP.py:201
↓ 1 callersFunctionget_callees
获取当前函数调用的函数地址列表
INP.py:112
↓ 1 callersFunctionget_callers
获取调用当前函数的地址列表
INP.py:101
↓ 1 callersFunctionmark_processing
标记当前正在反编译的函数(用于崩溃/卡死恢复)
INP.py:282
↓ 1 callersMethodrun_blocking
阻塞式运行,用于 `idat -A -S...` 批处理模式。
INP.py:673
↓ 1 callersMethodstart
(self)
INP.py:1678
↓ 1 callersMethodtick
每次由 IDA 定时器调用,处理一个函数。返回下次间隔(ms)或 -1 停止。 每次 tick 只处理一个函数,确保在两次 tick 之间 IDA 事件循环有机会处理 UI 事件(包括 Cancel 按钮点击)。即使单个 decompile() 调用耗时较长,
INP.py:590
FunctionPLUGIN_ENTRY
IDA插件入口点
INP.py:2401
Method__init__
(self, export_dir, force_reexport, skip_auto_analysis)
INP.py:1627
Method__init__
(self)
INP.py:2347
Method_tick
由 IDA 定时器调用。处理当前阶段的一个工作单元。
INP.py:1697
Method_tick_analysis
轮询 auto-analysis 状态,不阻塞主线程。 替代 ida_auto.auto_wait(),后者在 macOS 上会阻塞 Cocoa NSRunLoop 导致 spinning beach ball 和 "Not Responding"。
INP.py:1758
Method_tick_decompile
反编译阶段 — 通过 pipeline timer 直接驱动 _FuncExportJob,不嵌套 register_timer。 macOS 上从 timer callback 内调用 register_timer() 会导致 Cocoa NSRunLoop 死锁。
INP.py:2124
Method_tick_exports
(self)
INP.py:1875
Method_tick_imports
(self)
INP.py:1867
Method_tick_init
初始化 Hex-Rays 反编译器并动态追加 Decompile 阶段。
INP.py:1774
Method_tick_memory
(self)
INP.py:2045
Method_tick_pointers
(self)
INP.py:1883
Method_tick_strings
(self)
INP.py:1825
Method_write
(args)
INP.py:838
Functionexport_decompiled_functions
使用 register_timer 驱动的主线程增量导出(不阻塞 IDA UI)。
INP.py:1046
Functionget_idb_directory
获取 IDB 文件所在目录
INP.py:53
Functionget_worker_count
获取用户配置的并行工作线程数
INP.py:48
Functionimp_cb
(ea, name, ordinal)
INP.py:1168
Methodinit
插件初始化 - 返回 plugmod_t 实例
INP.py:2395
Methodrun
插件运行 - 所有操作通过定时器异步执行,run() 快速返回
INP.py:2350
Functionsanitize_filename
清理函数名,使其适合作为文件名
INP.py:134
Methodterm
插件卸载
INP.py:2381