当前位置: 首页 > news >正文

Learn Learn IdaPython

安装idapython sdk

  1. 在idalib中根据readme按照要求配置
  2. 创建虚拟环境,pip install path/to/idalib/python
  3. 将idapro路径下的python复制到虚拟环境对应项目目录中

IdaPython函数积累

  • print_insn_mnem(ea): 返回指定地址(ea)处指令的助记符
  • generate_disasm_line(ea, flags): 返回指定地址(ea)处指令的完整反汇编文本。
  • print_operand(ea, n): 返回指定地址(ea)处指令的第n个操作数的名称(n 从 0 开始)。
  • get_operand_value(ea, n):返回指定地址(ea)处指令的第n个操作数的如下内容
    @return: valueoperand is an immediate value  => immediate valueoperand has a displacement     => displacementoperand is a direct memory ref => memory addressoperand is a register          => register numberoperand is a register phrase   => phrase numberotherwise                      => -1
    

get_operand_type(ea, n): 返回指定地址ea处第n个操作数的类型

  • ida operand type: https://cpp.docs.hex-rays.com/group__o__.html
    get_qword(ea): 以小端序获得地址ea的qword
    ida_dbg.get_reg_val("RegName"): 返回当先状态下对应reg的值
    ida_dbg.wait_for_next_event(ida_dbg.WFNE_SUSP, 5000)

编写时遇到的小问题

  1. 这里是将地址0x555555A050传给了X14,而不是将qword_555555A050中的值传给X14应该使用
    idc.get_operand_value(CurIp, 1)而不是idc.get_qword(idc.get_operand_value(CurIp, 1))
    img
  2. 如果不知道哪里出了问题,可以调试,之后暂停,看暂停在哪个函数里面,就代表这个函数调用的地方出错了.
http://www.njgz.com.cn/news/91.html

相关文章:

  • 启发式算法解析:经典思想、代表人物与前沿融合
  • day25
  • 线段树 tricks
  • 第一章
  • CVE-2022-41678 后台代码执行漏洞 (复现)
  • 无痕检测是否注册iMessage服务,iMessages数据筛选,iMessage蓝号检测完美实现
  • Memory Systems_ Cache, DRAM, Disk (2010)-学习笔记2-Caches, ‘Caches,’ and “Caches”
  • JAVA语言学习总结(第25天)
  • hot 100二叉树算法
  • 信号处理__FFT变换
  • LCD显示信号波形
  • 7/26
  • 7.26
  • 盛最多水的容器
  • 练习cf939A. Love Triangle
  • CVE-2023-46604 Apache ActiveMQ 远程代码执行漏洞 (复现)
  • Day26
  • 假期学习
  • 第二十四天
  • 在python虚拟环境中遇到 ​​No module named pip​​ 错误解决方案
  • 从零开始的web前端学习-React
  • tinymce富文本编辑器使用
  • 微软C语言编译器‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_s instead
  • Java学习Day26
  • 线性基(个人学习笔记)
  • 花菖蒲 2025.7.26 模拟赛题解
  • 信任的意外反射:深入解析LLVM循环向量化器中的罕见编译错误
  • P1429 平面最近点对(加强版)[骗分解法]
  • 7.26 - GENGAR
  • P4565 [CTSC2018] 暴力写挂 题解