CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✗ | 
| LangLanguage | Obj-CObjective C | 
| License | MIT | 
| ReleasedLast Release | Dec 2014 | 
Maintained by Unclaimed.
Fast and easy to use tool in simple OBJECTIVE-C to avoid memory cheating by scanning (searching). See igameguardian, "Cheat Engine"…
Well, it's a cheating method that access to the physical memory of an app/game searching patterns. Common cheating tools like this are able to find Int8, Int16, Int32 and Float32 types easily and modify them.
OBME(T variable) returns a xor function applied to the bits of "variable".
return (variable ^ mask);#define OBME(value)  // takes a value of any primitive type.int64_t value = 100;
printf("Original value: %lld \n", value);
value = OBME(value);
printf("Obfuscated value: %lld \n", value);
value = OBME(value);
printf("Restored value: %lld \n", value);Output:
Original value: 100 
Obfuscated value: 7095209165337824491 
Restored value: 100 
The obfuscated values change each time the app is started, this is because they are generated using a random generated mask of bits.
int64_t value64 = 1;
uint32_t value32 = -2;
int8_t value8 = 3;
float valueF = 4.4f;
double valueD = 5.2f;
// Obfuscating values
value64 = OBME(value64);
value32 = OBME(value32);
value8  = OBME(value8);
valueF  = OBME(valueF);
valueD  = OBME(valueD);
// Restoring values
value64 = OBME(value64);
value32 = OBME(value32);
value8  = OBME(value8);
valueF  = OBME(valueF);
valueD  = OBME(valueD);float _score;
void init() {
    _score = OBME( 0.0f );
    addToScore(10);
    addToScore(25);
    printScore(); // prints "The score is 35.0"
    printf("%f\n", _score); // prints a random number
}
void addToScore(float add) {
   _score = OBME( OBME(_score) + add );
}
void printScore() {
    printf(@"The score is %f \n", OBME(_score));
}Real values are never exposed.