Giter Club home page Giter Club logo

arizvisa / syringe Goto Github PK

View Code? Open in Web Editor NEW
36.0 6.0 8.0 7.7 MB

Random tools and things for creating+injecting complex organisms into a process on both the posix and windows platforms. Includes support for decomposing a ton of file formats and in-memory data structures. Just a container repository for now until I finally separate the modules into their own individual projects.

License: BSD 2-Clause "Simplified" License

Python 98.91% XQuery 0.04% Perl 0.17% XSLT 0.20% Assembly 0.43% C 0.21% Makefile 0.02% HTML 0.03% Shell 0.01%
python pecoff elf linking loading windows-heap file-format-templates

syringe's People

Contributors

arizvisa 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

syringe's Issues

Python2 <-> Python3 compatibility?

Talking to myself....Singing to myself...Wooooooo!

Please fix the following issues for Python3:

  • Parenthesized Prints
  • New-Style Exceptions
  • Map and Zip Iterables
  • Dictionary Changes
  • Strings versus Bytes
  • Array.Array module deprecations
  • Comparisons (Hashes)
  • Comparisons (Equivalency)
  • Integer Division
  • Package Imports
  • ByteCode Generation
  • Serialization Magic Tricks
  • Parameterized Packing/Unpacking
  • Class-Object Attributes

Representing code types for arbitrary architectures and calling conventions in ptypes?

Would be cool to represent code and pointers to code with a native code type in ptypes.

This way a user wouldn't need to manually transform the semantics of a ptype instance into a way to execute it. The downside of this is that depending on how it's implemented, we could end up forcing the user into dispatching to their referenced code with whatever methodology we choose.

Ideally we want to avoid pigeon-holing the user so that users can interpret a code type using whatever implementation they choose. This way we can keep the flexibility of ptypes. We'd also want to dumb down the interface so that users can interpret the code in whatever context is relevant to them (running in the current process, remote process, in an emulator, etc.) and also allow them to describe the calling convention of whatever it is that they're trying to interpret.

There was a preliminary implementation of this under the ptypes.code module that tied it to the intel architecture using the udis package and the table-based instruction length disassembler that went into the ia32 library module. It ended up not being used for anything but shellcode, however, due to the reasons that were just mentioned. I'd like the interface for disassemblling the type and interpreting it to be exposed to the user in some global way rather than requiring the user to describe it specific to the type during its creation. Maybe something similar to the byteorder interface that is used for both integrals and binary types.

Deprecate the break_on_zero_sized_element configuration option

This is just a placeholder to completely deprecate the break_on_zero_sized_element configuration option which is used to specify whether to user wants to include zero-sized array elements for any kind of terminated array. Allowing zero-sized array elements for terminated arrays allows for an infinite recursion issue due to the existence of arrays that are bounded by size.

Refactor the ptype.definition class from the ptypes.type library module.

The ptype.definition class needs to be refactored so that it's easier for an implementor to influence the way that it works. This way one can easily modify it to support more complex type lookup schemes than how ptype.definition was originally intended. At the moment, the internal methods, __set__, __get__, and __has__ are the only ones that can be used by an implementor. If this functionality is expanded by allowing them to take arbitrary parameters and implementing methods that can be used to lookup within the class, we can avoid the implementor having to completely implement their own custom definition to support their needs.

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.