#--------------------------------------------------------------------------
# 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相关的更多相关文章

  1. XML的相关基础知识分享

    XML和Json是两种最常用的在网络中数据传输的数据序列化格式,随着时代的变迁,XML序列化用于网络传输也逐渐被Json取代,前几天,单位系统集成开发对接接口时,发现大部分都用的WebService技 ...

  2. color.xml

    写控件的时候经常会遇到颜色选择问题,下面贴出常用颜色表示,方便选择. <?xml version="1.0" encoding="utf-8"?>& ...

  3. Android常用的颜色列表 color.xml

    转自:http://blog.csdn.net/libaineu2004/article/details/41548313 <?xml version="1.0" encod ...

  4. android颜色color.xml设置

     XML Code  12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...

  5. [转帖]ARM 相关内容

    ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57 http://www.myir-tech.com/resource/448.asp ...

  6. XML的相关基础知识分享(二)

    前面我们讲了一下XML相关的基础知识(一),下面我们在加深一下,看一下XML高级方面. 一.命名空间 1.命名冲突 XML命名空间提供避免元素冲突的方法. 命名冲突:在XML中,元素名称是由开发者定义 ...

  7. maven的pom.xml配置文件相关依赖jar包

    <!--声明变量--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sou ...

  8. 如何把android中布局文件(.xml)与相关的类(.java)进行关联?

    eg:把一个布局文件名为page1.xml与MainActivity.java(工程自动生成)进行 1.在存放使用资源的res文件夹下的layout文件夹内新建一个XML布局文件,如命名为:page1 ...

  9. iOS中XML的相关知识

    1.什么是XML “当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴.有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不 ...

随机推荐

  1. cmd识别不了mysql命令

    问题现象:安装配置过MySQL和环境变量,当时用的好好的,过了几天再试发现cmd识别不了了: 之前maven的mvn命令也遇到过这个问题. 原因:win10中配成这个样子,重启之后会时效: 解决方法: ...

  2. CCPC-Wannafly Winter Camp Day7 D---二次函数【数论】【构造】

    题意: 有三个二次函数,分别是$x^2 + a_1x + b_1$, $x^2 + a_2x + b_2$, $x^2 + a_3x + b_3$ 现在要找三个整数$x_1, x_2, x_3$, 使 ...

  3. SQL命令中的case...when...then...else...end条件查询

    select b.XH, b.ZBXH, a.SJKSMC, a.JCRQ, a.JYRQ, a.JCJBMC, a.CYZMC,                               b.CY ...

  4. io 流操作hdfs

    hdfs 文件上传 本地   -------->    文件系统对象   -------->    hdfs 文件系统 输入流                                ...

  5. [No0000144]深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing)理解堆与栈1/4

    前言   虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC).另外,了解内存管理可以帮助我们理解在每一个程 ...

  6. Some untracked working tree files would be overwritten by checkout. Please move or remove them before you can checkout. View them

    Some untracked working tree files would be overwritten by checkout. Please move or remove them befor ...

  7. JQuery中数组的创建与使用

    一.创建数组的方式: 1.定义并赋值 var str = ['java', 'php', 'c++', 'c#', 'perl', 'vb', 'html', 'css']; 2.用{}定义后赋值: ...

  8. IndentationError: expected an indented block 在继承中出现的问题:未完

    1. class Foo(object): def __init__(self,name,price,period): self.name=name self.price=price self.per ...

  9. 转:centos7/rhel7安装较高版本ruby2.2/2.3/2.4+

    centos7/rhel7安装较高版本ruby2.2/2.3/2.4+   环境需求:  在Centos7.3中,通过yum安装ruby的版本是2.0.0,但是如果有些应用需要高版本的ruby环境,比 ...

  10. Gson使用技巧

    1. CharMatcher String serviceUrl = CharMatcher.is('/').trimTrailingFrom(ConfigHelper.metaServiceUrl( ...