[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/pnfsoftware/jeb-samplecode/master/scripts/JavaASTDemo.py [Back]  [Original]

#?description=Show how to navigate and dump Java AST trees
#?shortcut=
from com.pnfsoftware.jeb.client.api import IScript
from com.pnfsoftware.jeb.core.units.code.java import IJavaSourceUnit, IJavaClass
"""
Sample script for JEB Decompiler.
"""
class JavaASTDemo(IScript):
  def run(self, ctx):
    prj = ctx.getMainProject()
    assert prj, 'Need a project'

    for unit in prj.findUnits(IJavaSourceUnit):
      elt = unit.getASTElement()
      if isinstance(elt, IJavaClass):
        for m in elt.getMethods():
          self.displayTree(m)

  def displayTree(self, e, level=0):
    print('%s%s @ 0x%X' % (level*'  ', e.getElementType(), e.getPhysicalOffset()))
    if e:
      elts = e.getSubElements()
      for e in elts:
        self.displayTree(e, level+1)

Web Proxy Viewer  |  New URL  |  Original Page