idc.    http://www.cnblogs.com/fply/p/8503929.html

获取ida可执行文件路径

GetIdaDirectory()

print GetIdaDirectory()
/Applications/tool/IDA Pro 7.0/ida64.app/Contents/MacOS

获取被反编译文件名

GetInputFile()

获取被反编译文件全路径

GetInputFilePath()

 SetInputFilePath(path):

    Set input file name
This function updates the file name that is stored in the database
It is used by the debugger and other parts of IDA
Use it when the database is moved to another location or when you
use remote debugging. @param path: new input file path

获取idb文件全路径

GetIdbPath()

获取输入文件md5值

GetInputMD5()

从程序idb文件中获取数据

IdbByte(ea)

获取多个字节

GetManyBytes(ea, size, use_dbg = False)

获取程序ea处字节

Byte(ea)

获取多个数据,调试状态

__DbgValue(ea, len)

获取调试内存数据

DbgByte(ea)

DbgWord

DbgDword

DbgQword

读取数据,调试状态,成功返回获取数据的字符串,失败抛出异常

DbgRead(ea,size)

写数据,data为字符串形式,返回写入长度,失败返回-1

DbgWrite(ea, data)

获取原始数据,

GetOriginalByte(ea)

通过名称获取地址

LocByName(name)

print LocByName("start")#获取起始位置

从指定位置通过名称获取地址

LocByNameEx(fromaddr, name)

获取段地址
SegByBase(base)
"""
Get segment by segment base @param base: segment base paragraph or selector @return: linear address of the start of the segment or BADADDR
if no such segment

获取光标地址

ScreenEA()

here()

获取当标处汇编代码

GetCurrentLine()

print GetCurrentLine()

__text:0000000100005318 FD 03 00 91 MOV x29,sp

获取选择区域的起始位置

SelStart()

SelEnd()

 

获取寄存器值

GetReg(ea, reg)

print GetReg(ea,"eax")#错误返回-1

NextAddr(ea)

PrevAddr(ea)

获取下条指令或者数据位置

NextHead(ea)

PrevHead(ea)#前一条

#尾部不显示

NextNotTail(ea)

获取指令或数据起始位置

ItemHead(ea)

获取指令长度

ItemSize(ea)

NameEx(fromaddr, ea)

GetTrueNameEx(fromaddr, ea)
Demangle(name, disable_mask)

获取汇编代码

GetDisasmEx(ea, flags)

GetDisasm(ea)

print GetDisasm(ea)

MOV X19, X1

获取指令助记符

print GetMnem(ea)#MOV

获取操作码
GetOpnd(ea, n):
"""
Get operand of an instruction @param ea: linear address of instruction
@param n: number of operand:
0 - the first operand
1 - the second operand @return: the current text representation of operand or ""

print GetOpnd(ea,1)

获取操作码类型
GetOpType(ea, n)
"""
Get type of instruction operand @param ea: linear address of instruction
@param n: number of operand:
0 - the first operand
1 - the second operand @return: any of o_* constants or -1 on error o_void = idaapi.o_void # No Operand ----------
o_reg = idaapi.o_reg # General Register (al,ax,es,ds...) reg
o_mem = idaapi.o_mem # Direct Memory Reference (DATA) addr
o_phrase = idaapi.o_phrase # Memory Ref [Base Reg + Index Reg] phrase
o_displ = idaapi.o_displ # Memory Reg [Base Reg + Index Reg + Displacement] phrase+addr
o_imm = idaapi.o_imm # Immediate Value value
o_far = idaapi.o_far # Immediate Far Address (CODE) addr
o_near = idaapi.o_near # Immediate Near Address (CODE) addr
o_idpspec0 = idaapi.o_idpspec0 # Processor specific type
o_idpspec1 = idaapi.o_idpspec1 # Processor specific type
o_idpspec2 = idaapi.o_idpspec2 # Processor specific type
o_idpspec3 = idaapi.o_idpspec3 # Processor specific type
o_idpspec4 = idaapi.o_idpspec4 # Processor specific type
o_idpspec5 = idaapi.o_idpspec5 # Processor specific type
# There can be more processor specific types # x86
o_trreg = idaapi.o_idpspec0 # trace register
o_dbreg = idaapi.o_idpspec1 # debug register
o_crreg = idaapi.o_idpspec2 # control register
o_fpreg = idaapi.o_idpspec3 # floating point register
o_mmxreg = idaapi.o_idpspec4 # mmx register
o_xmmreg = idaapi.o_idpspec5 # xmm register # arm
o_reglist = idaapi.o_idpspec1 # Register list (for LDM/STM)
o_creglist = idaapi.o_idpspec2 # Coprocessor register list (for CDP)
o_creg = idaapi.o_idpspec3 # Coprocessor register (for LDC/STC)
o_fpreg_arm = idaapi.o_idpspec4 # Floating point register
o_fpreglist = idaapi.o_idpspec5 # Floating point register list
o_text = (idaapi.o_idpspec5+1) # Arbitrary text stored in the operand # ppc
o_spr = idaapi.o_idpspec0 # Special purpose register
o_twofpr = idaapi.o_idpspec1 # Two FPRs
o_shmbme = idaapi.o_idpspec2 # SH & MB & ME
o_crf = idaapi.o_idpspec3 # crfield x.reg
o_crb = idaapi.o_idpspec4 # crbit x.reg
o_dcr = idaapi.o_idpspec5 # Device control register
GetOperandValue(ea, n):
"""
Get number used in the operand This function returns an immediate number used in the operand @param ea: linear address of instruction
@param n: the operand number @return: value
operand is an immediate value => immediate value
operand has a displacement => displacement
operand is a direct memory ref => memory address
operand is a register => register number
operand is a register phrase => phrase number
otherwise => -1

LineA(ea, num)

LineB(ea, num)

获取注释

GetCommentEx(ea, repeatable)

@param repeatable: 1 to get the repeatable comment, 0 to get the normal comment

同上

CommentEx(ea, repeatable)

获取手动修改的指令参数

AltOp(ea, n)

print AltOp(ea,0)

获取指定地址字符串

GetString(ea, length = -1, strtype = ASCSTR_C)

FindVoid        (ea, flag)FindCode        (ea, flag)#找到下一个代码位置FindData        (ea, flag)FindUnexplored  (ea, flag)FindExplored    (ea, flag)FindImmediate   (ea, flag, value)

SEARCH_UP       = idaapi.SEARCH_UP       # search backward
SEARCH_DOWN = idaapi.SEARCH_DOWN # search forward
SEARCH_NEXT = idaapi.SEARCH_NEXT # start the search at the next/prev item
# useful only for FindText() and FindBinary()
SEARCH_CASE = idaapi.SEARCH_CASE # search case-sensitive
# (only for bin&txt search)
SEARCH_REGEX = idaapi.SEARCH_REGEX # enable regular expressions (only for text)
SEARCH_NOBRK = idaapi.SEARCH_NOBRK # don't test ctrl-break
SEARCH_NOSHOW = idaapi.SEARCH_NOSHOW # don't display the search progress
#查找字符串
FindText(ea, flag, y, x, searchstr)
"""
@param ea: start address
@param flag: combination of SEARCH_* flags
@param y: number of text line at ea to start from (0..MAX_ITEM_LINES)
@param x: coordinate in this line
@param searchstr: search string @return: ea of result or BADADDR if not found
 FindBinary(ea, flag, searchstr, radix=16)

@param ea: start address
@param flag: combination of SEARCH_* flags
@param searchstr: a string as a user enters it for Search Text in Core
@param radix: radix of the numbers (default=16)

@return: ea of result or BADADDR if not found

@note: Example: "41 42" - find 2 bytes 41h,42h (radix is 16)

ida信息获取函数的更多相关文章

  1. Delphi 版本信息获取函数 GetFileVersionInfo、GetFileVersionInfoSize、VerFindFile、VerInstallFile和VerQueryValue

    一.版本信息获取函数简介和作用 获取文件版本信息的作用: 1. 避免在新版本的组件上安装旧版本的相同组件: 2. 在多语言系统环境中,操作系统根据文件版本信息里提供的语言信息在启动程序时决定使用的正确 ...

  2. PHP文件信息获取函数

    知识点: basename():获取文件名,传入第二个参数则只显示文件名,不显示后缀 dirname():获取文件路径 pathinfo():将文件信息存入一个数组,通过索引basename,dirn ...

  3. 【转】windows c++获取文件信息——_stat函数的使用

    _stat函数的功能 _stat函数用来获取指定路径的文件或者文件夹的信息. 函数声明 int _stat( const char *path, struct _stat *buffer ); 参数: ...

  4. python装饰器内获取函数有用信息方法

    装饰器内获取函数有用信息方法 .__doc__用于得到函数注释信息 .__name_用于得到函数名 在函数引用装饰器的时候,函数名会变为装饰器内部执行该函数的名字,所有在直接执行函数名加.__doc_ ...

  5. PE文件信息获取工具-PEINFO

    能实现基本的信息获取 区段信息 数据目录信息 导入表函数分析 导出表函数分析,能同时解析只序号导出和以函数名序号同时导出的函数 FLC计算 需要源码的可以留邮箱.

  6. C++ crash 堆栈信息获取(三篇文章)

    最近在做程序异常时堆栈信息获取相关工作,上一篇文章成功的在程序creash时写下了dump文件,而有些情况写dump文件是 不可以的,比如在jni开发时,C++只做底层处理,而整个项目是android ...

  7. C++ crash 堆栈信息获取

    最近在做程序异常时堆栈信息获取相关工作,上一篇文章成功的在程序creash时写下了dump文件,而有些情况写dump文件是 不可以的,比如在jni开发时,C++只做底层处理,而整个项目是android ...

  8. Java获取函数参数名称

    原理 编译之后的class文件默认是不带有参数名称信息的,使用 IDE 时,反编译jar包得到的源代码函数参数名称是 arg0,arg1......这种形式,这是因为编译 jar 包的时候没有把符号表 ...

  9. windows主机网络信息获取程序设计

    掌握windows系统获取网络信息的各种API函数的功能与调用方法,掌握设计程序显示获取到相关网络信息的方法,掌握网络字节数据与主机字节数据之间的转换.掌握这些API函数调用的错误处理方法. 利用本地 ...

随机推荐

  1. linux下python3.5环境搭建

    ubuntu12 在虚拟机vm11版本下安装正常,ubuntu14在虚拟机11-14版本下均因为某些文件权限不够安装失败(ubuntu14安装失败),未解决. ubuntu12 安装完成后,首先安装 ...

  2. 在SVNX中实现$Ids的自动替换

    在PHPstorm中实现$Ids的自动替换 ①.打开SVN的配置文件. [miscellany] enable-auto-props = yes [auto-props] .c = svn:keywo ...

  3. 应用docker化

    1)首先安装源代码工具Git.  [root@master~]# yum install-y git  2)从GitHub上下载示例的Java应用源代码.  [root@master~]# cd/op ...

  4. svn 修改文件的可执行权限

    设置svn可执行权限,svn:executable 1)svn propset svn:executable on 文件名/文件夹名 2)svn propset svn:executable on t ...

  5. jszip 前端生成zip文件下载

    [文档地址] export const ZipFileCreate = () => { Promise.all([ // 下面是引入依赖包 require('jszip'), import('f ...

  6. oracle常见的执行计划

    访问表的执行计划: 全表扫描:TABLE ACCESS FULL ROWID扫描:TABLE ACCESS BY USER ROWID (ROWID来源于用户在where条件中的指定)或 TABLE ...

  7. 异常 java.net.ConnectException: Connection refused: no further information

    java.net.ConnectException: Connection refused: no further information at sun.nio.ch.SocketChannelImp ...

  8. Vue 通过 Lodash 限制操作频率

    <template> <div id="watch-example"> <p> Ask a yes/no question: <input ...

  9. 为什么mysql 5.7.24启停不显示错误信息?log-error_verbosity参数

    关键词:log-error_verbosity ,mysql启停没有信息,mysql启停不显示错误信息,mysql不显示启停信息 原因就是因为 log-error_verbosity = 2 被设置成 ...

  10. 防止SQL注入的6个要点

    SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.防止SQL注入,我们可以从以下6个要点来进行: 1.永远不要信任用户的输入 ...