Best approach for using transformed VEX code for analysis
See original GitHub issueI’d like to use some of angr’s analyses on transformed VEX code. Some of the analyses I’m interested in are DFG and DDG generation which both require a CFG. It seems a reasonable approach to using transformed VEX code would be to first generate a CFG and then replace the node’s IRSB instances with transformed IRSB instances. This modified CFG would then be used as input for analysis.
One snag, the current DFG implementation actually calls angr.lifter.Lifter#lift
for each node rather than using the node’s attached IRSB. That’s an easy fix.
Any general thoughts on how to best use angr analyses with transformed VEX code? Or comments about whether it’s a terrible, out-of-scope idea? 😉
Thanks!
Issue Analytics
- State:
- Created 7 years ago
- Comments:12 (9 by maintainers)
Top Results From Across the Web
Using VEXcode EXP C++ Example Projects and Templates
Example projects and Templates are a great resource if you are just getting started with VEXcode EXP and want to explore different robot......
Read more >VEXcode for experts - VEX Forum
The easiest way to revert this if you just upgraded is to use “undo” (CTRL-Z) and that commenting will be reverted, however, that...
Read more >Standards Alignment Guide
and that teaching practices focus on the learning objectives. ... Introduction to Programming with VEXcode IQ Blocks uses robots, and covers robotics.
Read more >VEXcode Text - VEX Robotics
Jumpstart your learning by starting with an existing project, covering every aspect of coding, controlling robots, and learning to use sensors. ... VEX...
Read more >Marsgate/Greenhat2: Greenhat is library for VEXcode ... - GitHub
Greenhat is library for VEXcode to help Vex Robotics teams create competitively viable autonomous programs with little to no prior coding experience.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
As a meta-comment: we’re planning on moving all development to github (as opposed to developing on our internal gitlab and synchronizing things out periodically), so these sort of development bottlenecks will hopefully be more rare in the future.
In the meantime, we’ll have to suffer a bit longer 😃
@axt excellent example, i’ll read your code and trying to understand.
Looking at
ddg.py
I can see that when the action type istmp
it extracts the information… It seems that onlt thewrite
operation has a destination and not theread
. Am i wrong? Please have a lot atddg:696
, I cannot see how it extract the destination of the read.Also when I encounter:
t10 = Sub64(t11,0x0000000000000008)
the type istmp
and notoperation
. Any idea why? To clarify, I’m extracting the actions from a path not from the cfg nodes.I noticed that if I use the actions for
found.state
the type operation is not availbale. Instead if I get thefinal_nodes
for every single node in the CFG I can usefinal_state.log.action
and obtain operation.Is there a way to extract all the states from the
found
path and check if usinglog
I can access to what I need?Anyway I’ll wait for the next version of the DDG.
Thanks