<< 24/55 >>
First Last

dyld-info-command - bind, lazy_bind

rebase, bind, weak_bind, lazy_bind, and export

Compressed by opcodes

  0x000C BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB(0x02, 0x00000040)
  0x000E BIND_OPCODE_SET_DYLIB_ORDINAL_IMM(1)
  0x000F BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM(0x00, _puts)
  0x0016 BIND_OPCODE_DO_BIND()

and uleb128 (variable length code)

  static uint64_t uleb128(const uint8_t*& p) {
    uint64_t r = 0;
    int s = 0;
    do {
      r |= (uint64_t)(*p & 0x7f) << s;
      s += 7;
    } while (*p++ >= 0x80);
    return r;
  }

Similar technique is used in DWARF