Comments (2)
Hi @bsmondal,
What you're actually using here is the DependencyGraph, which is using itself the symbolic execution to render solutions.
Apparently, you've used the explicit version. That is to say, ask Miasm to give me all implicated lines, and if they represent different paths, yield each ones.
That's what you have in the *.dot files.
Then, using the .emul
method, you can symbolic executes each solution history / path / implicated lines to obtain the equation of the result. That's the output: EAX: (@32[(ESP_init+0x4)]+(- @32[(ESP_init+0x8)]))
<=> EAX: Arg1 - Arg2
<=> ret = a - b
.
So, at this point, there is no value for a
, b
or op
. This is, in fact, the interest of the algorithm.
Now if you want to obtain a value for op
reaching each solution, you have to used the implicit DependencyGraph, a version which also tracks implicit (coming from control flow) dependencies.
You'll need the z3
Python dependency.
I advise you to modify expression to inject ABI + signature information (@32[(ESP_init+0x4)]
-> Arg_A
, ...). This will prevent your having memory constraint in the result.
See #152 for a very similar example.
from miasm.
Hi @commial
Thanks a lot. It works fine. I was getting some error during z3 installation. But its solve now. That's why it takes time to check and give you feedback.
from miasm.
Related Issues (20)
- fail at assembling CVTTSS2SI HOT 2
- Support aarch64 floating-point arithmetic HOT 4
- cannot convert miasm ir to llvm ir HOT 1
- How can i save passes to asmcfg HOT 1
- test_all.py errors HOT 4
- How to draw a single block? HOT 2
- x86-64 out of order IR block (add_asmblock_to_ircfg -> add_instr_to_current_state) HOT 2
- Miasm mn_x86.fromstring does not recognize JE/JNE instructions HOT 1
- CMP and CMOV? analysis HOT 2
- [ARM-semantic] Implement carry flag for basic shifters HOT 2
- Convert miasm IR to llvm IR: AttributeError: 'LLVMContext_IRCompilation' object has no attribute 'vmcpu' HOT 2
- Rebasing program in graph HOT 2
- Error when using iterator from DependencyGraph object HOT 2
- Unrolling of loop in SSA through symbolic execution HOT 10
- Exporting `AsmCFG` to `dot` format might generate `dot` code that fails to parse if the `HTML` node label if it contains `>]<`
- miasm in Rust #2 HOT 2
- confusing doc on how to compile on windows. doc added on readme
- FreeBSD Build Error HOT 3
- ImportError: cannot import name 'JitCore_x86' from 'miasm.jitter.arch' HOT 2
- Early stop of IR CFG's Symbolic Execution (stops at SHR instruction) HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from miasm.