首页 > 编程语言 >IDApython的学习

IDApython的学习

时间:2023-06-30 23:33:05浏览次数:49  
标签:字节 get ea 学习 获取 IDApython 整形 idc

IDApython的学习

我的IDA情况:IDA7.7,idapython3.8
这个可以作为文件导入和命令行内输入,我一般习惯命令行


这里要注意是python不是IDC

访问原数据

idc.get_wide_byte(ea) // 获取单字节,按整形解释
idc.get_wide_word(ea) // 获取双字节,按整形解释
idc.get_wide_dword(ea) // 获取四字节,按整形解释
idc.get_qword(ea) // 获取八字节,按整形解释
idc.GetFloat(ea) //获取四字节,按浮点解释
idc.GetDouble(ea)//获取八字节,按浮点解释
idc.get_bytes(ea,size) // 在ea获取size字节,按byte解释

idc.get_wide_byte(ea)

从ea获取一个字节,以整形的形式返回

idc.get_wide_word(ea)

从ea获取2个字节,以整形的形式返回,这里 为了方便大家看,我把整形转为16进制

这里注意小端序

idc.get_wide_dword(ea)

从ea获取4个字节,以整形的形式返回

idc.get_qword(ea)

从ea获取8个字节,以整形的形式返回

idc.GetFloat(ea)

从ea获取4个字节,以浮点的形式返回

idc.GetDouble(ea)

从ea获取8个字节,以浮点的形式返回

idc.get_bytes(ea,size)

在ea获取size字节,按byte解释

数据打补丁

一般和获取原数据的api配合使用
idc.patch_byte(ea, value)
idc.patch_word(ea, value)
idc.patch_dword(ea, value)
idc.patch_qword(ea, value)

idc.patch_byte(ea, value)


下面就不一一演示了。

汇编获取

idc.GetDisasm(ea)//获取ea的汇编指令 比如 mov     rbp, rsp
idc.print_insn_mnem(ea)//获取ea的汇编指令的名字,比如mov
idc.print_operand(ea,0)
//获取操作数的文本表示形式
指令(或数据)的线性地址
N -操作数个数:
0 -第一个操作数
1 -第二个操作数
返回:操作数的当前文本表示形式
比如 rbp,同理idc.print_operand(ea,1)为rsp

idc.GetDisasm(ea)

idc.print_insn_mnem(ea)

idc.print_operand(ea,n)

标签:字节,get,ea,学习,获取,IDApython,整形,idc
From: https://www.cnblogs.com/maffy/p/17517468.html

相关文章

  • VisionPro学习笔记(2)——图像转换工具ImageCovertTool
    众所周知,VisionPro是一款功能强大的机器视觉软件,用于开发和部署机器视觉应用程序。其中ImageConvertTool是其中一个重要的工具,用于图像转换和处理。本文将介绍如何使用ImageConvertTool进行图像转换,并探讨其背后的原理。写之前先吐槽一下,引出自己的原因,哈哈哈(当然一个小......
  • MySQL学习3--联表查询
    1、常规联表查询创建两张数据库表如下:mysql>select*fromdept;+----+-----------+|id|deptName|+----+-----------+|3|教学部|+----+-----------+1rowinset(0.00sec)mysql>select*fromemployee;+----+---------+--------+------------------......
  • 深入学习 Java 类加载机制
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,阿里云专家博主,华为云云享专家✌......
  • kubernetes学习笔记06(存储)
    Kubernetes存储管理容器中的磁盘生命周期是短暂的,也带来了一系列的问题:当一个容器损坏后,Kubernetes会重启容器,但是文件会丢失很多容器在同一Pod中运行的时候,数据文件需要共享KubernetesVolume的到来解决了上述问题,Kubernetes集群中的存储跟Docker的存储卷有些类似,只不过Docker的存......
  • 研0学习
    1.typora(1)安装并破解typora(2)配置并学习利用Typora写笔记(3)注册博客园博客,并学会上传笔记......
  • Kong入门学习实践(7)灰度发布与蓝绿部署
    两年前,我在学习K8s的时候有写过一篇基于NginxIngress实现灰度发布的博文。这次,我们基于Kong来实践一下。灰度发布的具体实现其实是流量切分,那就让我们先回顾一下流量切分的实现方式。流量切分实现方式Kong可以支持实现不同场景下的灰度发布和测试,可以满足金丝雀发布、蓝绿部署......
  • 深入学习 Mybatis 的四大组件源码
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌Java知识图谱点击链接:体系化学习Java(Java面试专题)......
  • 体系化学习Java(Java面试专题)
    tip:此贴为目录贴,定期更新toNew:时间是最好的答案,它能解决所有问题。坚持!!!**本文章旨在总结Java的知识生态以及帮助需要学习者和求职者,本人从事应用安全和大数据领域,有8年开发经验,5年面试官经验,Java技术专家,有技术相关问题和面试相关问题均可以留言讨论。......
  • 【笔者感悟】笔者的学习心得【三】
    个人经历  这一份讲的是笔者在做一份个人项目,以及企业项目的时候产生的问题。说来惭愧,笔者在写这份感悟的时候,项目甚至只是建了个仓库,为此让笔者很是心生焦虑,笔者喜欢看电竞赛事,听到的最多的一句话就是,电竞选手的生活是以普通人八倍速的脚步向前发展的,因此没有特别多的时间留给......
  • libc2.23的堆学习
    堆学习libc2.23chef*​ ——堆溢出伪造fakechunk,修改free_hook为og(libc2.23-0ubuntu11.3_amd64)检查:ida分析:主程序是一个菜单,但是有点假,只是打印了一些字符串,没有什么实际的操作,直接进入选项4。这个菜单实现了堆操作增删改查。​ add函数,有一个if判断,这限制了最多只能申......