Hi all,
I'm writing this email in order to summarize a few things I thought about
the future steps in PHoneyC development process.
First of all I was thinking about starting improving DOM emulation in order
to have a good and precise emulation. Moreover while running PHoneyC
on www.google.com I realized this behaviour
buffer@alnitak ~/phoneyc $ python phoneyc.py -v www.google.com
Traceback (most recent call last):
File "/home/buffer/phoneyc/DOM/DOM.py", line 49, in parse
i.onclick()
RuntimeError: Failed to execute JS Function.
Traceback (most recent call last):
File "/home/buffer/phoneyc/DOM/DOM.py", line 49, in parse
i.onclick()
RuntimeError: Failed to execute JS Function.
No Shellcode/Heapspray Alerts.
and this is really bad since this site was handled correctly a few
revisions ago. This brought me to the conclusion we should start doing
test-driven development writing test-cases (or taking them from the net) in
order to improve the code and not introduce regressions. IMHO we should
start focusing on a DOM object (i.e. Window), improving it and writing
specific test cases and after that all the other DOM objects.
Another thing to decide is about using honeyjs or moving to pydermonkey.
Pydermonkey design seems cleaner but I don't know how many effort could be
required for porting the code. Zhijie?
Moreover maybe we need a SWF analyzer. I read this paper
http://www.cs.ucsb.edu/~vigna/publications/2009_ford_cova_kruegel_vigna_FlashAds.pdf
Please take a look at it because it is really interesting and depicts
possible approaches which could be used in order to develop such additional
module.
That's all! Let me know what you think about these ideas.
--
Angelo Dell'Aera 'buffer'
Antifork Research, Inc. http://buffer.antifork.org
Metro Olografix
I agree with your first suggestion. Yes we need such test samples to
avoid regression, and I'd like to work on it, too.
as for the moving to pydermonkey, this is a big change so i think we
should be very careful on it. before changing to another engine, i think
the following questions should be considered and answered: Is there
something wrong with the current solution? Why is pydermonkey better
than honeyjs?
i'm graduating from the university in the near future, and currently i'm
busy with some graduating stuff like formalities and renting house and
blablabla, so i don't have too much time to spend on phoneyc, but i'd
love to do some bug-fix stuff. I think the source of those regressions
is that the current code should be carefully reviewed again, only if we
have a robust code base can we develop new features without introducing
regressions.
Regards,
Zhijie
zhijie