Jump to content

Enyby
 Share

Recommended Posts

  • Administrators

What's New in Version 8.45.0   

  • Optimized memory reading in some cases.
  • Fixed memory reading on x86.
  • Increased the history limit.
  • Added option for history limit.
  • Improved UI.
  • Added links to the video about the protection bypass.
  • Added copying of the selected elements as a group search.
  • Improved bypass protection.
  • Bug fixes.
  • Updated translations.
  • Build with support for ARMv5.

scr_1514166538.jpgscr_1514166544.jpgscr_1514166572.jpgscr_1514166600.jpgscr_1514166631.jpgscr_1514166672.jpgscr_1514166688.jpgscr_1514166703.jpgscr_1514166732.jpg

Link to comment
Share on other sites

[Search]

** Negative numbers can be confusing sometimes. I get that -1 and 255 will give the same results but there are times that it made me baffled. I mean, I attributed positive numbers when gaining/increasing something and negative when losing. (Negatives (-) can be useful though, sometimes, in some games, in tricking merchants.) If I wanted my items to be 130 pieces, for example, I input 130 but, to my surprise, GG automatically changed that to its negative equivalent. This also happens when searching for values, GG is searching for the negative counterpart of the positive number I inputed. Then there are times too that it messed up my filters or refined search if I use (value<0), because the address that I needed that holds the value of 130 (for example) is showing a negative number so it got hidden (filter) or deleted (refine). Can't we just let positive numbers be positive and negatives be negative unless specified by the user?

** In search tab, in "Only within memory range:" option, when you select an entry from the memory ranges list, both "From:" and "To:" are only using the initial value.

It's like this, when I select

Cb: 50375000 - 50F84000

the values of "From": and "To:" will be set to

From: 50375000 (ok)
To: 50375000 (instead of 50F84000). So I have to set it manually.


[History]

** The entry from the history only appends (added at the end) the value entry instead of replacing them.

** Custom limit size of history. Since not all users want to keep very long list of history entries.

** Swipe to delete an entry in the history or something similar.

** A "Delete all history entries" function.


[Speed Hack]

** Please add a feature in GG that after the speedhack has been fully loaded, it will automatically select all the green check boxes and deselect the red ones.


[String Search]

** When the search result came up, please add a feature that will let the user know what the current value of results refer to what character/symbol.

Ex. when I search for the string "sand", If possible, I want the results to be like:

[Address] 115 (s)
[Address] 97  (a)
[Address] 110 (n)
[Address] 100 (d)
[Address] 115 (s)
[Address] 97  (a)
...

- This is so that the users will not be confused as to which character they are changing  after the script for string search has ended.
- Another reason is that most of the time, you don't want to modify all values all at once because this practice often caused game/system instability, which is also true for numeric values, so I prefer to changed them one by one or one group of string at a time. 

** You may also want to add string value in the current "converter" (it's the drop down arrow in the modify value window, sorry I don't really know what it's called). Currently, we have for dec,hex, reverse hex and XOR.

** An ASCII table for reference. Makes editing easier.

** I'm actually thinking, this could be simplified if you add a feature that will changed  how the values of search results can be displayed. I mean right now, search results are shown in decimals but what if we can change that into hex? or string representation? The value of results will not be changed, only in what "form" they are being displayed which can be changed anytime according to the user's needs.


["Search nearby memories" suggestion]

** Just like the string search, I think it's also possible to adapt SBGame Hacker's "search nearby memory" feature to GG using (LUA) script.

I think one way to achieve this is by using 2 different offsets. One of the offset is negative and the other is positive. It will tell GG on how far (above and below) it has to search, for the user's desired value, from the base address.

Ex:

base address: [42260ae0]
Value to search: 100

Offset 1: -15A ( [42260ae0] - 15a = [42260986] )
Offset 2: 15A ( [42260ae0] + 15a = [42260C3A] )

So GG will try to search all the "100"s between the address [42260986] and [42260C3A]


[Offset Calculator]

** A filter for the resultant address' "live" value. When using offset calculator, GG will display instantaneously the value of resultant address (base address + offset) which is good for quick info lookup but it shows all the values for all datatypes all at once. This made it look confusing and more complicated than it should have.

** Add a "Save" button/feature that quickly adds the resultant address to the saved list without going to the memory editor or leaving the offset calculator. This is great when working with multiple offsets for one base address.

Ex:

(This is from Inotia 3. The offsets, item ID's, Attributes, etc. used here are real and can be verified by anyone who's interested except for the memory address which changes per device and if you didn't exit the game correctly. Similar pattern can be found in Inotia 4 and many GameVil, Com2Us, and other games.)

Let's say, I found out that the address [50EAFD33] held the value for an item's quantity. Using that as the base address, I can simply add/subtract a certain offset there to get the address for Item ID, Attributes etc. just like the example below:

*[50EAFD33] - 7 = [50EAFD2C] / ItemID
    (62080 = Adventurer's Set | 54848 = Consecrated Warrior's Emblem | 51968 = Dice of Chaos)

*[50EAFD33] - 1 = [50EAFD32] / ItemEnhanceLevel
    (8432 = +31 / it's F0 in hex, where the F part is the key)

*[50EAFD33] + 2BCD = [50EB2900] / Ether(Option)Value

The beauty of using offsets is that it saves yourself from doing doing a number of searches. Instead, you just have to add/subtract an offset. It's faster, more effective and more accurate since memory address may change but the offsets you need to use remains the same.


[Memory Editor]

** [Minor issue] In the Memory Editor tab, when you select an address, the "Go to" button is still there where in you are already at the address you want to be so this should be removed or replaced by other menu/function.

** [2 issues here] By defeault, the memory address are separated/grouped by DWORD or offset of 4 (Please tell me the right term to use for this cause honestly I don't know)

I mean, it'll be like,

[50BAFD30]
[50BAFD34]
[50BAFD38]

[Issue #1] Since address are grouped into DWORD's, users can't see WORD and BYTE's current values (unless enabled in Value format), so can you have an "auto-collapse" feature of the DWORD address. It'll be like this, 

Let's say, after selecting an entry from search results which is [50BAFD37] then I use "Go to" and ...

[50BAFD30] <D;>
- [50BAFD34] <D;W;B;>
- [50BAFD35] <B;>
- [50BAFD36] <W;B;>
- [50BAFD37] <D;>
[50BAFD38] <D;>

Only the cluster that holds the address [50BAFD37] will collapse, the other will remain as they are.

Or a simpler solution is to enable WORD and BYTE in Value format by default. :)

[Issue #2] If what appears in the search result is either is a WORD or a BYTE, when you go to that address and try to change them, their current value will be shown as "0" even if that wasn't true as they have real values.

I also noticed  that, 
- Other data types are ok though and is showing their real values. It's only WORD and BYTE being weird.
- Sometimes WORD and BYTE data are showing their values correctly but it happens more often that they show "0"
- If you enabled WORD and BYTE in Value format, their values are being displayed correctly. "0" value appears only when address are group into DWORD.

** Add a feature in the memory editor will show only the Hex values of the the address but are arranged in rows and columns, instead of list sort order; it's similar to "View Memory" of GameKiller. The advantage of arranging Hex values in rows and columns is that it's easier to study the relationship between them. Also makes working with hex easier. There are games that can be deciphered easier this way such an Inotia and Zenonia series.

** Similar to above, add a feature that shows string values only which are arranged in rows and columns. Easier to work with compared to being shown in list.


[Misc.]

** Add "Clear GG settings for this game" feature. Resets memory ranges, speedhack, history and other related settings for that game only. Does not affect stored settings of other games.


No need for us to mention this, but you sir is the best app developer. May you have an enjoyable holidays. :)

Link to comment
Share on other sites

  • Administrators
54 minutes ago, ivandgreat18 said:

Can't we just let positive numbers be positive and negatives be negative unless specified by the user?

No. You need to read about signed and unsigned data types. Data in memory is just bits, but how to interpret them depends on the approach.
Previously, all shouted that in GG there are no negative numbers, now they shout that they are there.
All types are treated as signed. This is the most common option. In java there are no unsigned types. In C, there are both.

_______________________________________________
added 2 minutes later
56 minutes ago, ivandgreat18 said:

In search tab, in "Only within memory range:" option, when you select an entry from the memory ranges list, both "From:" and "To:" are only using the initial value.

Accepted.

Link to comment
Share on other sites

  • Administrators
58 minutes ago, ivandgreat18 said:

The entry from the history only appends (added at the end) the value entry instead of replacing them.

As designed. If you need replace, you need to select all before call history. For this present special button near history.
This is done so that you can collect a search query from pieces of history.

Link to comment
Share on other sites

  • Administrators
1 hour ago, ivandgreat18 said:

Swipe to delete an entry in the history or something similar.

Accepted.

1 hour ago, ivandgreat18 said:

A "Delete all history entries" function.

Accepted.

1 hour ago, ivandgreat18 said:

Please add a feature in GG that after the speedhack has been fully loaded, it will automatically select all the green check boxes and deselect the red ones.

No. It does not make sense. Select all timers until it is loaded or at any other time. Choosing red timers does not change anything.
The red timer can turn green with time.
And the very idea of choosing all the timers is very bad. The application will freeze and stop responding.

 

_______________________________________________
added 3 minutes later
1 hour ago, ivandgreat18 said:

When the search result came up, please add a feature that will let the user know what the current value of results refer to what character/symbol.

We have some plans about better implementation of string search.

1 hour ago, ivandgreat18 said:

Another reason is that most of the time, you don't want to modify all values all at once because this practice often caused game/system instability, which is also true for numeric values, so I prefer to changed them one by one or one group of string at a time. 

Currently you can search "sand", then refine with first letter "s" and work manually with results in memory editor.

Link to comment
Share on other sites

  • Administrators
1 hour ago, ivandgreat18 said:

** You may also want to add string value in the current "converter" (it's the drop down arrow in the modify value window, sorry I don't really know what it's called). Currently, we have for dec,hex, reverse hex and XOR.

** An ASCII table for reference. Makes editing easier.

For string search need different things so I do not want mess it in once. Need another UI and in future I work on it.

Link to comment
Share on other sites

  • Administrators
1 hour ago, ivandgreat18 said:

Just like the string search, I think it's also possible to adapt SBGame Hacker's "search nearby memory" feature to GG using (LUA) script.

In UI you can use filter in memory editor.

In LUA you can use search with specify memory boundaries.

Search related methods
mixed  searchNumber (string text, int type=gg.TYPE_AUTO, bool encrypted=false, int sign=gg.SIGN_EQUAL, long memoryFrom=0, long memoryTo=-1)
  Perform a search for a number, with the specified parameters. More...

Look at memoryFrom and memoryTo.

1 hour ago, ivandgreat18 said:

So GG will try to search all the "100"s between the address [42260986] and [42260C3A]

gg.searchNumber('123', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0x42260986, 0x42260C3A)

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • 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.