| OLD | NEW |
| (Empty) |
| 1 Libdisasm SWIG README | |
| 2 | |
| 3 The SWIG utility (www.swig.org) can be used to generate | |
| 4 | |
| 5 | |
| 6 Building SWIG Modules | |
| 7 --------------------- | |
| 8 | |
| 9 make | |
| 10 make install | |
| 11 | |
| 12 Make and Install both build Python, Perl, Ruby, and Tcl modules. If you | |
| 13 do not have one of these languages installed, comment out the relevant | |
| 14 target in the main Makefile. | |
| 15 | |
| 16 Install uses 'sudo' to put files in the correct locations; if you | |
| 17 do not have sudo installed, change the install targets. | |
| 18 | |
| 19 The Module API | |
| 20 -------------- | |
| 21 | |
| 22 The OOP API | |
| 23 ----------- | |
| 24 | |
| 25 | |
| 26 The Python Module | |
| 27 ----------------- | |
| 28 | |
| 29 To test that the module loads: | |
| 30 | |
| 31 bash# python | |
| 32 >>> import x86disasm | |
| 33 >>> x86disasm.version_string() | |
| 34 '0.21-pre' | |
| 35 >>>^D | |
| 36 bash# | |
| 37 | |
| 38 >>> import x86disasm | |
| 39 >>> import array | |
| 40 >>> disasm = x86disasm.X86_Disasm( ) | |
| 41 >>> tgt = open( "/tmp/a.out", "rb" ) | |
| 42 >>> tgt.seek( 0, 2 ) | |
| 43 >>> size = tgt.tell() | |
| 44 >>> tgt.seek( 0, 0 ) | |
| 45 >>> buf = array.array( 'B' ) | |
| 46 >>> buf.fromfile( tgt, size ) | |
| 47 >>> tgt.close() | |
| 48 >>> data = x86disasm.byteArray( size ) | |
| 49 >>> for i in range( size ): | |
| 50 ... data[i] = buf.pop(0) | |
| 51 ... | |
| 52 >>> del buf | |
| 53 >>> del tgt | |
| 54 >>> insn = disasm.disasm( data, size - 1, 0, 0 ) | |
| 55 >>> insn.format( x86disasm.att_syntax ) | |
| 56 'jg\t0x00000047' | |
| 57 >>> insn.format( x86disasm.raw_syntax ) | |
| 58 '0x00000000|0x00000000|2|7F 45 |||controlflow|jcc|jg|80386|General Purpo
se|||zero_clear sign_eq_oflow |0|0|relative|sbyte|00000047|' | |
| 59 >>> ops = insn.operand_list() | |
| 60 >>> node = ops.first() | |
| 61 >>> while node is not None: | |
| 62 ... s = node.op.format(x86disasm.raw_syntax) | |
| 63 ... print s | |
| 64 ... node = ops.next() | |
| 65 ... | |
| 66 relative|sbyte|00000047| | |
| 67 | |
| 68 | |
| 69 | |
| 70 | |
| 71 | |
| 72 | |
| 73 The Perl Module | |
| 74 --------------- | |
| 75 | |
| 76 To test that the module loads: | |
| 77 | |
| 78 bash# perl | |
| 79 use x86disasm; | |
| 80 print x86disasm::version_string() . "\n"; | |
| 81 ^D | |
| 82 0.21-pre | |
| 83 bash# | |
| 84 | |
| 85 The Ruby Module | |
| 86 --------------- | |
| 87 | |
| 88 To test that the module loads: | |
| 89 | |
| 90 bash# irb | |
| 91 irb(main):001:0> require 'x86disasm' | |
| 92 => true | |
| 93 irb(main):002:0> X86disasm.version_string() | |
| 94 => "0.21-pre" | |
| 95 irb(main):003:0> x = X86disasm::X86_Disasm.new | |
| 96 => #<X86disasm::X86_Disasm:0xb7d624a4> | |
| 97 irb(main):004:0> x.max_register_string() | |
| 98 => 8 | |
| 99 irb(main):003:0> ^D | |
| 100 bash# | |
| 101 | |
| 102 The Tcl Module | |
| 103 --------------- | |
| 104 | |
| 105 To test that the module loads: | |
| 106 | |
| 107 bash# tclsh | |
| 108 % load /usr/lib/tcl8.3/x86disasm.so X86disasm | |
| 109 % version_string | |
| 110 0.21-pre | |
| 111 % ^D | |
| 112 bash# | |
| 113 | |
| 114 % x86_init 0 NULL NULL | |
| 115 OR | |
| 116 % x86disasm dis | |
| 117 _486b0708_p_x86disasm | |
| 118 % puts "[dis cget -last_error]" | |
| 119 0 | |
| 120 | |
| 121 | |
| 122 | |
| 123 | |
| 124 The Interface Files | |
| 125 ------------------- | |
| 126 | |
| 127 libdisasm.i -- interface file without shadow classes | |
| 128 libdisasm_oop.i -- interface file with shadow classes | |
| OLD | NEW |