Git Product home page Git Product logo

ripr's People

Contributors

bkerler avatar pbiernat avatar sheriffsparks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ripr's Issues

Post Shmoocon 2017 slides?

Saw your talk at Shmoocon 2017, would be great to have the slides as reference, can you post them in a docs/ folder in this repo, or somewhere else on the web and link it in the README.md. Thanks!

cool project!

looks like a very interesting tool! but will you provide the project description? now it is "No description or website provided."

keep it up, cheers.

cli only option

what would be the best way to launch from cli using binja apis, but without the qt ?

no macos support?

It looks like MacOS ("darwin") support was excluded in the platforms list. Is that intentional? Is this blocking on something else?

Binary Ninja Dev channel compatibility

I'm getting the following error in 1.1.1461-dev:

Traceback (most recent call last):
  File "/path/to/.binaryninja/plugins/ripr/__init__.py", line 18, in <module>
    ui = gui.riprWidget()
  File "/path/to/.binaryninja/plugins/ripr/gui.py", line 92, in __init__
    super(riprWidget, self).__init__('ripr')
  File "/path/to/.binaryninja/plugins/ripr/defunct/widgets.py", line 80, in __init__
    self._core = instance()
  File "/path/to/.binaryninja/plugins/ripr/defunct/__init__.py", line 37, in instance
    dock = BinjaDockWidget()
  File "/path/to/.binaryninja/plugins/ripr/defunct/widgets.py", line 38, in __init__
    self._tool_menu = [x for x in self._main_window.menuWidget().children() if x.__class__ is QtWidgets.QMenu and x.title() == u'&Tools'][0]
AttributeError: 'NoneType' object has no attribute 'children'

Stable loads fine. I guess this is a result of an API change, but didn't have the time to investigate further...

guess parameter types?

In cases where you're passing arguments you can leverage BN's existing type information to pass something a bit more appropriate than 0 as an argument. Placeholder issue for me to submit a PR against

Error when packaging a function

Hey, I love your plugin, though it fails to package a little function.
untitled
untitled2

The file is from an old CTF, and the function was CRC32 I think.
Here is the binary if you want to take a look at it: D17.zip

Any idea why it fails?

requirements.txt

The BN plugin manager will now automatically install dependencies specified in a requirements.txt.

It looks like the only dependency needed there is unicorn maybe with a pinned version if one has been better tested?

new unicorn takes bytes?

I played with ripr on my live stream this evening for a bit and ran into an issue where the mem_write calls second arguments needed to be <bytes> instead of a string.

This is only necessary when using the option to pass arguments I believe, and is a trivial fix, I'll submit a PR shortly.

Suggestion: Debug prints for generated code

While implementing #13 I noticed that it would be useful to add some debug prints to the code generated by ripr by default. Specifically:

  • Printing emulator context (CPU registers, memory pointed by them?, stack frames?) and offending instruction when an unhandled exception happens.
  • Adding a default implementation showing a warning to hook function stubs to see if the emulated code hits not implemented hook functions.

I think both of these can be done by adding pure static code (handling different architectures may need some more complex logic for the first point) and would make learning the usage of the tool and debugging the generated code much easier.

I know that debug prints are not very elegant, but I think they are just good enough in this case.

Can seem to find a solution to this i am on debian

Traceback (most recent call last):
File "/home/zglozman/.binaryninja/plugins/ripr/init.py", line 7, in
from analysis_engine import *
File "/home/zglozman/.binaryninja/plugins/ripr/analysis_engine.py", line 13, in
import gui
File "/home/zglozman/.binaryninja/plugins/ripr/gui.py", line 8, in
from PyQt5 import QtWidgets, QtGui, QtCore
ImportError: /home/zglozman/binaryninja/libQt5Core.so.5: version `Qt_5.7' not found (required by /usr/lib/python2.7/dist-packages/PyQt5/QtWidgets.x86_64-linux-gnu.so)
Python plugin 'ripr' could not be loaded

Python3

Hello,

since binaryninja is using python3 soon, is it possible that you port your plugin to python3?

Invalid memory mapping (UC_ERR_MAP)

Hello,

From an so library :
ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

I got unicorn.unicorn.UcError: Invalid memory mapping (UC_ERR_MAP)
self.mu = Uc(UC_ARCH_X86, UC_MODE_32)

   self.mu.mem_map(0x12000,0x4000)
   self.mu.mem_map(0x18000,0x4000)
   self.mu.mem_map(0x1000 * 1, 0x1000)

is there some hints ?

Binary Ninja log: "Python plugin 'ripr' could not be loaded"

Has ripr been tested on MacOS? I have another plugin (binja-retdec) that works, and I've installed ripr the same way, but ripr fails to load. Let me know if there is a way to debug this further.

$ pwd
/Users/myname/Library/Application Support/Binary Ninja/plugins
myname-MacBook-Pro:plugins myname$ tree
.
├── binja-retdec
│   ├── LICENSE
│   ├── LICENSE-RetDec
│   ├── README.md
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── api_key
│   ├── plugin.json
│   ├── retdec.py
│   ├── retdec.pyc
│   ├── utils.py
│   └── utils.pyc
└── ripr
    ├── __init__.py
    ├── __init__.pyc
    ├── analysis_engine.py
    ├── analysis_engine.pyc
    ├── codegen.py
    ├── defunct
    │   ├── __init__.py
    │   └── widgets.py
    ├── dependency.py
    ├── gui.py
    ├── gui.pyc
    └── packager.py

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.