Radare can be scripted using lua in a very simple way.
You can call the scripts in batch mode using the -i flag of radare or just calling it using the lua 'hack' plugin.
$ radare -i myscript.lua /bin/ls
or
radare /bin/ls
> H lua myscript.lua
Take care about having liblua5.1-dev installed in your system and lua.so is properly build and installed.
There's an API provided by LIBDIR/radare/radare.lua where you will easily find the way to call radare commands from lua and viceversa.
There are a lot of tutorials about lua, so I will focus on the use for radare.
I will increase this article while I have some time, ask me your questions and proposals for the scripting on this thread.
Here's a little example searching:
-- search lib and show results
Radare.seek(0)
local hits = Radare.Search.string("lib")
for i = 1, #hits do
print(" => "..hits[i]..": "..Radare.cmd("pz @ "..hits[i]))
done
will show:
$ radare -vi search-demo.lua /bin/ls
=> 0x00000135: lib/ld-linux.so.2
=> 0x00000b71: librt.so.1
=> 0x00000f2a: libc_start_main
... more examples will come.. smile