Thanks to all the people who was up yesterday in the IRC.
At the end it was not as productive as I expected, because I had to
spend so much time explaining to the people how to do things.
(there are documentation and sources!) But some people give me
shells on osx and w32 to do some testing and by feeding me with
stack/reg dumps i managed to fix all the remaining issues to get
r2 working on osx-x86 and w32.
I rewrote some part of the metadata backend, so now it's syncronized
via C! command or r_meta_sync() function. This reduces the number
of items to check when disassembling which makes it a bit faster.
The current hg builds fine on osx x86-32 and x86-64...but rabin2 does
not yet supports the binaries from OSX 10.6 (yeah, apple changed the
file format). But this is going to be done this week (thanks nibble).
About w64..well.. i have no mingw64 crosscompiler, but if somebody wants
to try it, it shouldnt be hard to port to this new platform.
On the mips side I fixed the disassembler and implemented a basic getmain()
callback for the r_bin ELF plugin in order to resolve the 'gp' register
and be
able to analyze the opcodes by following the pointers referenced by lw
instructions.
This still needs more work, but as far as I develop the mips port for
fun I dont
plan to have more enhacements for it in 0.5.
I still have to think about a simple way to handle indirections in code
analysis
because I would like to be able to follow direct branches and link N
levels of
jumps as a single address. This will hardly benefit the disassembler output
in PE and MACH0, because those two formats are used to do this kind of
wrapped
calls to allow runtime redirections (objective-c and so on)
I don't expect much more ports for 0.5. The next release (0.5) will be
in about
two weeks and I have already ported r2 to linux-mipsel, osx-x86-32/64
and w32.
There is still much work to be done for this ports. Debugger is quite
simple, and
I plan to focus on this topics for 0.6 (that will be probably in september).
A part from this I also managed to fix many issues in the core api, from
virtual
addressing algorithm in r_io to autocompletion support for r_line or
initial fixed
support for cons_grep '~' (this will be fully supported for the next
release)
Another good I would like to release for 0.5 is a w32 build with python
bindings.
I think this will be good because windows people usually can't manage to
compile
things without icons. it's sad. but same people who cant manage to
compile will
love to code in python.
If you feel brave enought to read read the TODO file in the root of the
r2 repo
and want to fix/discuss/ask any of the points just say it :) I'll be
happy to get
feedback from real use cases, priorities, etc. in fact..i used the poll
to reorganize
the TODO in order to make all you as happy as possible ;)
If somebody wants to test the w32 build check this blob:
http://lolcathost.org/b/radare2-w32-0.4.5.zip
it's known to work on wine and wXP. It should work in any other nt-based
windows.
have phun
--pancake
_______________________________________________
radare mailing list
[email protected]
http://lists.nopcode.org/listinfo.cgi/radare-nopcode.org