IDA sdk 调试器接口
来源:互联网 发布:注册会计师课件知乎 编辑:程序博客网 时间:2024/05/16 04:41
struct debugger_t
{
int version; //调试器插件版本号
const char *name; //调试器名
int id; //调试器类型id
char* processor; //调试器cpu名
uint32 flags; //
const char** register_class;//寄存器
int register_classes_default;
register_info_t *_registers;//寄存器类
int registers_size; //寄存器个数
int memory_page_size; //
const uchar* bpt_bytes; //断点指令字节
uchar bpt_size; //大小
uchar filetype;
ushort resume_modes;
bool (idaapi *init_debugger)(const char *hostname, int portnum, const char *password);//初始化
bool (idaapi *term_debugger)(void);//结束
int (idaapi *process_get_info)(int n, process_info_t *info);//获取进程名
int (idaapi *start_process)(const char *path, const char *args, const char *startdir, int dbg_proc_flags, const char *input_path, uint32 input_file_crc32);
//启动进程
int (idaapi *attach_process)(pid_t pid, int event_id);//附加进程
int (idaapi *detach_process)(void);//分离进程
void (idaapi *rebase_if_required_to)(ea_t new_base);//基址重置
int (idaapi *prepare_to_pause_process)(void);
int (idaapi *exit_process)(void);//退出进程
gdecode_t (idaapi *get_debug_event)(debug_event_t *event, int timeout_ms);//获取事件
int (idaapi *continue_after_event)(const debug_event_t *event);//
void (idaapi *set_exception_info)(const exception_info_t *info, int qty);
void (idaapi *stopped_at_debug_event)(bool dlls_added);
int (idaapi *thread_suspend) (thid_t tid);
int (idaapi *thread_continue)(thid_t tid);
int (idaapi *set_resume_mode)(thid_t tid, resume_mode_t resmod);
int (idaapi *read_registers)(thid_t tid, int clsmask, regval_t *values);
int (idaapi *write_register)(thid_t tid, int regidx, const regval_t *value);
int (idaapi *thread_get_sreg_base)(thid_t tid, int sreg_value, ea_t *answer);
int (idaapi *get_memory_info)(meminfo_vec_t &areas);
ssize_t (idaapi *read_memory)(ea_t ea, void *buffer, size_t size);
ssize_t (idaapi *write_memory)(ea_t ea, const void *buffer, size_t size);
int (idaapi *is_ok_bpt)(bpttype_t type, ea_t ea, int len);
int (idaapi *update_bpts)(update_bpt_info_t *bpts, int nadd, int ndel);int (idaapi *update_bpts)(update_bpt_info_t *bpts, int nadd, int ndel);//更新断点
int (idaapi *update_lowcnds)(const lowcnd_t *lowcnds, int nlowcnds);
void (idaapi *close_file)(int fn);
ssize_t (idaapi *read_file)(int fn, uint32 off, void *buf, size_t size);
ea_t (idaapi *map_address)(ea_t off, const regval_t *regs, int regnum);
const char *(idaapi *set_dbg_options)(const char *keyword, int pri, int value_type, const void *value);
const void *(idaapi *get_debmod_extensions)(void);
bool (idaapi *update_call_stack)(thid_t tid, call_stack_t *trace);
ea_t (idaapi *appcall)(ea_t func_ea, thid_t tid, const struct func_type_data_t *fti, int nargs, const struct regobjs_t *regargs, struct relobj_t *stkargs, struct regobjs_t *retregs, qstring *errbuf, debug_event_t *event, int options);
int (idaapi *cleanup_appcall)(thid_t tid);
int (idaapi *eval_lowcnd)(thid_t tid, ea_t ea);
ssize_t (idaapi *write_file)(int fn, uint32 off, const void *buf, size_t size);
int (idaapi *send_ioctl)(int fn, const void *buf, size_t size, void **poutbuf, ssize_t *poutsize);
bool (idaapi *dbg_enable_trace)(thid_t tid, bool enable, int trace_flags);
bool (idaapi *is_tracing_enabled)(thid_t tid, int tracebit);
int (idaapi *rexec)(const char *cmdline);
void (idaapi *get_debapp_attrs)(debapp_attrs_t *out_pattrs);
}
{
int version; //调试器插件版本号
const char *name; //调试器名
int id; //调试器类型id
char* processor; //调试器cpu名
uint32 flags; //
const char** register_class;//寄存器
int register_classes_default;
register_info_t *_registers;//寄存器类
int registers_size; //寄存器个数
int memory_page_size; //
const uchar* bpt_bytes; //断点指令字节
uchar bpt_size; //大小
uchar filetype;
ushort resume_modes;
bool (idaapi *init_debugger)(const char *hostname, int portnum, const char *password);//初始化
bool (idaapi *term_debugger)(void);//结束
int (idaapi *process_get_info)(int n, process_info_t *info);//获取进程名
int (idaapi *start_process)(const char *path, const char *args, const char *startdir, int dbg_proc_flags, const char *input_path, uint32 input_file_crc32);
//启动进程
int (idaapi *attach_process)(pid_t pid, int event_id);//附加进程
int (idaapi *detach_process)(void);//分离进程
void (idaapi *rebase_if_required_to)(ea_t new_base);//基址重置
int (idaapi *prepare_to_pause_process)(void);
int (idaapi *exit_process)(void);//退出进程
gdecode_t (idaapi *get_debug_event)(debug_event_t *event, int timeout_ms);//获取事件
int (idaapi *continue_after_event)(const debug_event_t *event);//
void (idaapi *set_exception_info)(const exception_info_t *info, int qty);
void (idaapi *stopped_at_debug_event)(bool dlls_added);
int (idaapi *thread_suspend) (thid_t tid);
int (idaapi *thread_continue)(thid_t tid);
int (idaapi *set_resume_mode)(thid_t tid, resume_mode_t resmod);
int (idaapi *read_registers)(thid_t tid, int clsmask, regval_t *values);
int (idaapi *write_register)(thid_t tid, int regidx, const regval_t *value);
int (idaapi *thread_get_sreg_base)(thid_t tid, int sreg_value, ea_t *answer);
int (idaapi *get_memory_info)(meminfo_vec_t &areas);
ssize_t (idaapi *read_memory)(ea_t ea, void *buffer, size_t size);
ssize_t (idaapi *write_memory)(ea_t ea, const void *buffer, size_t size);
int (idaapi *is_ok_bpt)(bpttype_t type, ea_t ea, int len);
int (idaapi *update_bpts)(update_bpt_info_t *bpts, int nadd, int ndel);int (idaapi *update_bpts)(update_bpt_info_t *bpts, int nadd, int ndel);//更新断点
int (idaapi *update_lowcnds)(const lowcnd_t *lowcnds, int nlowcnds);
void (idaapi *close_file)(int fn);
ssize_t (idaapi *read_file)(int fn, uint32 off, void *buf, size_t size);
ea_t (idaapi *map_address)(ea_t off, const regval_t *regs, int regnum);
const char *(idaapi *set_dbg_options)(const char *keyword, int pri, int value_type, const void *value);
const void *(idaapi *get_debmod_extensions)(void);
bool (idaapi *update_call_stack)(thid_t tid, call_stack_t *trace);
ea_t (idaapi *appcall)(ea_t func_ea, thid_t tid, const struct func_type_data_t *fti, int nargs, const struct regobjs_t *regargs, struct relobj_t *stkargs, struct regobjs_t *retregs, qstring *errbuf, debug_event_t *event, int options);
int (idaapi *cleanup_appcall)(thid_t tid);
int (idaapi *eval_lowcnd)(thid_t tid, ea_t ea);
ssize_t (idaapi *write_file)(int fn, uint32 off, const void *buf, size_t size);
int (idaapi *send_ioctl)(int fn, const void *buf, size_t size, void **poutbuf, ssize_t *poutsize);
bool (idaapi *dbg_enable_trace)(thid_t tid, bool enable, int trace_flags);
bool (idaapi *is_tracing_enabled)(thid_t tid, int tracebit);
int (idaapi *rexec)(const char *cmdline);
void (idaapi *get_debapp_attrs)(debapp_attrs_t *out_pattrs);
}
0 0
- IDA sdk 调试器接口
- IDA 教程-隐藏 IDA 调试器
- IDA调试器跟踪功能
- 使用IDA的调试器
- 使用IDA的调试器
- IDA 教程-WINCE ARM 调试器入门教程
- IDA 教程-脚本化的调试器
- IDA 6.0设置WinDbg调试器路径
- 动态调试器Ollydbg和静态调试器IDA
- 调试sdk接口超时30秒
- IDA 远程调试
- IDA 远程调试
- IDA&&BOCHS调试MBR
- IDA调试基础------断点
- IDA 调试SO
- IDA 动态调试SO
- Ida 调试so文件
- IDA 远程调试
- eclipse中如何更改、添加jre和jdk
- PHP-xampp-mongodb 扩展
- Python爬虫包 BeautifulSoup 学习(六) 递归抓取
- wireless_tools在android上的移植
- HTML5+CSS3+JS学习笔记-9-制作iphone手机模型
- IDA sdk 调试器接口
- Java基础类型总结
- 初等数论——同余式
- Verilog的模块与端口 语法
- 安装DLNA实现流媒体服务器
- Java简单模拟实现Spring
- 工信部:手机预装软件需可卸载 禁止擅自收集用户信息
- openfire + 带有jspd的插件开发
- Hibernate框架的搭建