首页 > 编程语言 >IDA python使用

IDA python使用

时间:2023-08-22 20:33:04浏览次数:41  
标签:addr python seg 获取 地址 使用 print def IDA

一.常用函数
1.def hex(str) #把字符串转换成十六进制
2.def MinEA() #获取反汇编窗口中代码段的最小地址
3.def MaxEA() #获取反汇编窗口中代码段的最大地址
4.def ScreenEA() #获取光标所在位置
5.def SegEnd(str) #获取程序中某段的结束地址
典型例子:

print (hex(MinEA()))
print (hex(MaxEA()))
print (hex(ScreenEA()))
for seg in Segments():  
    #如果为代码段,则调用GetStr
    if SegName(seg) == '.text':
        print (hex(SegEnd(seg)))

6.def Byte(addr) #以字节为单位获取地址处的值
7.def Word(addr) #以字为单位获取地址处的值
8.def Dword(addr) #以双字为单位获取地址处的值
9.def Qword(addr) #以四字为单位获取地址处的值
10.def isLoaded(addr) #判断地址处的数值是否有效
11.def GetDisasm(addr) #输出某地址处的反汇编字符串(包括注释)
12.def GetOpnd(addr,n) #获取某地址处的操作数(第一个参数是地址,第二个是操作数索引)
13.def GetFlags(addr) # 获取与地址对应的整数
14.def GetMnem(addr) #输出某地址处的指令
15.def GetOpType(addr,n) #输出指定操作数的类型
16.def GetOperandValue(addr,n) #输出跟指定操作数相关的数据值

from idc_bc695 import *#注意,这个必须要有
addr = 0x0040134a
print (GetDisasm(addr)) 
 
print (GetOpnd(addr,1))
 
print (hex(GetFlags(addr)) )
 
print (GetMnem(addr) )
 
print (GetOpType(addr,1)) 
 
print (GetOperandValue(addr,1))

17.def PatchByte(addr,val) #以字节为单位修改
18.def PatchWord(addr,val) #以字为单位修改
19.def PatchDword(addr,val) ##以双字为单位修改
20.def Functions(start,end)#获取某地址区间所有函数
21.def GetFunctionName(addr)#获取函数名字
22.def NextFunction(addr) #获取下一个函数地址
23.def XrefsTo(Addr, flags)#获取调用某地址处函数的函数

for seg in Segments():  
 
    #如果为代码段
 
    if SegName(seg) == '.text':
 
        for function_ea in Functions(seg,SegEnd(seg)):
 
            FunctionName=GetFunctionName(function_ea)
 
            print (FunctionName)
 
            nextFunc=NextFunction(function_ea)
 
            print (nextFunc)

这里只是介绍了一些基础用法以及对应函数的功能,但是在实际情况当中函数的名称可能不一样,这个时候就需要查阅相关资料以及官方文档https://www.hex-rays.com/products/ida/support/idapython_docs/来查找对应的函数。

标签:addr,python,seg,获取,地址,使用,print,def,IDA
From: https://www.cnblogs.com/ONEZJ/p/17649629.html

相关文章

  • SAP Fiori Elements List Report 如何在扩展开发里使用代码获得当前选中的表格行项目
    笔者从2007年电子科技大学计算机专业硕士毕业后加入SAP成都研究院,一直从事SAP产品设计和研发工作至今,对SAP多项技术有着深入透彻的研究,尤其精通ABAP编程,SAPUI5(Fiori)应用开发和SAPOData服务开发。笔者将自己在SAP领域16年(2007~2023)的技术沉淀,进行了系统的归......
  • 03.前后端分离中台框架 zhontai 项目代码生成器的使用
    zhontai项目基于.Net7.x+Vue等技术的前后端分离后台权限管理系统,想你所想的开发理念,希望减少工作量,帮助大家实现快速开发后端地址:https://github.com/zhontai/Admin.Core前端地址:https://github.com/zhontai/admin.ui.plus代码生成器:后端:https://github.com/share3......
  • Nginx具体使用_部署静态资源
           ......
  • 如何使用 Guided Development 给 Fiori Elements List Report 的工具栏添加自定义按钮
    本教程之前的步骤,我们介绍了如何使用SAPFioriTools这个扩展包的ApplicationModeler提供的PageMap来给ListReport的Table控件添加自定义列的步骤。本文介绍另一种在FioriElements应用里进行扩展开发的方式,即FioriElementsGuidedDevelopment工具向导。按照......
  • python数据分析基础《用数据讲故事》#0 引言
    0引言0.1糟糕的图表无处不在0.2我们天生不擅长用数据讲故事在学校里,我们学习了很多关于语言和数学的知识。在语言方面,我们学习如何将单词组合成句子和故事。数学方面,我们学习如何理解数字。但很少有人将这两方面结合起来:没有人教我们如何用数字讲故事。更严峻的是,很少有人......
  • Python高保真高压缩图片
    '''pipinstallnumpypipinstallopencv-python'''fromioimportBytesIOimportcv2importnumpyasnpdefpic_compress(pic_path,out_path,target_size=199,quality=90,step=5,pic_type='.jpg'):#读取图片bytes......
  • python · SQL | MySQL 配置与 python 连接数据库
    来存档一下搞sql的过程,方便以后查阅。安装与配置mysqlserver:https://blog.csdn.net/zhende_lan/article/details/129318514在同一个网页下载mysqlworkbench(数据库可视化);打开workbench,新建一些表,用来测试:https://zhuanlan.zhihu.com/p/260139380python连接sql的代......
  • 使用 Python ssh 远程登陆服务器的最佳方案
    在使用Python写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果。在shell环境中,我们是这样子做的。sshpass-p${passwd}ssh-p${port}-l${user}-oStrictHostKeyChecking=noxx.xx.xx.xx"ls-l"然后你会发现,你的输出有很多你并不......
  • 18n使用
    1.安装npminstallvue-i18n@8//vue2使用vue-i18n@8vue3使用vue-i18n@92.在utils/lang下创建en-US.js,zh-CN.jsen-US.jsmodule.exports={index:{language:'language'}}zh-CN.jsmodule.exports={index:{language:'语言&#......
  • 使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(3)
    使用ApacheIoTDB进行IoT相关开发的架构设计与功能实现(3)接下来我给大家继续介绍一下ApacheIoTDB的数据类型和相关用法在显示时间戳时,IoTDB可以支持长类型和日期时间显示类型。日期时间显示类型可以支持用户定义的时间格式。自定义时间格式的语法如下表所示:**自定义时间格式的语......