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)

IDApython的学习的更多相关文章

  1. IDAPython学习(二)

    1.常用函数 ScreenEA() 获取IDA调试窗口中,光标指向代码的地址.通过这个函数,我们就能够从一个已知的点运行我们的脚本. GetInputFileMD5() 返回IDA加载的二进制文件的M ...

  2. IDAPython学习(一)

    1.概述 IDAPython在IDA中集成了Python解释器,除了提供了Python功能外,使用这个插件还可以编写实现IDC脚本语言的所有Python脚本. IDAPython显著优势在于,它可以充 ...

  3. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  4. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  5. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  6. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  7. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  8. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  9. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  10. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

随机推荐

  1. golang版本sdl2显示窗体

    golang版本sdl2显示窗体 go用syscall调用sdl2,在win10 x64上没问题,其他系统不敢保证. 见地址 package main import ( "fmt" ...

  2. Requested setting INSTALLED_APPS, but settings are not configured. You must either define the env...

    解决办法 在test.py文件的最头部加上以下代码,配置环境 import os,django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djb ...

  3. 【编程日记】搭建PyCharm集成开发环境

    0.相关确定 本教程使用的版本号为专业版PyCharm 2022.3.2,如果您是初学者,为了更好的学习本教程,避免不必要的麻烦,请您下载使用与本教程一致的版本号. 1.PyCharm的下载 官网下载 ...

  4. (亲测有效-专门解决Mac环境)Pycharm 解决无法打开的问题

    前提是Mac 安装了PyCharm.app 1.第一步:先输入: cd /Applications/PyCharm.app/Contents/MacOS 2.第二步:查看无法打开pycharm的原因, ...

  5. AntV L7 快速入门示例

    1. 引言 L7 地理空间数据可视分析引擎是一种基于 WebGL 技术的地理空间数据可视化引擎,可以用于实现各种地理空间数据可视化应用.L7 引擎支持多种数据源和数据格式,包括 GeoJSON.CSV ...

  6. 非 root 用户手动编译安装 GCC

    我们知道,关于 GCC 在 CentOS 下通过 yum 安装默认版本号,CentOS 5 是 4.1.2:CentOS 6 是 4.4.7:CentOS 7 是 4.8.3.很多时候在编译安装软件都 ...

  7. error: #20: identifier "arm_cfft_instance_f64" is undefined

    在使用Keil5的过程中,偶尔遇到这个问题,以及类似的问题,报错的数量大概200多个. error type>(42): error: #20: identifier "arm_cff ...

  8. JetBrain学信网注册(Clion)

    一.打开网站 首先打开JetBrains关于学生认证的网站:https://www.jetbrains.com/shop/eform/students,可以看见以下页面: 二.人工验证 人工验证适合于 ...

  9. 免杀系列之去除Defender令牌权限

    本文展示了Windows存在的一个小bug,该问题允许攻击者绕过保护反恶意软件(AV/EDR)免受各种形式攻击的Windows安全机制(Windows Protected Process Light) ...

  10. Health Kit 新版本功能解析,给你丰富运动体验!

    华为运动健康服务(HUAWEI Health Kit)6.11.0版本新鲜出炉! 开放活力三环数据助力养成运动习惯,新增水肺潜水.户外探险数据开放-- 丰富运动体验,尽在Health Kit,一起来看 ...