commands/patchdata/patchdata.cif
changeset 0 7f656887cf89
child 87 63fd51b1ff80
equal deleted inserted replaced
-1:000000000000 0:7f656887cf89
       
     1 # patchdata.cif
       
     2 # 
       
     3 # Copyright (c) 2010 Accenture. All rights reserved.
       
     4 # This component and the accompanying materials are made available
       
     5 # under the terms of the "Eclipse Public License v1.0"
       
     6 # which accompanies this distribution, and is available
       
     7 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 # 
       
     9 # Initial Contributors:
       
    10 # Accenture - Initial contribution
       
    11 #
       
    12 
       
    13 ==name patchdata
       
    14 
       
    15 ==argument string dll-name optional
       
    16 
       
    17 The DLL to examine for patchable data. If not specified, list some system-wide well-known patchable constants.
       
    18 
       
    19 ==argument int ordinal optional
       
    20 
       
    21 The ordinal of the patchable constant to examine. This should be the number from the DEF file, ie it is one-based not zero-based. If not specified lists all the data exports in the DLL.
       
    22 
       
    23 ==argument uint value optional
       
    24 
       
    25 Set a new value for the given ordinal. If not specified, just lists the current value.
       
    26 
       
    27 ==option bool v verbose
       
    28 
       
    29 Display verbose information when scanning for exports.
       
    30 
       
    31 ==short-description
       
    32 
       
    33 Examine the patchable data for a DLL.
       
    34 
       
    35 ==long-description
       
    36 
       
    37 If no DLL is specified, print various common patchable constant data values. If a DLL is given but no ordinal number, all exports that look like patchable constants are listed. For DLLs in core (xip) ROM, you'll generally see more false positives than ROFS DLLs.
       
    38 
       
    39 Patchdata can optionally modify the value of a given patchable constant, but there are certain caveats in doing this: Overall the technique used is slightly hairy, use at your own risk: it will not work for DLLs with sparse export tables (generally this means DLLs with lots of exports and/or ABSENT exports); it may appear to work but in some situations code will continue to use the unpatched values (patching EXEXPs used in startup, ECOM plugins that have already been cached, and anything else that hard-codes loading DLLs from a particular drive). Patching a DLL that is in core (xip) image will only persist until the next reboot, but on the plus side most of the other caveats don't apply.
       
    40 
       
    41 ==copyright
       
    42 
       
    43 Copyright (c) 2008-2010 Accenture. All rights reserved.
       
    44