Skip to content

jhunkeler/reloc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f38a00a · Mar 12, 2021

History

40 Commits
Nov 25, 2019
Mar 12, 2021
Mar 12, 2021
Mar 12, 2021
Nov 8, 2019
Mar 12, 2021
Mar 12, 2021
Nov 18, 2019
Nov 23, 2019
Mar 12, 2021
Nov 18, 2019

Repository files navigation

Reloc

Replace strings in binary executables and data files.

System Requirements

  • gcc
  • or clang
  • or Microsoft Visual Studio (cl.exe)
  • >=cmake-2.18.11

Installing

Linux / MacOS

$ git clone https://github.com/jhunkeler/reloc
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/some/place -DCMAKE_BUILD_TYPE=Release ..
$ make install

Windows

> git clone https://github.com/jhunkeler/reloc
> cd reloc
> mkdir build
> cd build
> cmake -DCMAKE_INSTALL_PREFIX=c:\some\place -DCMAKE_BUILD_TYPE=Release ..
> cmake --build . --target INSTALL

Usage

usage: reloc [-hV] <str1> <str2> <input_file> [output_file]

Options:
--help    (-h) - Display this help message and exit
--version (-V) - Display version and exit

Positional arguments:
str1           - Search string
str2           - Replacement string
input_file     - Input file name
output_file    - Output file name

Example:
reloc /original/string /new/string input.bin output.bin

Showcase

Before

$ xxd -u -g1 test.dat
00000000: DE AD BE EF 2F 5F 30 31 32 33 34 35 36 37 38 39  ..../_0123456789
00000010: 5F 30 31 32 33 34 35 36 37 38 39 5F 30 31 32 33  _0123456789_0123
00000020: 34 35 36 37 38 39 5F 30 31 32 33 34 35 36 37 38  456789_012345678
00000030: 39 5F 30 31 32 33 34 35 36 37 38 39 5F 30 31 32  9_0123456789_012
00000040: 33 34 35 36 37 38 39 5F 30 31 32 33 34 35 36 37  3456789_01234567
00000050: 38 39 5F 2F 74 65 73 74 00 52 41 4E 44 4F 4D 20  89_/test.RANDOM
00000060: 44 41 54 41 20 54 48 41 54 20 43 41 4E 4E 4F 54  DATA THAT CANNOT
00000070: 20 42 45 20 4D 4F 56 45 44 00 FE CE FA CE 2F 5F   BE MOVED...../_
00000080: 30 31 32 33 34 35 36 37 38 39 5F 30 31 32 33 34  0123456789_01234
00000090: 35 36 37 38 39 5F 30 31 32 33 34 35 36 37 38 39  56789_0123456789
000000a0: 5F 30 31 32 33 34 35 36 37 38 39 5F 30 31 32 33  _0123456789_0123
000000b0: 34 35 36 37 38 39 5F 30 31 32 33 34 35 36 37 38  456789_012345678
000000c0: 39 5F 30 31 32 33 34 35 36 37 38 39 5F 2F 73 75  9_0123456789_/su
000000d0: 66 66 69 78 00 FF FF FF FF FF FF FF FF FF        ffix..........

During

$ reloc \
    /_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_ \
    /tmp/_installed \
    test.dat \
    output.dat

After

xxd -u -g1 output.dat
00000000: DE AD BE EF 2F 74 6D 70 2F 5F 69 6E 73 74 61 6C  ..../tmp/_instal
00000010: 6C 65 64 2F 74 65 73 74 00 00 00 00 00 00 00 00  led/test........
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000050: 00 00 00 00 00 00 00 00 00 52 41 4E 44 4F 4D 20  .........RANDOM
00000060: 44 41 54 41 20 54 48 41 54 20 43 41 4E 4E 4F 54  DATA THAT CANNOT
00000070: 20 42 45 20 4D 4F 56 45 44 00 FE CE FA CE 2F 74   BE MOVED...../t
00000080: 6D 70 2F 5F 69 6E 73 74 61 6C 6C 65 64 2F 73 75  mp/_installed/su
00000090: 66 66 69 78 00 00 00 00 00 00 00 00 00 00 00 00  ffix............
000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000d0: 00 00 00 00 00 FF FF FF FF FF FF FF FF FF        ..............

About

A simple binary relocation utility

Resources

License

Stars

Watchers

Forks

Packages

No packages published