X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=CheatServer.m;h=04cbdd92fc877d5cef0c5ff2ff25a77036d1560e;hb=e8d51183acdd2410a38dcf8f0efbf7c30cd6c581;hp=ba4ca6e48b791350c1c3f88bb6e6c55306752231;hpb=9177098dc6655dd04fee9d22167335473531c484;p=chaz%2Fthecheat diff --git a/CheatServer.m b/CheatServer.m index ba4ca6e..04cbdd9 100644 --- a/CheatServer.m +++ b/CheatServer.m @@ -12,7 +12,8 @@ #import "SearchResults.h" -#include "chaz.h" +// for comparing floats +#import #include #include @@ -20,6 +21,7 @@ // Internal Functions +int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ); //BOOL inline compare_float( float a, float b ); //BOOL inline compare_double( double a, double b ); @@ -91,7 +93,7 @@ if ( getpeername( sockfd, &identifier, &addrLen ) == -1 ) { - NSLog( @"ERROR: getpeername() failed" ); + CMLog( @"ERROR: getpeername() failed" ); } if ( identifier.sa_family == AF_INET ) @@ -102,12 +104,12 @@ if ( getpeername( sockfd, (struct sockaddr *)(&addr), &addrLen ) == -1 ) { - NSLog( @"ERROR: getpeername() failed" ); + CMLog( @"ERROR: getpeername() failed" ); } if ( (addressCString = inet_ntoa( addr.sin_addr )) == NULL ) { - NSLog( @"ERROR: inet_ntoa() failed" ); + CMLog( @"ERROR: inet_ntoa() failed" ); } address = [NSString stringWithCString:addressCString]; @@ -120,10 +122,10 @@ if ( getpeername( sockfd, (struct sockaddr *)(&addr), &addrLen ) == -1 ) { - NSLog( @"ERROR: getpeername() failed" ); + CMLog( @"ERROR: getpeername() failed" ); } - NSLog( @"client connection: %s", addr.sun_path ); + CMLog( @"client connection: %s", addr.sun_path ); address = [NSString stringWithString:@"127.0.0.1"]; } @@ -154,7 +156,7 @@ numfds = sockfd + 1; - NSLog( @"SERVER start" ); + CMLog( @"SERVER start" ); for (;;) { @@ -171,26 +173,26 @@ if ( !VerifyChecksum( header.checksum ) ) { - NSLog( @"checksum failed" ); + CMLog( @"checksum failed" ); } if ( header.size != 0 ) { if ( (data = (char *)malloc( header.size )) == NULL ) { - NSLog( @"failed to allocate buffer for reading a network packet" ); + CMLog( @"failed to allocate buffer for reading a network packet" ); break; } if ( (result = ReadBuffer( sockfd, data, header.size )) != header.size ) { - NSLog( @"failed to read the data of a network packet" ); + CMLog( @"failed to read the data of a network packet" ); free( data ); break; } } - NSLog( @"SERVER message %i/%i/%i", header.checksum, header.function, header.size ); + //CMLog( @"SERVER message %i/%i/%i", header.checksum, header.function, header.size ); switch ( header.function ) { @@ -237,7 +239,7 @@ close( sockfd ); - NSLog( @"SERVER close" ); + CMLog( @"SERVER close" ); [rootProxy serverDisconnected:self]; } @@ -276,15 +278,13 @@ TCaddress *results = NULL; int resultsAmount = 0; - NSLog( @"string search: %s", value ); - for (;;) { if ( (result = vm_region( processTask, &address, &size, VM_REGION_BASIC_INFO, (vm_region_info_t)(&info), &infoCnt, &object_name )) != KERN_SUCCESS ) { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -296,28 +296,32 @@ if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } if ( result == KERN_SUCCESS ) { - int i, top = dataLength - vsize; + //int i, top = dataLength - vsize; if ( (results = realloc( results, TCAddressSize*resultsAmount + dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } - for ( i = 0; i < top; i++ ) + resultsAmount += bmsearch( (char *)value, vsize, (char *)data, dataLength, (void *)address, (void **)((char *)results+TCAddressSize*resultsAmount) ); + //resultsAmount += TBM( (char *)value, vsize, data, dataLength, (void **)((char *)results+TCAddressSize*resultsAmount) ); + //resultsAmount += SMITH( data, dataLength, (char *)value, vsize, (void **)((char *)results+TCAddressSize*resultsAmount) ); + + /*for ( i = 0; i < top; i++ ) { if ( strncmp( value, data+i, vsize ) == 0 ) { results[resultsAmount++] = (TCaddress)address + i; } - } + }*/ } free( data ); @@ -329,7 +333,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_8_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchIntegerChar:(int8_t)value @@ -354,7 +358,7 @@ { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -366,7 +370,7 @@ if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -377,7 +381,7 @@ if ( (results = (TCaddress *)realloc( results, TCAddressSize*resultsAmount + TCAddressSize*dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } @@ -399,7 +403,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_8_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchIntegerShort:(int16_t)value @@ -424,7 +428,7 @@ { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -436,7 +440,7 @@ if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -447,7 +451,7 @@ if ( (results = (TCaddress *)realloc( results, TCAddressSize*resultsAmount + 2*dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } @@ -469,7 +473,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_16_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchIntegerLong:(int32_t)value @@ -488,25 +492,25 @@ TCaddress *results = NULL; int resultsAmount = 0; - unsigned zone_count = 10; + /*unsigned zone_count = 10; vm_address_t *zones = (vm_address_t *)malloc( zone_count * sizeof(vm_address_t) ); //memory_reader_t reader; if ( (result = malloc_get_all_zones( processTask, NULL, &zones, &zone_count )) != KERN_SUCCESS ) { - NSLog( @"malloc_get_all_zones error: %i", result ); + CMLog( @"malloc_get_all_zones error: %i", result ); } else { //address = zones[0]; - /*int i; + int i; for ( i = 0; i < 10; i++ ) { - NSLog( @"malloc_get_all_zones[%i] = %X", i, (vm_address_t)zones[i] ); - }*/ - } + CMLog( @"malloc_get_all_zones[%i] = %X", i, (vm_address_t)zones[i] ); + } + }*/ for (;;) { @@ -514,7 +518,7 @@ { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -524,11 +528,11 @@ data = (int32_t *)malloc( size ); dataLength = size; - NSLog( @"address: %.8X size: %i", address, size ); + //CMLog( @"address: %.8X size: %i", address, size ); if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -539,10 +543,10 @@ if ( (results = (TCaddress *)realloc( results, TCAddressSize*resultsAmount + dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } - + for ( i = 0; i < top; i++ ) { if ( *(data+i) == value ) @@ -561,10 +565,9 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_32_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - - (void)firstSearchDecimalFloat:(float)value { kern_return_t result; @@ -587,7 +590,7 @@ { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -599,7 +602,7 @@ if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -610,13 +613,13 @@ if ( (results = realloc( results, TCAddressSize*resultsAmount + dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } for ( i = 0; i < top; i++ ) { - if ( cl_compare_float_eps( *(data+i), value, 0.1f ) == 0 ) + if ( CMCompareFloatsWithEpsilon( *(data+i), value, 0.1f ) == 0 ) { results[resultsAmount++] = (TCaddress)address + i * sizeof(value); } @@ -632,7 +635,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_DECIMAL size:SIZE_32_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)firstSearchDecimalDouble:(double)value @@ -651,7 +654,7 @@ TCaddress *results = NULL; int resultsAmount = 0; - NSLog( @"float search" ); + CMLog( @"float search" ); for (;;) { @@ -659,7 +662,7 @@ { if ( result != KERN_INVALID_ADDRESS ) { - NSLog( @"vm_region returned error: %i", result ); + CMLog( @"vm_region returned error: %i", result ); } break; } @@ -671,7 +674,7 @@ if ( (result = vm_read_overwrite( processTask, address, size, (vm_address_t)data, &dataLength )) != KERN_SUCCESS && result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); free( data ); break; } @@ -682,13 +685,13 @@ if ( (results = realloc( results, TCAddressSize*resultsAmount + dataLength )) == NULL ) { - NSLog( @"ERROR: could not expand buffer" ); + CMLog( @"ERROR: could not expand buffer" ); exit(0); } for ( i = 0; i < top; i++ ) { - if ( cl_compare_double_eps( *(data+i), value, 0.1 ) == 0 ) + if ( CMCompareDoublesWithEpsilon( *(data+i), value, 0.1 ) == 0 ) { results[resultsAmount++] = (TCaddress)address + i * sizeof(value); } @@ -704,7 +707,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_DECIMAL size:SIZE_64_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } @@ -712,7 +715,7 @@ { kern_return_t result; - int8_t data; + char *data; vm_size_t dataLength; TCaddress *results; @@ -728,11 +731,20 @@ return; } + if ( (data = (char *)malloc( vsize )) == NULL ) + { + CMLog( @"ERROR: could not create buffer" ); + + [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; + return; + } + if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; + free( data ); return; } @@ -740,11 +752,11 @@ { TCaddress address = lastResultsData[i]; - dataLength = sizeof(data); + //dataLength = sizeof(data); - if ( (result = vm_read_overwrite( processTask, address, sizeof(data), (vm_address_t)(&data), &dataLength )) == KERN_SUCCESS ) + if ( (result = vm_read_overwrite( processTask, address, vsize, (vm_address_t)(data), &dataLength )) == KERN_SUCCESS ) { - if ( data == value[0] ) + if ( memcmp( data, value, dataLength ) == 0 ) { results[resultsAmount++] = address; } @@ -753,7 +765,7 @@ { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -762,7 +774,9 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_8_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + free( data ); + + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchIntegerChar:(int8_t)value @@ -787,7 +801,7 @@ if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -810,7 +824,7 @@ { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -819,7 +833,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_8_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchIntegerShort:(int16_t)value @@ -844,7 +858,7 @@ if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -867,7 +881,7 @@ { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -876,7 +890,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_16_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchIntegerLong:(int32_t)value @@ -901,7 +915,7 @@ if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -924,7 +938,7 @@ { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -933,7 +947,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_INTEGER size:SIZE_32_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchDecimalFloat:(float)value @@ -958,7 +972,7 @@ if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -972,7 +986,7 @@ if ( (result = vm_read_overwrite( processTask, address, sizeof(data), (vm_address_t)(&data), &dataLength )) == KERN_SUCCESS ) { - if ( cl_compare_float_eps( data, value, 0.1f ) == 0 ) + if ( CMCompareFloatsWithEpsilon( data, value, 0.1f ) == 0 ) { results[resultsAmount++] = address; } @@ -981,7 +995,7 @@ { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -990,7 +1004,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_DECIMAL size:SIZE_32_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } - (void)searchDecimalDouble:(double)value @@ -1015,7 +1029,7 @@ if ( (results = (TCaddress *)malloc( TCAddressSize*lastResultsAmount )) == NULL ) { - NSLog( @"ERROR: could not create buffer" ); + CMLog( @"ERROR: could not create buffer" ); [self sendError:@"The server cancelled the search because it ran out of memory." fatal:NO]; return; @@ -1029,7 +1043,7 @@ if ( (result = vm_read_overwrite( processTask, address, sizeof(data), (vm_address_t)(&data), &dataLength )) == KERN_SUCCESS ) { - if ( cl_compare_double_eps( data, value, 0.1 ) == 0 ) + if ( CMCompareDoublesWithEpsilon( data, value, 0.1 ) == 0 ) { results[resultsAmount++] = address; } @@ -1038,7 +1052,7 @@ { if ( result != KERN_PROTECTION_FAILURE ) { - NSLog( @"vm_read_overwrite returned error: %i", result ); + CMLog( @"vm_read_overwrite returned error: %i", result ); break; } } @@ -1047,7 +1061,7 @@ realloc( results, TCAddressSize*resultsAmount ); [searchResults addObject:[SearchResults resultsWithType:TYPE_DECIMAL size:SIZE_64_BIT data:results amount:resultsAmount]]; - NSLog( @"found %i of %i", resultsAmount, value ); + CMLog( @"found %i of %i", resultsAmount, value ); } @@ -1056,8 +1070,6 @@ int failCount = 0; int i; - NSLog( @"change string: %s", value ); - for ( i = 0; i < count; i++ ) { if ( vm_write( processTask, (vm_address_t)addresses[i], (vm_offset_t)value, vsize ) != KERN_SUCCESS ) @@ -1206,7 +1218,7 @@ if ( (buffer = (char *)malloc( length ))==NULL ) { - NSLog( @"sendProcessList failed" ); + CMLog( @"sendProcessList failed" ); return; } @@ -1228,7 +1240,7 @@ if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendProcessList failed" ); + CMLog( @"sendProcessList failed" ); } free( buffer ); @@ -1246,7 +1258,7 @@ if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendSearchFinished failed" ); + CMLog( @"sendSearchFinished failed" ); } } @@ -1255,19 +1267,21 @@ PacketHeader header; int length; int lengthAfter; + int displayAmount = ( searchResultsAmountDisplayed > amount )? amount : searchResultsAmountDisplayed; + int resultsLength = TCAddressSize * displayAmount; char *buffer, *ptr; header.checksum = RandomChecksum(); header.function = 7; - header.size = sizeof(amount) + TCAddressSize*amount; - // AMOUNT DATA + header.size = sizeof(amount) + sizeof(displayAmount) + resultsLength; + // AMOUNT DISPLAY AMOUNT DATA lengthAfter = length = header.size + sizeof(header); if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendVariableList:amount: failed" ); + CMLog( @"sendVariableList:amount: failed" ); return; } @@ -1275,14 +1289,17 @@ COPY_TO_BUFFER( ptr, &header, sizeof(header) ); COPY_TO_BUFFER( ptr, &amount, sizeof(amount) ); - COPY_TO_BUFFER( ptr, data, TCAddressSize*amount ); + COPY_TO_BUFFER( ptr, &displayAmount, sizeof(displayAmount) ); + COPY_TO_BUFFER( ptr, data, resultsLength ); if ( SendBuffer( sockfd, buffer, &length ) == -1 || lengthAfter != length ) { - NSLog( @"sendVariableList:amount: failed" ); + CMLog( @"sendVariableList:amount: failed" ); } free( buffer ); + + CMLog( @"SERVER sending %i out of %i results", displayAmount, amount ); } - (void)sendChangeFinished @@ -1296,7 +1313,7 @@ if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendChangeFinished failed" ); + CMLog( @"sendChangeFinished failed" ); } } @@ -1319,7 +1336,7 @@ if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendError:fatal: failed" ); + CMLog( @"sendError:fatal: failed" ); return; } @@ -1331,7 +1348,7 @@ if ( SendBuffer( sockfd, buffer, &length ) == -1 || lengthAfter != length ) { - NSLog( @"sendError:fatal: failed" ); + CMLog( @"sendError:fatal: failed" ); } free( buffer ); @@ -1353,7 +1370,7 @@ if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendUndoFinished failed" ); + CMLog( @"sendUndoFinished failed" ); } } @@ -1368,7 +1385,7 @@ if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendRedoFinished failed" ); + CMLog( @"sendRedoFinished failed" ); } } @@ -1391,7 +1408,7 @@ if ( (buffer = (char *)malloc( length )) == NULL ) { - NSLog( @"sendSetTargetPID: failed" ); + CMLog( @"sendSetTargetPID: failed" ); } ptr = buffer; @@ -1402,7 +1419,7 @@ if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendUndoRedoStatus: failed" ); + CMLog( @"sendUndoRedoStatus: failed" ); } free( buffer ); @@ -1432,7 +1449,7 @@ if ( (buffer = (char *)malloc( length ))==NULL ) { - NSLog( @"sendAppLaunched: failed" ); + CMLog( @"sendAppLaunched: failed" ); return; } @@ -1447,7 +1464,7 @@ if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendAppLaunched: failed" ); + CMLog( @"sendAppLaunched: failed" ); } free( buffer ); @@ -1477,7 +1494,7 @@ if ( (buffer = (char *)malloc( length ))==NULL ) { - NSLog( @"sendAppQuit: failed" ); + CMLog( @"sendAppQuit: failed" ); return; } @@ -1491,7 +1508,7 @@ if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendAppQuit: failed" ); + CMLog( @"sendAppQuit: failed" ); } free( buffer ); @@ -1508,7 +1525,7 @@ if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) ) { - NSLog( @"sendTargetAppQuit failed" ); + CMLog( @"sendTargetAppQuit failed" ); } } @@ -1531,7 +1548,7 @@ if ( (buffer = (char *)malloc( length ))==NULL ) { - NSLog( @"sendPauseFinished: failed" ); + CMLog( @"sendPauseFinished: failed" ); return; } @@ -1545,7 +1562,7 @@ if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length ) { - NSLog( @"sendPauseFinished: failed" ); + CMLog( @"sendPauseFinished: failed" ); } free( buffer ); @@ -1571,6 +1588,9 @@ COPY_FROM_BUFFER( &type, ptr, sizeof(type) ); COPY_FROM_BUFFER( &size, ptr, sizeof(size) ); + + // receive the amount of results to return + COPY_FROM_BUFFER( &searchResultsAmountDisplayed, ptr, sizeof(searchResultsAmountDisplayed) ); if ( ![searchResults lastObject] ) { @@ -1582,7 +1602,7 @@ { case SIZE_8_BIT: { - [self firstSearchString8bit:ptr size:(dataSize - (ptr - data))]; + [self firstSearchString8bit:ptr size:(dataSize - (ptr - data) - 1)]; } break; } @@ -1860,21 +1880,21 @@ } else { - NSLog( @"ERROR: process couldn't be paused" ); + CMLog( @"ERROR: process couldn't be paused" ); [self sendPauseFinished:NO]; [self sendError:@"Could not pause target because of an unknown error." fatal:NO]; } } else { - NSLog( @"ERROR: process couldn't be paused" ); + CMLog( @"ERROR: process couldn't be paused" ); [self sendPauseFinished:NO]; [self sendError:@"Could not pause target because of an unknown error." fatal:NO]; } } else { - NSLog( @"ERROR: process couldn't be paused" ); + CMLog( @"ERROR: process couldn't be paused" ); [self sendPauseFinished:NO]; switch ( errno ) @@ -1995,7 +2015,7 @@ if ( (result = task_for_pid( current_task(), processID, &processTask)) != KERN_SUCCESS ) { - NSLog( @"task_for_pid returned error: %i", result ); + CMLog( @"task_for_pid returned error: %i", result ); } } @@ -2053,6 +2073,27 @@ %%%%%%%%%%%%%%%%%%%%%% Internal Functions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ + +#define ASIZE 256 +int bmsearch( char *pat, int m, char *text, int n, void *base, void *loc[] ) +{ + int count = 0; + int i, j, k, skip[ASIZE]; + + if( m==0 ) return 0; + for( k=0; k=0 && text[i] == pat[j]; j-- ) i--; + if( j == (-1) ) + /* SAVE LOCATION */ + loc[count++] = (void *)( base+i+1 ); + //return( text+i+1 ); + } + return count; +} + /* BOOL compare_float( float a, float b ) {