summaryrefslogtreecommitdiff
path: root/plugins/python
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/python')
-rw-r--r--plugins/python/Makefile.am2
-rw-r--r--plugins/python/apkfiles/apkfiles.py6
-rw-r--r--plugins/python/samples/Makefile.am9
-rw-r--r--plugins/python/samples/__init__.py2
-rw-r--r--plugins/python/samples/basic_blocks.py83
-rw-r--r--plugins/python/samples/demo.py30
6 files changed, 4 insertions, 128 deletions
diff --git a/plugins/python/Makefile.am b/plugins/python/Makefile.am
index 35f15eb..efbb704 100644
--- a/plugins/python/Makefile.am
+++ b/plugins/python/Makefile.am
@@ -1,2 +1,2 @@
-SUBDIRS = apkfiles samples
+SUBDIRS = apkfiles
diff --git a/plugins/python/apkfiles/apkfiles.py b/plugins/python/apkfiles/apkfiles.py
index b85b0c8..c45f8c9 100644
--- a/plugins/python/apkfiles/apkfiles.py
+++ b/plugins/python/apkfiles/apkfiles.py
@@ -14,7 +14,7 @@ class ApkFiles(PluginModule):
desc = {
- 'name' : 'Welcome',
+ 'name' : 'ApkFiles',
'desc' : 'Add suppport for the APK file format',
'version' : '0.1',
@@ -25,8 +25,8 @@ class ApkFiles(PluginModule):
return desc
- def init(self, ref):
- """Initialise l'extension."""
+ def init(self):
+ """Initialize the plugin."""
return True
diff --git a/plugins/python/samples/Makefile.am b/plugins/python/samples/Makefile.am
deleted file mode 100644
index 816868c..0000000
--- a/plugins/python/samples/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-
-samplesdir = $(pluginsdir)/python/apkfiles
-
-samples_DATA = \
- __init__.py \
- basic_blocks.py \
- demo.py
-
-EXTRA_DIST = $(samples_DATA)
diff --git a/plugins/python/samples/__init__.py b/plugins/python/samples/__init__.py
deleted file mode 100644
index 7186d48..0000000
--- a/plugins/python/samples/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-
-from demo import Demo as samples
diff --git a/plugins/python/samples/basic_blocks.py b/plugins/python/samples/basic_blocks.py
deleted file mode 100644
index 90f3a2c..0000000
--- a/plugins/python/samples/basic_blocks.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-import re
-from pychrysalide.analysis import InstrBlock
-from pychrysalide.analysis.blocks import FlowBlock
-
-
-class VisitIndent:
-
- def __init__(self):
- self.offset = 0
-
- def get_padding(self):
- return ' ' * self.offset
-
- def inc_offset(self):
- self.offset = self.offset + 1
-
- def dec_offset(self):
- self.offset = self.offset - 1
-
-
-def get_c_address_of_pygobject(obj):
- """Parse the string representation of a given object and return its memory address."""
-
- ret = re.match('.*(0x[0-9a-f]+)\)>', str(obj), re.I)
-
- if ret == None:
- result = '???'
- else:
- result = ret.group(1)
-
- return result
-
-
-def visit_block(block, order, indent):
- """Describe each visited basic block."""
-
- padding = indent.get_padding()
- addr = get_c_address_of_pygobject(block)
-
- if isinstance(block, FlowBlock):
-
- start, end = block.boundary_addresses
- rank = block.rank
- links = block.get_links_block()
-
- if links != None:
- laddr = get_c_address_of_pygobject(links)
- print '%s- flow %s (rank=%d) : 0x%08lx -> 0x%08lx (links = %s)' \
- % (padding, addr, rank, start, end, laddr)
-
- else:
- print '%s- flow %s (rank=%d) : 0x%08lx -> 0x%08lx' \
- % (padding, addr, rank, start, end)
-
- else:
-
- if order != InstrBlock.BVO_OUT:
-
- print '%s- virtual %s' % (padding, addr)
- indent.inc_offset()
-
- else:
- indent.dec_offset()
-
- return True
-
-
-def show_basic_blocks(binary):
- """Print the tree of all basic blocks for each routine of a given binary."""
-
- fmt = binary.get_format()
- indent = VisitIndent()
-
- for r in fmt.routines:
-
- print '==== %s ====' % str(r)
-
- r.basic_blocks.visit(visit_block, indent)
-
- print
diff --git a/plugins/python/samples/demo.py b/plugins/python/samples/demo.py
deleted file mode 100644
index c406231..0000000
--- a/plugins/python/samples/demo.py
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-from pychrysalide import Plugin
-from pychrysalide.gui.panels import LogPanel
-
-from basic_blocks import show_basic_blocks
-
-
-class Demo(Plugin):
- """Demonstration plugin."""
-
- def init(self, ref):
- """Initialize the plugin."""
-
- LogPanel.log_message(LogPanel.LMT_WARNING, 'Welcome to the demo Python plugin !')
-
- return True
-
-
- def get_action(self):
- """Register the plugin for given actions."""
-
- return Plugin.PGA_BINARY_GROUPED
-
-
- def execute_on_binary(self, binary, action):
- """Process registered actions."""
-
- show_basic_blocks(binary)