color xml arm相关
#--------------------------------------------------------------------------
# C O L O R S
#-------------------------------------------------------------------------- def GetColor(ea, what):
"""
Get item color @param ea: address of the item
@param what: type of the item (one of CIC_* constants) @return: color code in RGB (hex 0xBBGGRR)
"""
if what not in [ CIC_ITEM, CIC_FUNC, CIC_SEGM ]:
raise ValueError, "'what' must be one of CIC_ITEM, CIC_FUNC and CIC_SEGM" if what == CIC_ITEM:
return idaapi.get_item_color(ea) if what == CIC_FUNC:
func = idaapi.get_func(ea)
if func:
return func.color
else:
return DEFCOLOR if what == CIC_SEGM:
seg = idaapi.getseg(ea)
if seg:
return seg.color
else:
return DEFCOLOR # color item codes:
CIC_ITEM = 1 # one instruction or data
CIC_FUNC = 2 # function
CIC_SEGM = 3 # segment DEFCOLOR = 0xFFFFFFFF # Default color def SetColor(ea, what, color):
"""
Set item color @param ea: address of the item
@param what: type of the item (one of CIC_* constants)
@param color: new color code in RGB (hex 0xBBGGRR) @return: success (True or False)
"""
if what not in [ CIC_ITEM, CIC_FUNC, CIC_SEGM ]:
raise ValueError, "'what' must be one of CIC_ITEM, CIC_FUNC and CIC_SEGM" if what == CIC_ITEM:
return idaapi.set_item_color(ea, color) if what == CIC_FUNC:
func = idaapi.get_func(ea)
if func:
func.color = color
return bool(idaapi.update_func(func))
else:
return False if what == CIC_SEGM:
seg = idaapi.getseg(ea)
if seg:
seg.color = color
return bool(seg.update())
else:
return False #--------------------------------------------------------------------------
# X M L
#-------------------------------------------------------------------------- def SetXML(path, name, value):
"""
Set or update one or more XML values. @param path: XPath expression of elements where to create value(s)
@param name: name of the element/attribute
(use @XXX for an attribute) to create.
If 'name' is empty, the elements or
attributes returned by XPath are directly
updated to contain the new 'value'.
@param value: value of the element/attribute @return: success (True or False)
"""
return idaapi.set_xml(path, name, value) def GetXML(path):
"""
Get one XML value. @param path: XPath expression to an element
or attribute whose value is requested @return: the value, None if failed
"""
v = idaapi.value_t()
if idaapi.get_xml(path):
return v.str
else:
return None #----------------------------------------------------------------------------
# A R M S P E C I F I C
#----------------------------------------------------------------------------
def ArmForceBLJump(ea):
"""
Some ARM compilers in Thumb mode use BL (branch-and-link)
instead of B (branch) for long jumps, since BL has more range.
By default, IDA tries to determine if BL is a jump or a call.
You can override IDA's decision using commands in Edit/Other menu
(Force BL call/Force BL jump) or the following two functions. Force BL instruction to be a jump @param ea: address of the BL instruction @return: 1-ok, 0-failed
"""
return Eval("ArmForceBLJump(0x%x)"%ea) def ArmForceBLCall(ea):
"""
Force BL instruction to be a call @param ea: address of the BL instruction @return: 1-ok, 0-failed
"""
return Eval("ArmForceBLCall(0x%x)"%ea) #--------------------------------------------------------------------------
# Compatibility macros:
def Compile(file): return CompileEx(file, 1)
def OpOffset(ea,base): return OpOff(ea,-1,base)
def OpNum(ea): return OpNumber(ea,-1)
def OpChar(ea): return OpChr(ea,-1)
def OpSegment(ea): return OpSeg(ea,-1)
def OpDec(ea): return OpDecimal(ea,-1)
def OpAlt1(ea, opstr): return OpAlt(ea, 0, opstr)
def OpAlt2(ea, opstr): return OpAlt(ea, 1, opstr)
def StringStp(x): return SetCharPrm(INF_ASCII_BREAK,x)
def LowVoids(x): return SetLongPrm(INF_LOW_OFF,x)
def HighVoids(x): return SetLongPrm(INF_HIGH_OFF,x)
def TailDepth(x): return SetLongPrm(INF_MAXREF,x)
def Analysis(x): return SetCharPrm(INF_AUTO,x)
def Tabs(x): return SetCharPrm(INF_ENTAB,x)
#def Comments(x): SetCharPrm(INF_CMTFLAG,((x) ? (SW_ALLCMT|GetCharPrm(INF_CMTFLAG)) : (~SW_ALLCMT&GetCharPrm(INF_CMTFLAG))))
def Voids(x): return SetCharPrm(INF_VOIDS,x)
def XrefShow(x): return SetCharPrm(INF_XREFNUM,x)
def Indent(x): return SetCharPrm(INF_INDENT,x)
def CmtIndent(x): return SetCharPrm(INF_COMMENT,x)
def AutoShow(x): return SetCharPrm(INF_SHOWAUTO,x)
def MinEA(): return GetLongPrm(INF_MIN_EA)
def MaxEA(): return GetLongPrm(INF_MAX_EA)
def BeginEA(): return GetLongPrm(INF_BEGIN_EA)
def set_start_cs(x): return SetLongPrm(INF_START_CS,x)
def set_start_ip(x): return SetLongPrm(INF_START_IP,x) def WriteMap(filepath):
return GenerateFile(OFILE_MAP, filepath, 0, BADADDR, GENFLG_MAPSEG|GENFLG_MAPNAME) def WriteTxt(filepath, ea1, ea2):
return GenerateFile(OFILE_ASM, filepath, ea1, ea2, 0) def WriteExe(filepath):
return GenerateFile(OFILE_EXE, filepath, 0, BADADDR, 0) UTP_STRUCT = idaapi.UTP_STRUCT
UTP_ENUM = idaapi.UTP_ENUM def BeginTypeUpdating(utp):
"""
Begin type updating. Use this function if you
plan to call AddEnumConst or similar type modification functions
many times or from inside a loop @param utp: one of UTP_xxxx consts
@return: None
"""
return idaapi.begin_type_updating(utp) def EndTypeUpdating(utp):
"""
End type updating. Refreshes the type system
at the end of type modification operations @param utp: one of idaapi.UTP_xxxx consts
@return: None
"""
return idaapi.end_type_updating(utp) def AddConst(enum_id, name,value): return AddConstEx(enum_id, name, value, idaapi.BADADDR)
def AddStruc(index, name): return AddStrucEx(index,name, 0)
def AddUnion(index, name): return AddStrucEx(index,name, 1)
def OpStroff(ea, n, strid): return OpStroffEx(ea,n,strid, 0)
def OpEnum(ea, n, enumid): return OpEnumEx(ea,n,enumid, 0)
def DelConst(constid, v, mask): return DelConstEx(constid, v, 0, mask)
def GetConst(constid, v, mask): return GetConstEx(constid, v, 0, mask)
def AnalyseArea(sEA, eEA): return AnalyzeArea(sEA,eEA) def MakeStruct(ea, name): return MakeStructEx(ea, -1, name)
def MakeCustomData(ea, size, dtid, fid): return MakeCustomDataEx(ea, size, dtid, fid)
def Name(ea): return NameEx(BADADDR, ea)
def GetTrueName(ea): return GetTrueNameEx(BADADDR, ea)
def MakeName(ea, name): return MakeNameEx(ea,name,SN_CHECK) #def GetFrame(ea): return GetFunctionAttr(ea, FUNCATTR_FRAME)
#def GetFrameLvarSize(ea): return GetFunctionAttr(ea, FUNCATTR_FRSIZE)
#def GetFrameRegsSize(ea): return GetFunctionAttr(ea, FUNCATTR_FRREGS)
#def GetFrameArgsSize(ea): return GetFunctionAttr(ea, FUNCATTR_ARGSIZE)
#def GetFunctionFlags(ea): return GetFunctionAttr(ea, FUNCATTR_FLAGS)
#def SetFunctionFlags(ea, flags): return SetFunctionAttr(ea, FUNCATTR_FLAGS, flags) #def SegStart(ea): return GetSegmentAttr(ea, SEGATTR_START)
#def SegEnd(ea): return GetSegmentAttr(ea, SEGATTR_END)
#def SetSegmentType(ea, type): return SetSegmentAttr(ea, SEGATTR_TYPE, type) def SegCreate(a1, a2, base, use32, align, comb): return AddSeg(a1, a2, base, use32, align, comb)
def SegDelete(ea, flags): return DelSeg(ea, flags)
def SegBounds(ea, startea, endea, flags): return SetSegBounds(ea, startea, endea, flags)
def SegRename(ea, name): return RenameSeg(ea, name)
def SegClass(ea, segclass): return SetSegClass(ea, segclass)
def SegAddrng(ea, bitness): return SetSegAddressing(ea, bitness)
def SegDefReg(ea, reg, value): return SetSegDefReg(ea, reg, value) def Comment(ea): return GetCommentEx(ea, 0)
"""Returns the regular comment or None""" def RptCmt(ea): return GetCommentEx(ea, 1)
"""Returns the repeatable comment or None""" def SetReg(ea, reg, value): return SetRegEx(ea, reg, value, SR_user) # Convenience functions:
def here(): return ScreenEA()
def isEnabled(ea): return (PrevAddr(ea+1)==ea) # Obsolete segdel macros:
SEGDEL_PERM = 0x0001 # permanently, i.e. disable addresses
SEGDEL_KEEP = 0x0002 # keep information (code & data, etc)
SEGDEL_SILENT = 0x0004 # be silent ARGV = []
"""The command line arguments passed to IDA via the -S switch.""" # END OF IDC COMPATIBILY CODE
color xml arm相关的更多相关文章
- XML的相关基础知识分享
XML和Json是两种最常用的在网络中数据传输的数据序列化格式,随着时代的变迁,XML序列化用于网络传输也逐渐被Json取代,前几天,单位系统集成开发对接接口时,发现大部分都用的WebService技 ...
- color.xml
写控件的时候经常会遇到颜色选择问题,下面贴出常用颜色表示,方便选择. <?xml version="1.0" encoding="utf-8"?>& ...
- Android常用的颜色列表 color.xml
转自:http://blog.csdn.net/libaineu2004/article/details/41548313 <?xml version="1.0" encod ...
- android颜色color.xml设置
XML Code 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...
- [转帖]ARM 相关内容
ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57 http://www.myir-tech.com/resource/448.asp ...
- XML的相关基础知识分享(二)
前面我们讲了一下XML相关的基础知识(一),下面我们在加深一下,看一下XML高级方面. 一.命名空间 1.命名冲突 XML命名空间提供避免元素冲突的方法. 命名冲突:在XML中,元素名称是由开发者定义 ...
- maven的pom.xml配置文件相关依赖jar包
<!--声明变量--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sou ...
- 如何把android中布局文件(.xml)与相关的类(.java)进行关联?
eg:把一个布局文件名为page1.xml与MainActivity.java(工程自动生成)进行 1.在存放使用资源的res文件夹下的layout文件夹内新建一个XML布局文件,如命名为:page1 ...
- iOS中XML的相关知识
1.什么是XML “当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴.有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不 ...
随机推荐
- org.hibernate.HibernateException: connnection proxy not usable after transaction completion
今天yuan男神的程序报了这个错, getHibernateTemplate().saveOrUpdate(obj); getHibernateTemplate().flush(); getHiber ...
- Java代理和动态代理机制分析和应用
本博文中项目代码已开源下载地址:GitHub Java代理和动态代理机制分析和应用 概述 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委托类预处理消息 ...
- 待选框、目标框select项目左右移动
效果: 可以用一般的select multiple="multiple".自己写jq定义左移.右移.全部左移.全部右移.保存submit后端来操作select属性,方法参考html ...
- [archlinux] 迁移T7从T460s到T470
这已经不是第一次做OS的迁移了,T7早已经迁移过多台设备了.所以,其实只需要如下三步: 1. rsync 我一直有全系统备份的习惯,T7一直会不定期的全系统rsync到Tstation上面去.所以我 ...
- [daily] 在CentOS7中使用 sanitizer-address 发现内存问题 / CentOS7使用SCLo软件源安装devtoolset软件
接前文: [daily] 内存越界的分析与定位 如前文提及, 使用sanitizer-address 可以有效的检查程序的内存问题. 当时在CentOS7中,虽然也可以使用,但是却遇到如下两个问题: ...
- Python多线程中阻塞(join)与锁(Lock)的使用误区
参考资料:https://blog.csdn.net/cd_xuyue/article/details/52052893 1使用两个循环分别处理start和join函数.即可实现并发. threads ...
- 20165225《Java程序设计》第八周学习总结
20165225<Java程序设计>第八周学习总结 1.视频与课本中的学习: 第十二章学习总结 1.继承Thread类创建线程,程序中如果想要获取当前线程对象可以使用方法:Thread.c ...
- expect 自动完成交互式程序神器
expect 安装 yum -y install expect # Centossudo apt-get install expect # Ubuntu 作用:自动填写交互式程序的值. 原理:通过读取 ...
- 解读EXPLAIN执行计划中的key_len(转)
原文:http://imysql.com/2015/10/20/mysql-faq-key-len-in-explain.shtml 导读 EXPLAIN中的key_len一列表示什么意思,该如何解读 ...
- zabbix agentd安装
一.Linux客户端1.创建zabbix用户 groupadd zabbix useradd -g zabbix -M -s /sbin/nologin zabbix 2.解压agent包 zabbi ...