Skip to content

endeav0r/Rainbows-And-Pwnies-Tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brought to you by rainbowsandpwnies

/*************** 
* REQUIREMENTS *
***************/

lua5.1 (5.2 untested)
http://www.lua.org/

/********
* BUILD *
********/

For lua, you will need the Ubuntu package liblua5.1-0-dev

The build system was reworked on 29 JAN 2012. To build rt, from the base
directory run
./build/make.lua
or
lua build/make.lua

This should produce rt, an executable, and rt.so, a shared object which can
be included in your own lua projects via require("rt")

FYI: rt is developed in Arch Linux

/**************
* DESCRIPTION *
**************/

Rainbows-And-Pwnies-Tools started as rop_tools, a tool to aid in quickly
identifying rop gadgets. While this functionality remains intact, rop_tools
evolved, and has become Rainbows-And-Pwnies-Tools, or rt for short.

rt consists of a few pieces.

First and foremost, rt is a C library for easily and generically working with
32 and 64-bit binary formats. Currently is supports ELF and a subsect of the PE
format.

Second, rt breaks much of this functionality out into the lua scripting
language. This allows you to write one lua script which work on 32 and 64-bit
x86 in a variety of formats. For example, if you wanted to find all of the mov
instructions, you could implement that in a lua script (as of this writing)
as follows:

dofile('stdlib/stdlib.lua')

exec = exec_t.new(argv[1])
sections = exec:sections()
for ss, s in pairs(sections) do
    if table.contains(s:types(), 'executable') then
        print(TERM_COLOR_MAGENTA .. TERM_BOLD ..
              s:name() ..
              TERM_NORMAL .. TERM_COLOR_DEFAULT)
        for ii, ins in pairs(s:disassemble()) do
            if ins['mnemonic'] == 'mov' then
                print(ins['address']:strx() .. ' ' .. ins['description'])
            end
        end
    end
end

You'll notice we make use of a few variables and functions created for our
convenience. These can be found in the stdlib/ directory.

Finally, rt now has a command line lua interpreter, allowing you to script
your disassembly away to your heart's content.

About

a program to help with programming rop exploits

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages