Jump to content

CmP

Contributor
  • Posts

    639
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by CmP

  1. Same way as for exact values, but using ranges. For example, a string for group searching these values with default group size looks like: "7~7.1;13.9~14;21~21.1". More information about this can be found in GG help: https://gameguardian.net/help/help.html#help_group_search_ https://gameguardian.net/help/help.html#help_range_search
  2. I am little late, because the answer is already given, but have one thing to add. If you need to match '[' character in the string, insert escape character ('%') before it, example: "abc123%[59959". Additional info about patterns in Lua can be found here: https://www.lua.org/pil/20.2.html
  3. Which patterns did you use, if it's not private info? Pattern is second argument of the call to string.find function, in your case it's value of the variable "v".
  4. You need to use "Changed/Unchanged" if you want to find xor-encrypted value with fuzzy search. "Increased/Decreased" won't work out because of how xor-encryption works.
  5. Here is a part from the script that is used in GG for text search: if utf16 then encoding = 'UTF-16LE' end It means that "UTF-16LE" encoding is used if user selects corresponding option (via checkbox). So, if you need same result as in GG text search, then use this encoding. Also check my previous comment, I have added info that explains why you got different result when "UTF-16" encoding was set.
  6. Are you sure that string that you are searching for is encoded in UTF-16 in process memory? You may try other encodings from available ones (see "bytes" function description in GG API reference). Edit: Those 2 bytes at start of the array from your second screenshot is byte order mask. You need to use "UTF-16LE" encoding in your case. I am not sure that BOM won't be included if you choose it, give it a try.
  7. Here is an example that you have asked for. Function to search text was taken from this post. function searchText(text, encoding) local bytes = gg.bytes(text, encoding) local ret = '' for i, b in ipairs(bytes) do ret = ret..';'..b end ret = ret:sub(2)..'::'..#bytes return gg.searchNumber(ret, gg.TYPE_BYTE) end function getResultsCount() if gg.getResultsCount then return gg.getResultsCount() end return gg.getResultCount() end local input = gg.prompt({'Input string to search:'}, nil, {'text'}) local str = '' if input == nil then -- Something to do if the prompt window was cancelled (this block can be omitted) end if input ~= nil then str = input[1] end if #str > 0 then gg.clearResults() searchText(str, 'UTF-16') gg.getResults(getResultsCount()) gg.editAll('1', gg.TYPE_BYTE) end text_search.lua
  8. You can't write like this. os.exit is a function and goto operator only works with labels. Either you make a call to the function (remove goto operator) or you jump to some label (replace os.exit() with label name), choose one option.
  9. Unfortunately, as I have written, you CAN'T protect the strings that are being searched in your script. If the user is able to run the script, then he can also find out, what strings were searched by the script. There is built-in GG feature, that logs every call to GG API in a text file, so if your script executes, for example, gg.searchNumber('123', gg.TYPE_DWORD), then user will see it in log file.
  10. He is using "choice" function. Not that it makes big difference, just a notice. Code after "sdone" label probably contains a call to os.exit function, so the script will terminate in both cases (when the user chooses "Exit" and when dialog was cancelled). Agree with this one, but maybe he want the script to terminate, if the dialog was cancelled, who knows.
  11. This won't prevent the user from logging script actions. If your goal is to protect the script, then hiding GG UI won't help almost anyhow.
  12. CmP

    LUA scripting

    How to ask primitive questions without reading API help? Please, do it in reverse order (first - check help pages, then ask question, if answer was not found there). https://gameguardian.net/help/classgg.html#a7efd4ac7766e72688cb4a84a3915721e
  13. It may happen if the code is being copied from forum (in particular, from the box of formatted code generated by this option: ). Retype the line where an error occurred manually.
  14. These optimizations look unbelievable. Thanks for another great update of the app.
  15. Use "removeListItems" functions to remove desired elements from saved list or "clearList" function to remove everything from saved list. When an element is removed from saved list, it is automatically being unfreezed, so no need to set "freeze" field to false in these cases. Edit: your code can be adjusted this way to reduce "complexity" gg.clearResults() gg.searchNumber('0.91610002518', gg.TYPE_FLOAT) local t = gg.getResults(11) for i, v in ipairs(t) do t.value = '1.902456' t.freeze = true t.freezeType = gg.FREEZE_NORMAL end print('Replaced: ', gg.addListItems(t)) gg.sleep(250000) print('Replaced: ', gg.removeListItems(t)) Only elements that were added to saved list will be removed from it after the delay.
  16. Reading GG API help before asking such simple questions about it is a good habit for every member of the forum. https://gameguardian.net/help/classgg.html#a5f281d50d0ff0846c9c0594a61895dce
  17. CmP

    GameGuardian

    @Anonymous1000, it looks like you've never participated in any kind of discussion, because you clearly don't know, what to do. Instead of analyzing my comments and expressing your thoughts about them, you are writing some (off-topic) stuff about "problems in mind", lack of intelligence, etc. Usually those, who blame everyone about having low level of intelligence, lack the intelligence themselves. I see that you are feeding your ego with these comments, you don't care about the truth. Well, won't disturb you from doing it, but also won't help with it anymore (by continuing to answer your comments). Good luck.
  18. CmP

    GameGuardian

    I do understand that you had no imagination about what is changed in optimized versions of virtual space apps, it was like "black box" from your perspective. Now you know, your eyes is opened and you can see that mysterious "black box" is just one line changed in the manifest of the app (no need to thank me). Also my reply was dedicated to the certain part of your comment, not to the whole comment, so your talk about me not understanding something from what you have written is completely irrelevant.
  19. CmP

    GameGuardian

    Actually, not much time at all, as Enyby has mentioned. There is nothing special in creating optimized versions of virtual space apps. The real job was to find a way to fix those "105/106 errors" when using GG inside of virtual spaces. And Enyby has successfully found it. I just want to tell, that finding a solutions/methods for solving problems is way more valueable thing, because not everyone has enough knowledge and experience for this. On the other hand, only basic understanding of the algorithm is required to be able to use some method for solving a problem. Few people create solutions, many people use them, that's how it works.
  20. CmP

    LUA scripting

    I guess that another question needs to be asked first. Execute this example and try to determine which one. local env = 1234 function f() if env == 1234 then print('How to use string.dump function?') else env.print('Do I really need to use string.dump function?') end end print('\n'..tostring(f)) f() local chunk = string.dump(f) local f_ = load(chunk) print('\n'..tostring(f_)) f_()
  21. 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.
  22. 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.
  23. CmP

    Agar.io hack

    Worth to try, although this won't usually work when account data is stored at the server.
  24. 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/".
  25. 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.
×
×
  • 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.