接收地址参数验证地址格式后调用服务端 Other 类的 SwitchPseudoCodeTo 接口切换伪代码窗口到指定地址位置并反编译。from IDAMoles import * if __name__ __main__: configConfig(address127.0.0.1,port8000) client BaseHttpClient(config) info_page Other(config) print(info_page.switch_pseudocode_to(0x401000))输出JSON格式{ status: success, result: { message: Successfully switched to pseudocode, function_address: 0x401000 }, timestamp: 39529218 }get_function_var_name接收地址参数验证地址格式后调用服务端 Other 类的 GetFunctionVarName 接口获取指定地址所属函数的变量名称。from IDAMoles import * if __name__ __main__: configConfig(address127.0.0.1,port8000) client BaseHttpClient(config) info_page Other(config) info_page.switch_pseudocode_to(0x401000) print(info_page.get_function_var_name(0x401000))输出JSON格式{ status: success, result: { variables: [ { name: hInstance, location: stack offset: 0x5C, width_bytes: 4, type: HINSTANCE, is_user_defined: false, index: 0 }, { name: hPrevInstance, location: stack offset: 0x60, width_bytes: 4, type: HINSTANCE, is_user_defined: false, index: 1 }, { name: lpCmdLine, location: stack offset: 0x64, width_bytes: 4, type: LPSTR, is_user_defined: false, index: 2 }, { name: nShowCmd, location: stack offset: 0x68, width_bytes: 4, type: int, is_user_defined: false, index: 3 }, { name: Window, location: register: r8, width_bytes: 4, type: HWND, is_user_defined: false, index: 4 }, { name: v5, location: register: zf, width_bytes: 4, type: HWND, is_user_defined: false, index: 5 }, { name: Msg, location: stack offset: 0x38, width_bytes: 28, type: tagMSG, is_user_defined: true, index: 7 }, { name: hInstancea, location: stack offset: 0x5C, width_bytes: 4, type: HACCEL, is_user_defined: true, index: 8 } ], function_address: 0x401000, found_variables_count: 8 }, timestamp: 39635265 }set_function_var_name接收地址、UID 和变量名称参数验证地址格式并校验 UID 和变量名称非空后调用服务端 Other 类的 SetFunctionVarName 接口修改指定地址函数中指定 UID 的变量名称。from IDAMoles import * if __name__ __main__: configConfig(address127.0.0.1,port8000) client BaseHttpClient(config) info_page Other(config) info_page.switch_pseudocode_to(0x401000) print(info_page.set_function_var_name(0x401000,4,new_var))输出JSON格式{ status: success, result: { function_address: 0x401000, var_index: 4, new_name: new_var, message: Local variable renamed successfully }, timestamp: 39949484 }get_struct_member_name接收结构体名称和偏移量参数校验结构体名称非空且偏移量为非负整数后调用服务端 Other 类的 GetStructMemberName 接口获取指定结构体中指定偏移量的成员名称。from IDAMoles import * if __name__ __main__: configConfig(address127.0.0.1,port8000) client BaseHttpClient(config) info_page Other(config) print(info_page.get_struct_member_name(_GUID, 0)) print(info_page.get_struct_member_name(_GUID, 1))输出JSON格式{ status: success, result: { member_info: { struct_name: _GUID, member_name: Data1, offset_bits: 0, offset_bytes: 0, size_bits: 32, size_bytes: 4, type: unsigned int, effective_alignment_bytes: 1, field_alignment_shift: 255, flags: { is_bitfield: false, is_zero_length_bitfield: false, is_unaligned: false, is_baseclass_member: false, is_virtual_baseclass_member: false, is_vftable_member: false, is_method_member: false, is_gap: false, is_anonymous: false } } }, timestamp: 40099000 }set_struct_member_name接收结构体名称、偏移量和新成员名称参数校验结构体名称非空、偏移量为非负整数且新名称非空后调用服务端 Other 类的 SetStructMemberName 接口修改指定结构体中指定偏移量的成员名称。from IDAMoles import * if __name__ __main__: configConfig(address127.0.0.1,port8000) client BaseHttpClient(config) info_page Other(config) print(info_page.set_struct_member_name(_GUID, 0,new_data))输出JSON格式{ status: success, result: { rename_result: { struct_name: _GUID, offset_bytes: 0, old_member_name: Data1, new_member_name: new_data, status: Member renamed successfully } }, timestamp: 40172734 }get_current_select调用服务端 Other 类的 GetCurrentSelect 接口获取当前选中区域的相关信息。from IDAMoles import * if __name__ __main__: configConfig(address127.0.0.1,port8000) client BaseHttpClient(config) info_page Other(config) print(info_page.get_current_select())输出JSON格式{ status: success, result: { screen_ea: 4198438, screen_ea_hex: 0x401026, selection_start_ea: 4198400, selection_start_ea_hex: 0x401000, selection_end_ea: 4198439, selection_end_ea_hex: 0x401027, widget_type_code: 27, widget_title: IDA View-A, has_valid_selection: true }, timestamp: 40213890 }