Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.o
*.bundle
src/Makefile

10 changes: 6 additions & 4 deletions README
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
frasm is a Ruby binding for Distorm64 v1.7.30 written by Gil Dabah [http://ragestorm.net/distorm/]
frasm is a Ruby binding for Distorm3 v3.3 written by Gil Dabah [http://ragestorm.net/distorm/]

The frasm binding was originally written by Tom Ptacek and has since been updated by Chris Rohlf

frasm requires you have built and installed libdistorm

Distorm comes with pystorm by default so when you create distorm64.{so,bundle,dll} be sure to compile like so:
Distorm comes with pystorm by default so when you create distorm3.{so,bundle,dll} be sure to compile like so:
'make clib' otherwise ruby will throw an error due to undefined python symbols
make sure you have the libdistorm3.so (linux) / distorm3.dylib (mac) under your search path

---------------
Compiling Frasm
Expand All @@ -15,8 +16,9 @@ cd src/
ruby extconf.rb

make
make install (may require sudo)

The directories linux/ osx/ and win32 also have manually created Makefiles if extconf.rb fails you
The directories linux/ osx/ and win32 also have manually created Makefiles if extconf.rb fails you, will need tweaking to work with your local paths and rubies

-------------------
Example frasm usage
Expand All @@ -26,6 +28,6 @@ require 'frasm'

d = Frasm::DistormDecoder.new

d.decode("ABCDEFGHIJKLMNOPQRSTUVWXYZ").each do |l|
d.decode("\x90\x90\x90\x33\xc0\x66\xb8\x34\x12\x50\x40\xc3").each do |l|
puts "#{l.mnem} #{l.size} #{l.offset} #{l.raw}"
end
Loading