Jump to content

CmP

Contributor
  • Posts

    653
  • Joined

  • Last visited

  • Days Won

    49

Everything posted by CmP

  1. Strongest encryption? You are not learning the lesson. Your "encryption" is still weak and you are still calling it the best (strongest). Took me 15 minutes to extract the source code from your 284 kb script full of redundant "encryption". Here you can find it: ''strongest_encryption''.lua Keep learning and stop pretending that bad things are good, then maybe one day you will be able to produce good scripts.
  2. CmP

    Agar.io hack

    Well, time should not be wasted on something that is controlled by the server, so the first step here should be a try to determine whether client sends just the request to perform a split or it "tells" the server that split has been performed and sends the result of it. Only if/when there will be some confidence that client controls the process of splitting, it is worth to start thinking, how desired values can be found in process memory.
  3. CmP

    Agar.io hack

    Worth to try, although this won't usually work when account data is stored at the server.
  4. If you mean game data, then you may search for it in Android/data/*name of parallel space package*/. For example, for Parallel Space (virtual space application) with package name "com.lbe.parallel.intl" and a game with package name "com.test.game", the path will be "Android/data/com.lbe.parallel.intl/parallel_intl/0/com.test.game/".
  5. CmP

    Agar.io hack

    @XxhentaixX have you tried capturing packets that are sent/received by this game during playing a match and/or some other actions? Analyzing them usually helps to determine what is controlled by the server and what is not.
  6. Install current version of GG, there is (in most cases) no reason in using old versions. Which files are you writing about?
  7. Those options appear when you have installed GG's apk file and launch the app for the first time. Dialog to choose "Install mode" appears and there are 3 options: 1. default; 2. for hacking 32-bit games in 64-bit virtual space; 3. for hacking 64-bit games in 64-bit virtual space.
  8. CmP

    Agar.io hack

    "nick" = nickname He means a feature that user can choose nickname of any length (but the server probably won't accept long nicknames). Actually, split distance would be much more interesting thing to try, but I guess that server controls this as well.
  9. Why do you write "don't try to decrypt this file"? Because it's is very hard to do or because you don't want the source code to be stolen by someone? If you choose second option, then why do you think that you can decrypt other's scripts (at least you did it very often with bad-protected ones) and others can't do it with your's?
  10. Password for current version of this script = 167 + 256 * N , where N can be any integer from 0 to some big number. I.e. any of these passwords will suffice: 167, 423, 679, 935 ...
  11. I would suggest not using "goto" at all, but it's up to you. One thing you can try is "converting" all parts of the code that starts with labels to functions and replacing all goto usages with the calls to corresponding functions. Another option is to change all local variables to global (so that goto jumps won't enter local variables scope), but this is awful solution that is considered to be bad practice.
  12. Another example that may be easier to understand (since it uses "editAll" function, which is used very often by novice script-writers): gg.searchNumber('2', gg.TYPE_FLOAT) local results = gg.getResults(22) local excludedResultNumber = 4 if results[excludedResultNumber] ~= nil then gg.removeResults({results[excludedResultNumber]}) end print('editAll:', gg.editAll('-2', gg.TYPE_FLOAT)) This approach consists of 2 main steps: The result that should not be changed is removed from the list of results. "editAll" function is applied to edit all results that remained in the list.
  13. You need to know how to find the result that you want to be excluded from editing. Most likely, it's position in result list won't be consistent. Here is an example of implementing the algorithm described by Enyby: gg.searchNumber('2', gg.TYPE_FLOAT) local results = gg.getResults(22) local excludedResultNumber = 4 if results[excludedResultNumber] ~= nil then results[excludedResultNumber] = nil end for k, v in pairs(results) do v.value = '-2' end print('setValues: ', gg.setValues(results)) You will need to adapt it according to your requirements.
  14. This 2-mb "loader" is useless. Just post that file from your github repository. Here it is: online.lua
  15. How can it be secret, if (in case of this script) there are tons of ways to get that password? In any case, there always will be 100% possibility of getting your password, if you "protect" the script like this: v = gg.prompt({"Password:"}, {""}, {"text"}) pass = "\225\131\149\225\131\146\225\131\152\225\131\160\225\131\148\225\131\165\225\131\148" if v == nil then gg.toast("Script Canceled") else if v[1] ~= pass then gg.toast("wrong password") However, there is also a good side here - less people will spend their money on scripts like this one. Instead of selling a bunch of ***** code, you would better encourage people to contribute to GG project.
  16. It's working fine, those invisible bad characters sometimes appear when the code is copied from forum. You need to retype the line in which the error has occurred. Try this file: multi_passwords.lua
  17. Here is an example. Should not be hard to adapt/extend it according to what you want. local passwords = {'rt23wrfvcwy4', '14ct4wv4t4v', '3hjtyjywr2r2qw', '123456'} -- list of all valid passwords here local input = gg.prompt({'Enter password:'}, nil, {'text'}) if input == nil then -- Something to do, if user cancelled prompt window else local isValidPass = false for k, v in pairs(passwords) do if input[1] == v then isValidPass = true break end end assert(isValidPass, 'Password is not valid') end
  18. No need to pay someone when the script is "protected" like this: 117 [-] GETTABUP 12 0 -56 ; 0 null "os" 118 [-] GETTABLE 12 12 -57 ; "date" 119 [-] LOADK 13 -58 ; "%A" 120 [-] CALL 12 2 2 121 [-] EQ 1 12 -59 ; - "Wednesday" 122 [-] JMP 25 ; to 148 123 [-] GETTABUP 12 0 -56 ; 0 null "os" 124 [-] GETTABLE 12 12 -57 ; "date" 125 [-] LOADK 13 -58 ; "%A" 126 [-] CALL 12 2 2 127 [-] EQ 1 12 -60 ; - "Thursday" 128 [-] JMP 19 ; to 148 129 [-] GETTABUP 12 0 -56 ; 0 null "os" 130 [-] GETTABLE 12 12 -57 ; "date" 131 [-] LOADK 13 -58 ; "%A" 132 [-] CALL 12 2 2 133 [-] EQ 1 12 -61 ; - "Friday" 134 [-] JMP 13 ; to 148 135 [-] GETTABUP 12 0 -56 ; 0 null "os" 136 [-] GETTABLE 12 12 -57 ; "date" 137 [-] LOADK 13 -58 ; "%A" 138 [-] CALL 12 2 2 139 [-] EQ 1 12 -62 ; - "Monday" 140 [-] JMP 7 ; to 148 141 [-] GETTABUP 12 0 -56 ; 0 null "os" 142 [-] GETTABLE 12 12 -57 ; "date" 143 [-] LOADK 13 -58 ; "%A" 144 [-] CALL 12 2 2 145 [-] EQ 1 12 -63 ; - "Tuesday" 146 [-] JMP 1 ; to 148 147 [-] LOADBOOL 12 0 1 148 [-] LOADBOOL 12 1 0 149 [-] EQ 0 12 -64 ; - true 150 [-] JMP 2 ; to 153 151 [-] GETTABUP 13 0 -43 ; 0 null "start" 152 [-] CALL 13 1 1 You can simply change one letter of each string, that is compared with the value returned by os.date('%A') and voila:
  19. Have you at least tried searching for it, checking "Downloads" section, etc? Script compiler (#9b2xri28)
  20. CmP

    LUA scripting

    You can modify your function this way: function A1() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('45.0000038147;20.30000114441;4.40000009537;256D;0::84', gg.TYPE_FLOAT) local count = gg.getResultCount() if count == 0 then -- need to check count of results here too, because if nothing found, then next search will be new search, not refine -- something to perform if nothing was found else gg.searchNumber('0', gg.TYPE_FLOAT) count = gg.getResultCount() if count == 0 then -- something to perform if nothing was found else local results = gg.getResults(count) local lastResult = {results[count]} lastResult[1].value = '2.1019477e-44' gg.setValues(lastResult) gg.toast('111! ') end end end This may be considered as implementation of first approach from the ones that Enyby has mentioned. I guess that it is suitable for your case, because such group search usually won't produce many results.
  21. CmP

    Script compiler

    You won't ever succeed, if you don't try. Encrypted script .load_0.lua Which can be perfectly decompiled with: UnLuac (decompile binary scripts) (#svk27xf) Final result: Encrypted_script_decompiled.lua
  22. CmP

    Script compiler

    I was really amazed with last 2-3 updates of the script. It really becomes better with each version. Thanks for your hard work. Also, it's a bit sad, that those guys, who commented before, does not judge the script by how good is it written. Their criteria is: does the script fully restore *random_script_name* to initial form without any effort from their side? If no, their "feedback" will be: "Enbi/Enby/Ember, FIX IT PLSSS" and that is best possible "contribution" from their side... I have one little suggestion to (possibly) improve the script. "Log GG calls" and "dump data from load function calls" used to be separate menu items, now they are merged in one item. I can't judge, if it is good or bad decision, but there are cases, when user does not need to get the results from both of this features at the same time (for example, only log of GG calls is required for user). Possible solution without changes to current menu of the script is to add sub-menu, which will appear after clicking at last item from current menu and will contain multi-choice from 2 elements: "Dump data from load call", "Log all GG calls". Default selection may consist of both items in this case.
  23. Moreover, the number WILL change (in most cases). You can't rely on it and of course not on the index number of the desired element in results list. Find other way of searching for required value. Maybe look for patterns before/after the value in memory editor, also check nearby pointers and pointers to the addresses that are close to the address of your value.
  24. These symbols probably appear when the code is being copied from forum. Retyping the line where an error occured most likely will help. File with the function and a call to it (run from GG to test, if it works): aimbot_function.lua You don't need to do this. If it's group search and you need to search for values of different types, then you specify the type after the value. Otherwise, you don't. In your case, there is only 1 value, type of the search is "gg.TYPE_FLOAT", meaning that float value will be searched. Example, where specifying the type is needed: Objective — search for double value 4.32, followed by dword value 7274, followed by byte value 87 with group size equal to 14. Search string — "4.32E; 7274D; 87B::14".
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.