Skip to content

Commit

Permalink
Merge branch 'cea-sec:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
tly000 authored Aug 25, 2024
2 parents 6192b6b + cbc722e commit c092ec7
Show file tree
Hide file tree
Showing 83 changed files with 2,560 additions and 317 deletions.
12 changes: 0 additions & 12 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,6 @@ clone_folder: c:\projects\miasm

environment:
matrix:
- platform: Win32
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
PLATFORM_TOOLSET: v141
PYTHON: c:\Python27
PYTHON_VERSION: "2.7.x"

- platform: x64
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
PLATFORM_TOOLSET: v141
PYTHON: c:\Python27-x64
PYTHON_VERSION: "2.7.x"

- platform: Win32
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
PLATFORM_TOOLSET: v141
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['2.7', '3.6', '3.8']
python-version: ['3.8', '3.10']

steps:

- name: Git checkout
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Use Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

Expand All @@ -25,12 +25,12 @@ jobs:
- name: Install requirements
run: pip install -r requirements.txt

- name: Install llvm 11 (llvmlite compatible)
run: sudo apt-get install llvm-11

- name: Install optional requirements
run: pip install -r optional_requirements.txt

- name: Install llvm
run: sudo apt-get install llvm

- name: Install Miasm
uses: ./.github/actions/install

Expand Down
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
# Build directory
/build/*
dist/
sdists/
# Emacs files
*~
# Compiled python files
*\.pyc
__pycache__/
*.py[cod]
# Generated files
*.egg*
**.dot
**.so
VERSION
# Virtual environments
venv*/
.env/
.venv*/
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,61 @@

## [Unreleased]

## 0.1.5 - 2023-04-18
### Fixed
- header files for pip

## 0.1.4 - 2023-04-04
### Added
- Support minimal PE/TLS
- Added docstring by @williballenthin
- Added remove_memory_page api by @carolineLe
- Added minimalist linux env by @Frky
- Documentation of expression
- Documentation translation by @carolineLe
- EXCEPT_SYSCALL by @Te-k
- Use int(expr) instead of expr.arg.arg
- IDAPython 7.4 porting by @nofiv
- Fixed jitter on Windows by @jbgalet
- Add trace api by @carolineLe
- Add LocationDB documentation
- Add Lifter documentation
- Update to ida 7.x by @su-vikas
- CI for python 3.10

### Fixed
- Str/bytes api by @WilliamBruneau
- Fix pe loader by @carolineLe
- Fix VirtualProtect when splitting access rights by @carolineLe
- Bug in ms x86-64 calling convention by @Frky
- Clean SSA api
- fix MIPS/PPC/ARM by @IridiumXOR
- Fix win/seh ListEntries by @carolineLe
- Fix propagation expression algorithm
- Replace api jitter.set_win_str by set_win_str(jitter...)
- Fix Win api by @carolineLe
- Llvm jitter by @aguinet
- Fix Win api by @icecr4ck
- Fix Win api by @Frky
- Fix BitField by @w4kfu
- Fix pe loader by @Ana06
- Ida examples
- Renamed *arch lifters
- Docker by @clslgrnc
- REX prefix by @KKomarov
- Fix winapi by @tdrrdt
- pyparsing dependency/setup.py by @P403n1x87
- pop reg sp by @0xeb
- Fix collections by @williambruneau
- call back arm by @0xling
- documentation by @CLOVIS-AI
- many fixes by @CLOVIS-AI
- really manu fixes by @CLOVIS-AI

### Removed
- asm_raw/asm_bloc/asm_bloc_bad old class (deprecated)
- python 2.7 by @mrexodia

## 0.1.3 - 2019-12-12
### Added
- Miasm can be installed with PIP (https://pypi.org/project/miasm/)
Expand Down
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ instance to emulate library functions effects.
Documentation
=============

TODO
Some documentation ressources are available in the [doc](doc) folder.

An auto-generated documentation is available:
* [Doxygen](http://miasm.re/miasm_doxygen)
Expand Down Expand Up @@ -583,7 +583,14 @@ Miasm comes with a set of regression tests. To run all of them:

```pycon
cd miasm_directory/test

# Run tests using our own test runner
python test_all.py

# Run tests using standard frameworks (slower, require 'parameterized')
python -m unittest test_all.py # sequential, requires 'unittest'
python -m pytest test_all.py # sequential, requires 'pytest'
python -m pytest -n auto test_all.py # parallel, requires 'pytest' and 'pytest-xdist'
```

Some options can be specified:
Expand Down
46 changes: 46 additions & 0 deletions doc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Documentation

Miasm documentation is organized around the following elements:

- code comments, as:
```python
>>> from miasm.core.locationdb import LocationDB
>>> help(LocationDB)

class LocationDB(builtins.object)
| LocationDB is a "database" of information associated to location.
|
| An entry in a LocationDB is uniquely identified with a LocKey.
| Additional information which can be associated with a LocKey are:
| - an offset (uniq per LocationDB)
| - several names (each are uniqs per LocationDB)
|
| As a schema:
| loc_key 1 <-> 0..1 offset
| 1 <-> 0..n name
|
| >>> loc_db = LocationDB()
| # Add a location with no additional information
| >>> loc_key1 = loc_db.add_location()
| # Add a location with an offset
| >>> loc_key2 = loc_db.add_location(offset=0x1234)
| # Add a location with several names
| >>> loc_key3 = loc_db.add_location(name="first_name")
| >>> loc_db.add_location_name(loc_key3, "second_name")
| # Associate an offset to an existing location
| >>> loc_db.set_location_offset(loc_key3, 0x5678)
| # Remove a name from an existing location
| >>> loc_db.remove_location_name(loc_key3, "second_name")
...
```

- examples for the main features (see `/example`)
- interactive tutorials (IPython Notebooks) on the following topics:
- Emulation API: [notebook](jitter/jitter.ipynb)
- Miasm's IR bricks known as `Expr`: [notebook](expression/expression.ipynb)
- Lifting from assembly to IR: [notebook](ir/lift.ipynb)
- `LocationDB` usage, the database for locations: [notebook](locationdb/locationdb.ipynb)
- more complex examples through blog posts on [miasm.re](https://miasm.re)
- cheatsheets:
- `Sandbox` and associated emulation options: [cheatsheet](cheatsheets/reminder_sandbox.pdf)
- Disassembler, lifter and associated structures: [cheatsheet](cheatsheets/reminder_disassembler.pdf)
Loading

0 comments on commit c092ec7

Please sign in to comment.