Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I'm still using QIRA 1.0 in CTFs #83

Open
geohot opened this issue Mar 14, 2015 · 7 comments
Open

I'm still using QIRA 1.0 in CTFs #83

geohot opened this issue Mar 14, 2015 · 7 comments

Comments

@geohot
Copy link
Owner

geohot commented Mar 14, 2015

There's a lot of stuff broken in trunk, in the middle of codegate now, but why????

@geohot
Copy link
Owner Author

geohot commented Mar 17, 2015

Now that codegate is over, there's a lot of work to be done. The analyzer broke, we need to have better tests. QIRA is becoming a fairly complicated piece of code, and it isn't just me writing it anymore.

The static2 refactor was never finished either. I think it's time we commit to it full tilt, and assume we'll have static for every program. Rip out the shitty hacks. Commit 0564060 is a good example of the direction this needs to go.

@nedwill
Copy link
Contributor

nedwill commented Mar 17, 2015

I agree that getting static fully ready and continuing on testing and refactoring is critical so things like the calll bug don't go under the radar again. Progress has been slower that I'd like, so if I put some serious deadlines in place things might go more smoothly. Finishing up regression testing in the CI might be the first thing to do so stuff like the analyzer being broken don't get missed again, and we might catch some other low hanging fruit if we test over a large corpus of programs.

And thanks for the example commit; that is helpful.

@geohot
Copy link
Owner Author

geohot commented Mar 17, 2015

You've done more on QIRA than I have this year :)

Regression testing is a good idea. Also, I turned static on by default. I think it's come to a point where we just have to commit, go through a period where QIRA is crappy, and work until what comes out at the end is better. And we can now make the assumption that static is always present.

@nedwill
Copy link
Contributor

nedwill commented Mar 17, 2015

I appreciate the recognition but the core of the project is all you. And Tim has been doing a lot of work that's just in other branches (research code haha).

Anyways, yeah, that static on assumption will help a lot in the cleanup. I might look at code coverage tools to make sure we have unit tests to hit all of the important code. I wonder to what extent things like Coveralls (just learned about this recently) are complementary to Travis. They might be mutually exclusive. But if there's a way to make writing tests more fun (going for 100% coverage), then I'll probably do a better job of it!

@geohot
Copy link
Owner Author

geohot commented Mar 18, 2015

Woah https://github.com/tim-becker/qira/tree/bap+qira is exciting! Can't wait to see it merged.

And documentation so I can figure out how to use it! One of the things that really helped keep QIRA on track last summer was those CTF problem writeups I did with it. It kept all features grounded in helping me solve problems faster. I'm convinced this was the reason for the actual usability of QIRA vs the EDAs.

@ivg
Copy link
Contributor

ivg commented Mar 18, 2015

@tim-becker, why did you use all this if/elif/elif/... in your validate_bil, instead of the Visitor? @geohot, sorry for creating a noise in this thread, I think that we will move to another thread, if it would be needed.

@tim-becker
Copy link
Contributor

@ivg Honestly, because I didn't know how to use it when I started writing this. I've just rewritten it using Visitor, and it's much nicer. The latest work on this can be found at https://github.com/tim-becker/qira/tree/concrete_execution

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants