sushant94 / rune Goto Github PK
View Code? Open in Web Editor NEWrune - radare2 based symbolic emulator
License: Apache License 2.0
rune - radare2 based symbolic emulator
License: Apache License 2.0
Add support for symbolic memory access in rune.
One simple way to solve this issue is to solve for the symbolic variable and spawn an instance of rune to work on each of these solutions.
write implementation for RuneContext
does not check if the size of destination and source are correct. This will lead to generation of invalid constraints which cannot be solved by the solver. A simple example where this can occus is in x86 instruction such as:
mov rax, ax
Similar to define_const that is currently present but for defining symbolic variables
Check for path feasibility before dequeue to avoid taking impossible paths
Implement an API for hooks and breakpoints. Perhaps it is better to implement these as a part of esil-rs as other applications that use esil-rs will probably need some hooking functionality too.
From here. This will highly improve performance on repeated querying.
This would require feature additions and modifications in libsmt.rs.
RuneContext
currently cannot handle symbolic jumps. Some amount of refactoring is needed in order to implement this feature efficiently.
Rune
engine semantics. Currently, it seems a bit arcane and maybe missing all the needed functionality.RuneControl
functionality.Rune
to accept instruction in any format (as opposed to the current limitation of LOpInfo).Rune
to emit constraints in any form (as opposed to being restricted to QF_AUBV_Fn now).Current implementation of context uses SMTLIB2 directly. This is not scalable on the long run as we do not perform any optimizations on the constraints that are generated before feeding it into the backend SMT solver.
This can be fixed by leveraging radeco IL from radeco IL and performing static analysis / optimizations before feeding the constraints to a solver.
As an added part of this task, concrete values must be treated differently from symbolic values. This reduces unnecessary constraints from being generated in the first place.
Implement From<R2Stream> for FileStream
in order to convert R2Stream
into
a FileStream
. This allows radare2 to be closed and additionally provides a
way to construct files that can be reused for further tests wihtout depending
on radare2.
Right now, the user requires to type in a long command to set up a session. This makes it a little cumbersome since a single error in the command would require them to fix the command again. It would be ideal if we could have a default context setup and then the user could interact in the console to set those values.
Example:
krypt0@chinmaydd: runec ./a.out
[+] Loading default context values
>> set zf=1
>> set break=0x8000
>> run
[+] Halted at 0x8000
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.