Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 32
  1. #16
    Broderick's Avatar
    Join Date
    Apr 2011
    Gender
    male
    Location
    Basement.
    Posts
    100
    Reputation
    42
    Thanks
    30
    This isn't encryption; it's a cipher, and not a very good one at that :/
    The fish trap exists because of the fish.
    Once you've gotten the fish you can forget the trap.
    The rabbit snare exists because of the rabbit.
    Once you've gotten the rabbit, you can forget the snare.
    Words exist because of meaning.
    Once you've gotten the meaning, you can forget the words.
    Where can I find a man who has forgotten words so I can talk with him?

  2. #17
    LilGho$t's Avatar
    Join Date
    Nov 2011
    Gender
    male
    Posts
    419
    Reputation
    9
    Thanks
    330
    My Mood
    Twisted
    Quote Originally Posted by Password77 View Post
    XOR for life
    Xor will be detected soon enough.

  3. #18
    kotentopf's Avatar
    Join Date
    Nov 2009
    Gender
    male
    Posts
    602
    Reputation
    26
    Thanks
    251
    Quote Originally Posted by LilGho$t View Post
    Xor will be detected soon enough.
    The Internet SHOULD Be Illegal

    When you say
    "Java is a great programming language because it works on all platforms"
    it is just like
    "anal sex is great because it works on all genders"

    Are YOU a Troll?

  4. The Following User Says Thank You to kotentopf For This Useful Post:

    arun823 (08-06-2012)

  5. #19
    LilGho$t's Avatar
    Join Date
    Nov 2011
    Gender
    male
    Posts
    419
    Reputation
    9
    Thanks
    330
    My Mood
    Twisted
    Quote Originally Posted by kotentopf View Post
    /).- nexon is using xor on a new game of theirs (sudden attack been out for a few months). Don't you think by now they know about xor and they know what to scan for. We used xor not only to prevent hex-editors but it also helped conceal strings from nexons scanning system with xor having been so mass released and massively used it will soon be patched because they'll throw in their scanner to scan for:
    Code:
    "\x8E\xB4\xA7\xB3\xBD\xB7\xB0\xB2\xF7\x93\xB0\xB6\xB7"
    "\xD1\xE6\xF0\xF1\xEF\xE9\xEF\xFA"
    "\x2C\xE1\xF7\xE7\xA3\xC9\xE0\xE8\xF2"
    "\xBD\x84\x96\xD6\xB8\xA8\xB2"
    etc.

    So, make your own encryption and dodge their scanner.

  6. #20
    Ch40zz-C0d3r's Avatar
    Join Date
    Apr 2011
    Gender
    male
    Posts
    831
    Reputation
    44
    Thanks
    401
    My Mood
    Twisted
    Quote Originally Posted by LilGho$t View Post
    /).- nexon is using xor on a new game of theirs (sudden attack been out for a few months). Don't you think by now they know about xor and they know what to scan for. We used xor not only to prevent hex-editors but it also helped conceal strings from nexons scanning system with xor having been so mass released and massively used it will soon be patched because they'll throw in their scanner to scan for:
    Code:
    "\x8E\xB4\xA7\xB3\xBD\xB7\xB0\xB2\xF7\x93\xB0\xB6\xB7"
    "\xD1\xE6\xF0\xF1\xEF\xE9\xEF\xFA"
    "\x2C\xE1\xF7\xE7\xA3\xC9\xE0\xE8\xF2"
    "\xBD\x84\x96\xD6\xB8\xA8\xB2"
    etc.

    So, make your own encryption and dodge their scanner.
    You know what your saying is completely shit?
    Example:
    Code:
    /*Remote Kill*/XorStr<0x36,12,0xD7548B3F>("\x64\x52\x55\x56\x4E\x5E\x1C\x76\x57\x53\x2C"+0xD7548B3F).s
    We are adding an offset to the byte string. We can change the offset, we can also use bytes instead of a bytestring. If you dont know what your saying, dont say it.

    Progress with my game - "Disbanded"
    • Fixed FPS lag on spawning entities due to the ent_preload buffer!
    • Edit the AI code to get some better pathfinding
    • Fixed the view bug within the sniper scope view. The mirror entity is invisible now!
    • Added a new silencer for ALL weapons. Also fixed the rotation bugs
    • Added a ton of new weapons and the choice to choose a silencer for every weapon
    • Created a simple AntiCheat, noobs will cry like hell xD
    • The name will be Disbanded, the alpha starts on the 18th august 2014



    Some new physics fun (Serversided, works on every client)



    My new AI
    https://www.youtube.com/watch?v=EMSB1GbBVl8

    And for sure my 8 months old gameplay with 2 friends
    https://www.youtube.com/watch?v=Na2kUdu4d_k

  7. #21
    kotentopf's Avatar
    Join Date
    Nov 2009
    Gender
    male
    Posts
    602
    Reputation
    26
    Thanks
    251
    Quote Originally Posted by LilGho$t View Post
    /).- nexon is using xor on a new game of theirs (sudden attack been out for a few months). Don't you think by now they know about xor and they know what to scan for. We used xor not only to prevent hex-editors but it also helped conceal strings from nexons scanning system with xor having been so mass released and massively used it will soon be patched because they'll throw in their scanner to scan for:
    Code:
    "\x8E\xB4\xA7\xB3\xBD\xB7\xB0\xB2\xF7\x93\xB0\xB6\xB7"
    "\xD1\xE6\xF0\xF1\xEF\xE9\xEF\xFA"
    "\x2C\xE1\xF7\xE7\xA3\xC9\xE0\xE8\xF2"
    "\xBD\x84\x96\xD6\xB8\xA8\xB2"
    etc.

    So, make your own encryption and dodge their scanner.
    i already told, that you can use any key for xor (except one key)
    nexon can try to search in a loaded module for the position of a xorcompiled string and the location of xorkey. and if this matches a string like "Aimbot" the game will crash.
    but this is inperfomant as hell (scan a complette module, logical combine of maybe a key and maybe a xorcompiled string and check if the string is matching). scan would need for a simple hotkeyhack about 1 minute. scanning a complex multihack with alot of string a lot of functions alot of pointer should need about 7 minutes to scan and analyse. then logical thinking for the game. low FPS. fucked player. CA is going down.

    i'm saying it again:
    The Internet SHOULD Be Illegal

    When you say
    "Java is a great programming language because it works on all platforms"
    it is just like
    "anal sex is great because it works on all genders"

    Are YOU a Troll?

  8. The Following User Says Thank You to kotentopf For This Useful Post:

    Shadow` (08-06-2012)

  9. #22
    LilGho$t's Avatar
    Join Date
    Nov 2011
    Gender
    male
    Posts
    419
    Reputation
    9
    Thanks
    330
    My Mood
    Twisted
    Quote Originally Posted by Ch40zz-C0d3r View Post
    You know what your saying is completely shit?
    Example:
    Code:
    /*Remote Kill*/XorStr<0x36,12,0xD7548B3F>("\x64\x52\x55\x56\x4E\x5E\x1C\x76\x57\x53\x2C"+0xD7548B3F).s
    We are adding an offset to the byte string. We can change the offset, we can also use bytes instead of a bytestring. If you dont know what your saying, dont say it.
    Talk to pwnage about it (coder at a different site) he's the one who brought it to my attention. I for one see what he's saying if you disagree, hit him up.
    Last edited by LilGho$t; 08-07-2012 at 09:41 AM. Reason: Spelling/Grammar

  10. #23
    Shadow`'s Avatar
    Join Date
    Nov 2011
    Gender
    male
    Location
    MN
    Posts
    636
    Reputation
    74
    Thanks
    3,014
    My Mood
    Relaxed
    Quote Originally Posted by LilGho$t View Post
    Talk to pwnage about it (coder at a different site) he's the one who brought it to my opinion. I for one see what he's saying if you disagree, hit him up.
    I think kotentopf is more experienced in this subject that "pwnage".

  11. #24
    Password77's Avatar
    Join Date
    Jun 2012
    Gender
    male
    Location
    Canada, ON
    Posts
    179
    Reputation
    10
    Thanks
    181
    My Mood
    Cheerful
    Quote Originally Posted by Shadow` View Post
    I think kotentopf is more experienced in this subject that "pwnage".
    Lol it might have been just a thought, like kotentopf said, its not that hard to figure out how xor works :P Maybe nexon will work its way around xor
    Doing more Java and Python
    Need help with your hack? Ask me, I will try to help you with all my might .

  12. #25
    de.bug's Avatar
    Join Date
    May 2009
    Gender
    male
    Posts
    30
    Reputation
    12
    Thanks
    9
    My Mood
    Amused
    @Password77:
    Calling new char[] means you should also call delete [] to release the memory. Also returning a pointer to a local variable that is not static is a very bad idea as it's only guaranteed to be valid within the scope of the function. You should pass a buffer for the output as an argument to function and let function return pointer to the buffer you passed to prevent issues. I pointed this out on a previous post to similar code I saw here as well so just tossing it out there again...

    Look at doing it via a class with members you can store your strings in.

    Greets

  13. #26
    Broderick's Avatar
    Join Date
    Apr 2011
    Gender
    male
    Location
    Basement.
    Posts
    100
    Reputation
    42
    Thanks
    30
    Quote Originally Posted by de.bug View Post
    @Password77:
    Also returning a pointer to a local variable that is not static is a very bad idea as it's only guaranteed to be valid within the scope of the function.
    Not so with heap allocation in C++; there is no garbage collector (thought even a GC wouldn't clean it up as it's still referenced...but I digress). As you said in the earlier part of your post, you must call delete [] to free the allocated memory, until then it's just sitting there, hogging memory. This is the cause of many nightmares and memory leaks in applications that haven't properly free'd dynamically allocated memory. Returning the pointer to the heap allocation is completely valid from within a function.

    While it's true that you can't and shouldn't return some local variables (ones that aren't primitive such as int/long/bool etc), this is simply because they're allocated on the stack (local structs and fixed-size arrays as an example). After the function returns (or just before, depending on the calling convention), the stack pointer is reset, invalidating all locals that were allocated on the stack (subsequent functions can now overwrite the data on the stack without limitation.

    So from that post there is really only one valid point; you should be properly freeing dynamically allocated memory after you've used it so that the OS can reuse it. Do this by calling delete or delete[] depending on which version of new you called (new or new[])
    The fish trap exists because of the fish.
    Once you've gotten the fish you can forget the trap.
    The rabbit snare exists because of the rabbit.
    Once you've gotten the rabbit, you can forget the snare.
    Words exist because of meaning.
    Once you've gotten the meaning, you can forget the words.
    Where can I find a man who has forgotten words so I can talk with him?

  14. #27
    de.bug's Avatar
    Join Date
    May 2009
    Gender
    male
    Posts
    30
    Reputation
    12
    Thanks
    9
    My Mood
    Amused
    Quote Originally Posted by Broderick View Post


    Not so with heap allocation in C++; there is no garbage collector (thought even a GC wouldn't clean it up as it's still referenced...but I digress). As you said in the earlier part of your post, you must call delete [] to free the allocated memory, until then it's just sitting there, hogging memory. This is the cause of many nightmares and memory leaks in applications that haven't properly free'd dynamically allocated memory. Returning the pointer to the heap allocation is completely valid from within a function.

    While it's true that you can't and shouldn't return some local variables (ones that aren't primitive such as int/long/bool etc), this is simply because they're allocated on the stack (local structs and fixed-size arrays as an example). After the function returns (or just before, depending on the calling convention), the stack pointer is reset, invalidating all locals that were allocated on the stack (subsequent functions can now overwrite the data on the stack without limitation.

    So from that post there is really only one valid point; you should be properly freeing dynamically allocated memory after you've used it so that the OS can reuse it. Do this by calling delete or delete[] depending on which version of new you called (new or new[])
    You made some valid points but I'll stand by what I said about the scope of a variable. Just because garbage collection is broken or may not happen it's not good coding practice to return a pointer to a variable declared inside a function unless you define it as static. Either way this code is broken due to the massive memory leak it creates.

  15. #28
    Password77's Avatar
    Join Date
    Jun 2012
    Gender
    male
    Location
    Canada, ON
    Posts
    179
    Reputation
    10
    Thanks
    181
    My Mood
    Cheerful
    so @de.bug you mean instead of returning the char what i should have done is #define blah blah blah? Because i thought returning from a method is efficient coding practice. I guess i was wrong.
    Doing more Java and Python
    Need help with your hack? Ask me, I will try to help you with all my might .

  16. #29
    de.bug's Avatar
    Join Date
    May 2009
    Gender
    male
    Posts
    30
    Reputation
    12
    Thanks
    9
    My Mood
    Amused
    The problem is your allocating new memory on every call and not calling delete [] to free it. Next problem is if you free it you can't return it which is why I suggested passing a buffer to hold the output. This is better suited to be a class though.

    Something like this
    Code:
    char* Decrypt( char* pIn, char* pOut, int BufSize)
    {
        int length = strlen(pIn);
        if (length > BufSize) return 0;
    
        //do your encode/decode and write output into pOut
    
        return pOut;
    }
    
    char* pDecoded = new char[64];
    
    if ( Decrypt( "encodedstring", pDecoded, 64) )
    {
        
    }
    
    // free the memory when done
    // note the [] used with delete, this is because you used new char[]
    delete [] pDecoded;
    A better solution is to use the pre-build event in VS and write a script using python, perl whatever to generate a header file with encoded strings. The advantage here is the script knows how many strings there are, the max length and can make a random key on each new build. I do this but use a class to access them, the class keeps track if a string is already decoded or not, allows you to have a valid pointer to a given string at all times etc.

    This is basically how i access do mine using a class and pre-build event to create the header file.
    Code:
    // to retrieve or decode a string
    char* pStr = g_pStringManager->GetChar( STR_SOME_STRING );
    
    // End of render frame secure them
    g_pStringManager->SecureAll();
    
    //In header file I simply generate defines
    #define STR_SOME_STRING "encoded_string_data"
    Think on the class based solution and build events would make a nice project for you to tinker with.
    Last edited by de.bug; 08-22-2012 at 12:25 AM.

  17. The Following User Says Thank You to de.bug For This Useful Post:

    Password77 (08-22-2012)

  18. #30
    Password77's Avatar
    Join Date
    Jun 2012
    Gender
    male
    Location
    Canada, ON
    Posts
    179
    Reputation
    10
    Thanks
    181
    My Mood
    Cheerful
    Thank you for clearing it up
    Quote Originally Posted by de.bug View Post
    The problem is your allocating new memory on every call and not calling delete [] to free it. Next problem is if you free it you can't return it which is why I suggested passing a buffer to hold the output. This is better suited to be a class though.

    Something like this
    Code:
    char* Decrypt( char* pIn, char* pOut, int BufSize)
    {
        int length = strlen(pIn);
        if (length > BufSize) return 0;
    
        //do your encode/decode and write output into pOut
    
        return pOut;
    }
    
    char* pDecoded = new char[64];
    
    if ( Decrypt( "encodedstring", pDecoded, 64) )
    {
        
    }
    
    // free the memory when done
    // note the [] used with delete, this is because you used new char[]
    delete [] pDecoded;
    A better solution is to use the pre-build event in VS and write a script using python, perl whatever to generate a header file with encoded strings. The advantage here is the script knows how many strings there are, the max length and can make a random key on each new build. I do this but use a class to access them, the class keeps track if a string is already decoded or not, allows you to have a valid pointer to a given string at all times etc.

    This is basically how i access do mine using a class and pre-build event to create the header file.
    Code:
    // to retrieve or decode a string
    char* pStr = g_pStringManager->GetChar( STR_SOME_STRING );
    
    // End of render frame secure them
    g_pStringManager->SecureAll();
    
    //In header file I simply generate defines
    #define STR_SOME_STRING "encoded_string_data"
    Think on the class based solution and build events would make a nice project for you to tinker with.
    Doing more Java and Python
    Need help with your hack? Ask me, I will try to help you with all my might .

Page 2 of 3 FirstFirst 123 LastLast

Similar Threads

  1. [Release] Encrypted Strings
    By Flengo in forum Combat Arms Hack Coding / Programming / Source Code
    Replies: 6
    Last Post: 12-24-2012, 06:23 PM
  2. [Info] nmconew General Packet Format and Encryption
    By Fovea in forum Vindictus Hacks & Cheats
    Replies: 11
    Last Post: 05-15-2011, 02:08 PM
  3. Program 4 auto-Serials and encryption
    By Web-Designer in forum Coders Lounge
    Replies: 3
    Last Post: 01-03-2011, 12:41 PM
  4. [RELEASE||HELP]Compression and Encryption of Byte Arrays
    By topblast in forum Visual Basic Programming
    Replies: 0
    Last Post: 12-24-2010, 01:21 AM
  5. Strings and chracter arrays
    By zeco in forum C++/C Programming
    Replies: 0
    Last Post: 08-04-2009, 03:14 PM