Commit Graph

49 Commits

Author SHA1 Message Date
Camille Mougey 5f1a1e6e4c Analysis: Introduce DependencyGraph, computing dependencies of elements
The dependencies are computed through a list of blocs (IRA).
APIs `.get*` return an iterator on DiGraph(DependencyNode). Each DiGraph
contains only relevant DependencyNode, which stand for an element at
a given line in a given basic block. That way, outputs contain each elements
involved in the target value computation.

Different outputs stand for different path through blocks (loop, ...).

This algorithm has been co-developped with @serpillere.
2015-02-20 19:30:49 +01:00
Camille Mougey d2cc082ba5 PyLint: Import errors, pointless statements (fds), bad indentation 2015-02-18 20:42:54 +01:00
Pierre LALET a9864c802f analysis: replace wildcard imports 2015-02-18 10:45:26 +01:00
Pierre LALET 0c4dde0602 Use wrapper named_arguments to log function calls 2015-02-17 12:50:05 +01:00
Camille Mougey 40b340af36 PyLint: Debugging: Invalid name 2015-02-16 15:13:42 +01:00
Camille Mougey 8d581fe43c PyLint: Remove unused-imports
miasm2/jitter/jitload.py:4: [W0611(unused-import), ] Unused import asmbloc
miasm2/jitter/jitload.py:3: [W0611(unused-import), ] Unused import os
miasm2/jitter/loader/elf.py:4: [W0611(unused-import), ] Unused import pe
miasm2/ir/ir.py:27: [W0611(unused-import), ] Unused import DiGraph
miasm2/ir/translators/z3_ir.py:6: [W0611(unused-import), ] Unused import m2_expr
miasm2/core/parse_asm.py:5: [W0611(unused-import), ] Unused import struct
miasm2/analysis/sandbox.py:8: [W0611(unused-import), ] Unused import libimp
miasm2/analysis/sandbox.py:1: [W0611(unused-import), ] Unused import os
miasm2/analysis/sandbox.py:5: [W0611(unused-import), ] Unused import win_api_x86_32
miasm2/analysis/sandbox.py:1: [W0611(unused-import), ] Unused import sys
miasm2/expression/simplifications_cond.py:17: [W0611(unused-import), ] Unused import itertools
miasm2/arch/arm/arch.py:5: [W0611(unused-import), ] Unused import pm
miasm2/arch/x86/sem.py:23: [W0611(unused-import), ] Unused import expr_is_int_or_label
miasm2/arch/mips32/arch.py:12: [W0611(unused-import), ] Unused import pm
miasm2/arch/mips32/disasm.py:1: [W0611(unused-import), ] Unused import asm_constraint
2015-02-16 12:21:18 +01:00
Fabrice Desclaux 17fdd09938 Sandbox: typo 2015-02-13 14:21:57 +01:00
Fabrice Desclaux 1032224157 Analysis/Sandbox: add sanbox win x86_64 2015-02-13 13:33:10 +01:00
Camille Mougey d80ab06b15 Merge pull request #59 from serpilliere/sandbox_quiet
Sandbox: quiet logs
2015-02-10 13:32:59 +01:00
Fabrice Desclaux 756c89d8ff Sandbox: quiet logs 2015-02-10 10:46:38 +01:00
Fabrice Desclaux b20bbe9ba9 Analysis/Sandbox: use os dependant method in custom sandboxes 2015-01-29 09:21:25 +01:00
Camille Mougey 9bec8ef124 Analysis/Machine: Export base_expr 2015-01-23 17:24:43 +01:00
Camille Mougey c9657d8b5e Loader/PE: Update vm_load_pe_lib* APIs to take a VmMngr instance in input 2014-12-24 18:50:42 +01:00
Camille Mougey aa9145fca6 Analysis: Update vm_loads calls, avoid reimplemeting vm_load_pe_libs 2014-12-20 17:44:23 +01:00
Camille Mougey 915a3e1ae9 SandboxLinux: entry_point was inexistant, options.address was ignored 2014-12-09 17:15:10 +01:00
Fabrice Desclaux 3d42eb7ae4 Loader/libimp: update api 2014-12-08 19:24:07 +01:00
Camille Mougey dece74308a Sandbox: Fix debugging option 2014-12-03 18:01:58 +01:00
Fabrice Desclaux 05a333fe41 Jitter: update API 2014-12-03 11:26:45 +01:00
Fabrice Desclaux fb593e870b Machine: refactor properties. 2014-11-17 10:39:23 +01:00
Fabrice Desclaux 55784b25d9 Sandbox: log function calls by default; add -q option to disable it. 2014-11-17 10:33:33 +01:00
Fabrice Desclaux 2be12013e7 Machine: add jit/arch log properties 2014-11-17 10:32:21 +01:00
Camille Mougey d224bd8b0e Container: Refactor in class and subclass for PE, ELF and Unknown 2014-11-03 19:11:27 +01:00
Camille Mougey bf08353e23 Container: update API with full words 2014-11-03 18:05:49 +01:00
Camille Mougey 1c6b959a3a Container: Fix import, refactor file reading 2014-11-03 18:04:20 +01:00
Camille Mougey 7d0bdbcafd Container: Refactor and comment 2014-11-03 17:38:25 +01:00
Fabrice Desclaux b104561484 merge 2014-10-22 15:26:40 +02:00
ajax b6a1d1e121 Machine: Update available machine list 2014-10-21 17:30:04 +02:00
Fabrice Desclaux 13b47e5d7a sandbox: missing import (tx to N.Pourcelot) 2014-10-16 16:53:11 +02:00
Fabrice Desclaux 5de25f4253 Sandbox: fix address as argument 2014-10-16 15:05:39 +02:00
Fabrice Desclaux e5ad0b4553 Reg test: add arm jit little/big endian 2014-10-09 17:47:22 +02:00
Fabrice Desclaux 7101a6d9d5 Arch/jit: add endianess support jitters 2014-10-09 17:04:36 +02:00
Fabrice Desclaux 12bedca7aa Sandbox: add arm arch 2014-10-07 19:43:18 +02:00
Fabrice Desclaux 18ab294bf5 Move os_dep out of the jitter module 2014-10-07 18:41:37 +02:00
Fabrice Desclaux 809d3738bb Remove vm_ prefix /!\ API MODIF
The jitter cpu/vm modules used an unecessary vm_ prefix for various api.

jitter.cpu.vm_get_gpreg() => jitter.cpu.get_gpreg()
jitter.vm.vm_get_mem... => jitter.vm.get_mem...
2014-10-07 17:44:50 +02:00
ajax ecb92eb843 Sandbox: Pass arguments to parser init 2014-10-02 18:01:25 +02:00
Fabrice Desclaux cf326cec07 Analysis: add sanbdox wrapper 2014-10-02 14:23:30 +02:00
Fabrice Desclaux 6e09df71a3 Modify irbloc destination mecanism. Rework API in consequence.
Fat patch here: some API have changed.

Each irbloc now affects a special "IRDst" register which is used to
describe the destination irbloc. It allows simple description of
architectures using delay slots. Architectures semantic and tcc/python
jitter are modified in consequence. LLVM jitter is disabled for now,
but should be patch soon.
2014-09-05 11:30:05 +02:00
Fabrice Desclaux 82863e884a binary: suppr verbose messages 2014-09-01 13:48:45 +02:00
Fabrice Desclaux acd7a06154 analysis: add container for elf/pe/str manipulation 2014-08-29 16:03:17 +02:00
serpilliere 22c0cc1ae2 Jitter: add mips32l jit 2014-08-22 16:13:53 +02:00
serpilliere 2f533af6cf msp430: move jit 2014-08-21 13:34:17 +02:00
serpilliere cc2b6e079a jit: move code into arch directory 2014-08-21 11:09:24 +02:00
serpilliere 5763236891 mips32: little/big endian is now an attrib 2014-08-21 09:49:01 +02:00
CM e79b01b21e Machine: Add wrapper over gdbserver 2014-08-20 15:53:02 +02:00
CM 852d73e053 Machine: add wrapper over jitter 2014-08-20 15:48:16 +02:00
CM 2b047dbc10 Machine: Add an abstract machine wrapper 2014-08-20 15:21:22 +02:00
ajax d249df3798 Gdbserver: assert EIP with jitter PC 2014-06-04 21:40:08 +02:00
ajax 1ab973f6ed Debugging: fix watchmem second arg 2014-06-04 21:38:06 +02:00
serpilliere ed5c3668cc Miasm v2
* API has changed, so old scripts need updates
* See example for API usage
* Use tcc or llvm for jit emulation
* Go to test and run test_all.py to check install

Enjoy !
2014-06-03 10:27:56 +02:00