146 lines
3.6 KiB
Groff
146 lines
3.6 KiB
Groff
.\" $NetBSD: binpatch.8,v 1.8 2009/08/24 12:55:16 tsutsui Exp $
|
|
.\"
|
|
.\" Copyright (c) 1994 Christian E. Hopps
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by Christian E. Hopps.
|
|
.\" 4. The name of the author may not be used to endorse or promote products
|
|
.\" derived from this software without specific prior written permission
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.Dd August 20, 2009
|
|
.Dt BINPATCH 8 atari
|
|
.Os
|
|
.Sh NAME
|
|
.Nm binpatch
|
|
.Nd "examine and or modify initialized data in an executable binary"
|
|
.Sh SYNOPSIS
|
|
.Nm binpatch
|
|
.Op Fl b | Fl w | Fl l | Fl d
|
|
.Op Fl o Ar offset
|
|
.Op Fl T Ar saddr
|
|
.Fl s Ar symname
|
|
.Op Fl r Ar value
|
|
.Ar binfile
|
|
.Nm binpatch
|
|
.Op Fl b | Fl w | Fl l | Fl d
|
|
.Op Fl o Ar offset
|
|
.Op Fl T Ar saddr
|
|
.Fl a Ar addr
|
|
.Op Fl r Ar value
|
|
.Ar binfile
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
is used to modify or examine the data associated with a symbol in a binary
|
|
file
|
|
.Ar binfile .
|
|
.Pp
|
|
The flags
|
|
.Fl b ,
|
|
.Fl w ,
|
|
.Fl l ,
|
|
and
|
|
.Fl d
|
|
specify the size of the data to be modified or examined.
|
|
.Fl b
|
|
is for 8bit
|
|
.Pq Li int8_t ,
|
|
.Fl w
|
|
is for 16bit
|
|
.Pq Li int16_t ,
|
|
.Fl l
|
|
is for 32bit
|
|
.Pq Li int32_t ,
|
|
and
|
|
.Fl d
|
|
is for 64bit
|
|
.Pq Li int64_t
|
|
variables.
|
|
.Pp
|
|
The
|
|
.Ar binfile
|
|
is scanned in search of the symbol
|
|
.Ar symname
|
|
(specified with the
|
|
.Fl s
|
|
flag).
|
|
If the symbol is found the current data and address are printed.
|
|
.Pp
|
|
Next if the
|
|
.Fl r
|
|
flag has been given, the current data is replaced with that of
|
|
.Ar value .
|
|
.Pp
|
|
If the second form is used the address
|
|
.Ar addr
|
|
specified with the
|
|
.Fl a
|
|
flag is used as a direct address into the data section of the binary and
|
|
no symbol search is performed.
|
|
.Pp
|
|
The
|
|
.Fl o
|
|
flag specifies an offset in
|
|
.Li int8_t ,
|
|
.Li int16_t ,
|
|
.Li int32_t ,
|
|
and
|
|
.Li int64_t
|
|
.Fl ( b ,
|
|
.Fl w ,
|
|
.Fl l ,
|
|
or
|
|
.Fl d )
|
|
units from the given locator
|
|
.Fl ( s
|
|
or
|
|
.Fl a )
|
|
for
|
|
.Nm
|
|
to perform its described actions.
|
|
This might be useful to patch a member of array or structure.
|
|
.Pp
|
|
The
|
|
.Fl T
|
|
flag is used to specify the starting address of a.out binary text segment.
|
|
Ignored for other binary executable formats.
|
|
.Sh SEE ALSO
|
|
.Xr gdb 1 ,
|
|
.Xr mdsetimage 8
|
|
.Sh BUGS
|
|
The
|
|
.Nm
|
|
command doesn't check if size of specified symbol is the same as the
|
|
specified size by
|
|
.Fl b ,
|
|
.Fl w ,
|
|
.Fl l ,
|
|
or
|
|
.Fl d
|
|
flag.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
command doesn't check if specified address or symbol is a patchable variable
|
|
and it might corrupt the specified executable binary.
|