Ignore:
Timestamp:
Oct 9, 2013, 9:52:48 PM (12 years ago)
Author:
bird
Message:

Added kLdrModQueryImageUuid for Mach-O.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/kLdrModMachO.c

    r53 r54  
    164164    /** Pointer to the loaded string table. */
    165165    char                   *pchStrings;
     166
     167    /** The image UUID, all zeros if not found. */
     168    KU8                     abImageUuid[16];
    166169
    167170    /** The RVA of the Global Offset Table. */
     
    475478    pModMachO->cchStrings = 0;
    476479    pModMachO->pchStrings = NULL;
     480    kHlpMemSet(pModMachO->abImageUuid, 0, sizeof(pModMachO->abImageUuid));
    477481    pModMachO->GotRVA = NIL_KLDRADDR;
    478482    pModMachO->JmpStubsRVA = NIL_KLDRADDR;
     
    11171121        const segment_command_64_t *pSeg64;
    11181122        const symtab_command_t     *pSymTab;
     1123        const uuid_command_t       *pUuid;
    11191124    } u;
    11201125    const char *pchCurSegName = NULL;
     
    14261431                break;
    14271432
     1433            case LC_UUID:
     1434                kHlpMemCopy(pModMachO->abImageUuid, u.pUuid->uuid, sizeof(pModMachO->abImageUuid));
     1435                break;
     1436
    14281437            default:
    14291438                break;
     
    24042413    *pMainEPAddress = NIL_KLDRADDR;
    24052414#endif
     2415    return 0;
     2416}
     2417
     2418
     2419/** @copydoc kLdrModQueryImageUuid */
     2420static int kldrModMachOQueryImageUuid(PKLDRMOD pMod, const void *pvBits, void *pvUuid, KSIZE cbUuid)
     2421{
     2422    PKLDRMODMACHO pModMachO = (PKLDRMODMACHO)pMod->pvData;
     2423    kHlpMemSet(pvUuid, 0, cbUuid);
     2424    if (kHlpMemComp(pvUuid, pModMachO->abImageUuid, sizeof(pModMachO->abImageUuid)) == 0)
     2425        return KLDR_ERR_NO_IMAGE_UUID;
     2426    kHlpMemCopy(pvUuid, pModMachO->abImageUuid, sizeof(pModMachO->abImageUuid));
    24062427    return 0;
    24072428}
     
    37393760    kldrModMachOGetStackInfo,
    37403761    kldrModMachOQueryMainEntrypoint,
     3762    kldrModMachOQueryImageUuid,
    37413763    NULL,
    37423764    NULL,
Note: See TracChangeset for help on using the changeset viewer.