Changeset 6090

Show
Ignore:
Timestamp:
01/08/09 08:10:28 (6 months ago)
Author:
pusscat
Message:

Update to word and byt primitive tracking

Location:
framework3/trunk/external/source/byakugan
Files:
10 modified

Legend:

Unmodified
Added
Removed
  • framework3/trunk/external/source/byakugan/jutsu.cpp

    r6085 r6090  
    3535} 
    3636 
     37void memDiffJutsu(char *inputType, DWORD size, char *input, ULONG64 address) { 
     38        DWORD   i; 
     39        BOOL    upperFlag, lowerFlag, nullFlag; 
     40        char    *badChars; 
     41 
     42        upperFlag = lowerFlag = nullFlag = FALSE; 
     43        badChars = (char *) malloc(size); 
     44         
     45        for (i = 0; i < size; i++) { 
     46                // Diff the two locations 
     47                // Store badchars, and bad offsets 
     48                // Take note of upper / lower / null exclusions 
     49        } 
     50} 
     51 
    3752void listTrackedVals() { 
    3853        struct trackedVal   *newTrackedVal; 
     
    90105        struct valInstance      *last, *curr; 
    91106        char                            findValExpression[18] =  {'\x00'}; 
    92  
     107        DWORD                           valResult, andExpression; 
     108 
     109        switch(size) { 
     110                case 1: andExpression = 0xFF;                   break; 
     111                case 2: andExpression = 0xFFFF;                 break; 
     112                case 4: andExpression = 0xFFFFFFFF;             break; 
     113                default: 
     114                        dprintf("[J] Valid primitive sizes are 1, 2, and 4.\n"); 
     115                        return; 
     116        }                        
     117         
    93118        newTrackedVal = trackedValList; 
    94119        while (newTrackedVal != NULL) { 
     
    103128                curr = newTrackedVal->instances; 
    104129                last = NULL; 
     130 
    105131                while (curr != NULL) { 
    106132                        StringCchPrintf(findValExpression, sizeof(findValExpression), "poi(0x%08x)", curr->address); 
    107                 if (value != GetExpression(findValExpression)) { 
     133                        valResult = (GetExpression(findValExpression) & andExpression); 
     134                if (value != valResult) { 
    108135                                if (last) { 
    109136                                        last->next = curr->next;