Как найти оффсеты через cheat engine

Step 1: Find the current address for whatever you want to get the pointer & offset of.
In this tutorial, I’ll be using max HP as an example. I first found my max HP by searching my current max HP, adding/removing equipment with + Max HP on it, and filtering the results.

Add that address to your address list (the bottom section in Cheat Engine).

Step 2: Find out what accesses that address
Now right click on the newly added address, and select «Find what accesses this address.» You will be prompted if you want to attach the debugger; select yes.

ce_tut_1.png

You may need to go back into the game and wait a few seconds before anything is added to the opcode box. After a few results turn up, cycle through them look for an entry that is labled as «Copy memory» on the right side below the buttons.

ce_tut_2.png

Step 3: Get the offset, and probable address to search for
Double click on this entry, and you will receive another window with detailed information in it. This window contains two very important pieces of information: the offset, and address to search for. The red text shows us the offset in hex. It will look something like this: >>004971b0 — mov ecx, [esi+0000012c]
From this, we can tell that 12C is our offset. Write this down.

The second important line contains the address we need to search for. It will say «The value of the pointer needed to find this address is pobably <address>». Write down the address, and you can now close this window.

ce_tut_3.png

Step 4: Searching the address
Now go back to the Cheat Engine main window, and begin a new scan. You will have the «Hex» checkbox checked, have the value set to the probable address to search for, scan type as Exact Value, and value type as 4 bytes. Click First Scan.

Now we should have a few results. You hopefully won’t have more than a few. Most likely, the address you want to use will appear green in the found list. The green text means that it is a static pointer (it will not change when you restart the game).

ce_tut_4.png

Now that you’ve found the pointer, you can put it to use. To add it into Cheat Engine, click the «Add address manually» button. Check Pointer, and copy the address from the green result in the address list (make sure it’s the address, and NOT the value!), and type in the offset you wrote down earlier from step 3. You’ve now got your full pointer and offset.

If the green results do not appear to work, or you do not see any green results, it is possible that the game uses a double pointer to access this specific variable, and you will need to run another pointer-offset lookup on the already found pointer and offset. A quick explanation of what this is all about can be found here.

Go Back   UnKnoWnCheaTs — Multiplayer Game Hacking and Cheats

  • Anti-Cheat Software & Programming


  • General Programming and Reversing

  • Reload this Page

    [Tutorial] Finding Offsets Using Cheat Engine

    Finding Offsets Using Cheat Engine
    Finding Offsets Using Cheat Engine

    Save

    Authenticator Code

    Reply

    Thread Tools

    Finding Offsets Using Cheat Engine

    Old
    14th January 2017, 07:25 PM

     
    #1

    computation

    1337 H4x0!2

    computation's Avatar

    Join Date: Jan 2016


    Posts: 144

    Reputation: 2724

    Rep Power: 183

    computation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating community

    Finding Offsets Using Cheat Engine


    Hello everyone. Many people have trouble finding offsets in games and understanding what an offset is (talking to beginners here not you leet haxors). So I want to make an over kill tutorial to clear any confusions on offsets and a simple way to find them. This tutorial is aimed at the very beginner who is just looking to get into hacking but doesn’t know the basics of offsets and is having trouble starting off. This tutorial is not designed to target internal or external game hacking specifically but general(and simple) memory concepts. You should have an understanding of programming (I will be using C++ in the short code examples) or else this will be useless.

    What Is An Offset?
    So you might be thinking what is an offset or you might have used an offset to hack a game but not known what it is doing (sad life if so). To understand how to use offsets and find them we must understand what an offset is so we will look at a simple example. Lets take a look at a very simple structI will provide.

    Code:

    struct player {
    int health;
    int ammo;
    float x;
    float y;
    float z;
    };

    So here we have a struct. Now when we create a variable of a struct in memory a very awesome and simple thing happens. Every member in the struct gets created in memory back to back to back. Meaning our z coordinate is always the same distance to the beginning of the struct. The struct might start at a different memory address every time you run an application BUT the members in the struct are always the same distance away relative to each other. ammo will always come after health and nothing is declared in between them and so on and so forth. So what is an offset. An offset is just how far away something is (in bytes) relative to something else. In game hacking when we say offset we are often referring about offset from the start of our player (if we are talking about our player of course). Lets look at the struct but lets comment in the offsets that each member is.

    Code:

    struct player {
    	int health;		//0x0
    	int ammo;		//0x4
    	float x;		//0x8
    	float y;		//0xC
    	float z;		//0x10
    };

    how do we know what the offsets are though? Well think about this for a second. If all of these members are in a struct, they will be allocated in memory right next to each other. If you know how many bytes each data type is we can do some simple addition. The first member in the struct is where the struct starts. So health is offset 0 bytes from the start of the struct because it is the start. And the next member is 4 bytes away from that (since health takes 4 bytes because its an int) so it is said to be offset 4 bytes. As long as you know the data type you can simply add how many bytes it is away from your reverence point (which is the start of the struct for us also called the start of local player). So an offset is just the number of bytes away from a reference point and in this case that’s the start of player. This is extremely simple but many «programmers» who make hacks use offsets but don’t understand what it actually is.

    Pointer To Local Player And Local Player
    To understand why offsets are use full we have to take a look at the bigger picture and how we get to a spot in memory where our offset will be useful. When hacking games we usually have a pointer to local player usually denoted as pLocalPlayer and that address points to local player. Then from there we have offsets to the things we want to access such as ammo. Lets look at a picture of this to give you a visual of how all that stuff works.

    We know the address of pointer to local player or pLocalPlayer. That address is 0x509B74(this could be anything we use this for reference). If we find out what that address points to it will always point to local player or localPlayer. localPlayer is a dynamic address so it will change every time we start the game and that’s why we need a way to find it every time we start the game.. Once we know where our localPlayer address is we know how to get to health, ammo, x, y, and z. We just add the number of bytes it is offset to localPlayer! Pretty simple. Now it is important to note that usually the player struct or class is way bigger and can contain thousands of variables so this is just extremely simplified so you can understand the concept of what all this means. I am not going to show how to find pointer to local player today but I might come back in a fill in how to do that if people want. For now lets focus on finding the offsets. The whole purpose of all the stuff mentioned above is in order to make a hack we need some way of getting to variables in memory every time. It would be ridicules if had to change the memory addresses in our application every time we started the game. That would defeat the purpose.

    Finding Offsets
    So lets open up assault cube for this example. I am going to give you the address of pointer to local player since I did not explain how to find that. The address is 0x509B74 that points to local player (it’s the same as the one i used in the picture but the player struct in assualt cube is different so don’t mix that up). Attach cheat cheat engine to assault cube. Now lets get to local player. Go to add address manually in the bottom right of cheat engine. check pointer then add 0x509B74 (since the address of pointer to local player).

    Now if we hit okay we now have what localPlayer is. Remember if you close the game and reopen it the address will change since its not static but dynamic.

    I renamed the description to pLocalPlayer so I can remember what it is. Under where it says address there is a memory address. That is what pLocalPlayer points to and that is localPlayer. So now we know what address localPlayer is lets find some offsets. There are several ways to do this and I will show you one simple way. We will want to find the dynamic address of what ever offset we want to get. So lets look at ammo and get that offset. You will want to set scan type to exact value and value type to 4 bytes and the value is 20. Since we did not fire and our ammo reads 20.

    Now we want to hit scan and thousands of results will show up. To limit that down shoot a couple bullets and then under value change it to how many bullets you have left and hit next scan. This will throw out all the addresses that don’t have that value meaning it will limit down the possibilities. Keep doing this until you only have a couple addresses. On my second try I got 2 addresses.

    you can double click on the address to bring them down to our address table. Now double click on one of the addresses values and change it to what ever you would like. If it changes the value of your ammo in game then you found the dynamic address of your ammo and you can shoot and test this out.
    Now lets think about this logically. If the members of a struct or class is always declared in memory together and in the same order we can find an offset. Now if we know some address that it starts at (localPlayer in this case) and we know an address of one of the members in the struct such as our ammo, then we could subtract localPlayer address from ammo address and it would leave us with how many bytes away that member is in the struct from the start of the struct! Its just taking two numbers and finding how far apart they are. So here are the addresses I have for local Player and Ammo

    If we take ammo address which is 0xE7A4E0 and subtract localPlayer from it which is 0xE7A390 we get 0x150. That means that the ammo address is 150 bytes away from the start of localPlayer and since ammo is part of the player struct in assault cube the offset will always stay the same even if we restart the game since how structs and classes and things are declared in memory. Now if you did this your addresses would be different but you would get the same offset once doing the math. Now you can go and find any other address and do the same. Go try finding your health, x, y, z coordinates and any other thing you want. Remember that there are other methods of scanning in cheat engine. You probably won’t use exact value for your x, y, and z coordinate cause you don’t know them and also coordinates are usually floats so under type you would change 4 bytes (an int) to float.

    The Bigger Picture
    This stuff isn’t hard! If you do some research about how things are allocated in memory and you use your brain you can figure stuff out easily. Just by knowing subtraction and how a struct is allocated in memory we found an offset. Its very simple. If you have any doubts about memory make an application and look at it in cheat engine to clear your confusion. Also why do all of this if you can go to a forum post with all the addresses? Well because knowing how to get things in memory strengthens your understanding and you won’t always have a post with information you need so start learning how to do things yourself! Good luck on the beginners starting out I hope this helped in some way or another.



    Last edited by aixxe; 14th January 2017 at 07:31 PM.
    Reason: fix image links


    computation is offline

    Reply With Quote

    Old
    14th January 2017, 07:27 PM

     
    #2

    WasserEsser

    Site Administrator

    WasserEsser's Avatar

    Join Date: Jun 2013


    Posts: 4,818

    Reputation: 122812

    Rep Power: 413

    WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!

    Recognitions
    Members who have contributed financial support towards UnKnoWnCheaTs.
    Donator

    (43)

    Awarded to members who have donated 10 times or more.
    Gratuity

    (4)

    This certification is awarded to forum staff members that are educated in the fields of reverse engineering and file analysis. All forum staff members with this certification have successfully gone through the process of becoming certified, which includes an individual assessment by upper staff, and the requirement of passing an internal file analysis examination. Anyone with a File Analysis certification is trusted by upper staff to be able to safely and competently approve files within UnKnoWnCheaTs, and only forum staff members that are certified file analyzers have permission to approve files within the UnKnoWnCheaTs downloads section.
    File Analyzer

    This award is given to a participant that was awarded first, second, or third place in an UnKnoWnCheaTs community contest.
    Contest Winner

    (1)

    Points: 236,129, Level: 59

    Points: 236,129, Level: 59 Points: 236,129, Level: 59 Points: 236,129, Level: 59

    Level up: 20%, 257,871 Points needed

    Level up: 20% Level up: 20% Level up: 20%

    Activity: 42.9%

    Activity: 42.9% Activity: 42.9% Activity: 42.9%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat EngineFinding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Award-Showcase
    Finding Offsets Using Cheat Engine

    @computation Use the direct links to the images. (Rightclick on the image and copy the direct link)

    __________________


    WasserEsser is online now

    Reply With Quote

    Old
    14th January 2017, 07:48 PM

     
    #3

    computation

    1337 H4x0!2

    computation's Avatar


    Threadstarter

    Join Date: Jan 2016


    Posts: 144

    Reputation: 2724

    Rep Power: 183

    computation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating community

    Quote:

    Originally Posted by WasserEsser
    View Post

    @computation Use the direct links to the images. (Rightclick on the image and copy the direct link)

    Sorry about that. Thanks for the fix!


    computation is offline

    Reply With Quote

    Old
    15th January 2017, 03:51 AM

     
    #4

    Slayer

    Master Contributor

    Slayer's Avatar

    Join Date: Jan 2016

    Location: USA


    Posts: 1,297

    Reputation: 17363

    Rep Power: 209

    Slayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UC

    Recognitions
    Award symbolizing a retired staff member who dedicated a notable amount of time and effort to their past staff position.
    Former Staff

    Members who have contributed financial support towards UnKnoWnCheaTs.
    Donator

    (2)

    Points: 37,008, Level: 29

    Points: 37,008, Level: 29 Points: 37,008, Level: 29 Points: 37,008, Level: 29

    Level up: 29%, 1,792 Points needed

    Level up: 29% Level up: 29% Level up: 29%

    Activity: 2.1%

    Activity: 2.1% Activity: 2.1% Activity: 2.1%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Looks neat, but definitely add or update this and touch on finding pointers. Very important skills. Otherwise, this was simple and neat, great explanation!

    Kudos,

    ~Slayer1250~

    __________________

    Quote:

    Originally Posted by Synraw
    View Post

    Don’t blame me, blame the japanese. Nuke them once and they fight back with a weapon far more dangerous

    Quote:

    Originally Posted by gorkx
    View Post

    Bluntly: WHAT FUCK IS YOU PEOPLES GOD DAMN PROPBLEM? you are the most disterbingly egotistical little-endian bags ever! This isn’t…don farmer going ooff to risk jail time to further chaos,and market theory. this is a gots damn video game motherfuckers. jesus fucking christ.


    Slayer is offline

    Reply With Quote

    Old
    24th January 2017, 02:21 PM

     
    #5

    vergil250493

    n00bie

    vergil250493's Avatar

    Join Date: Aug 2014


    Posts: 12

    Reputation: -37

    Rep Power: 0

    vergil250493 is becoming a waste of our time

    Points: 6,013, Level: 8

    Points: 6,013, Level: 8 Points: 6,013, Level: 8 Points: 6,013, Level: 8

    Level up: 56%, 487 Points needed

    Level up: 56% Level up: 56% Level up: 56%

    Activity: 2.3%

    Activity: 2.3% Activity: 2.3% Activity: 2.3%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Thanks for the tutorial to beginners ! you could also add on how to find pointers


    vergil250493 is offline

    Reply With Quote

    Old
    25th January 2017, 02:19 AM

     
    #6

    computation

    1337 H4x0!2

    computation's Avatar


    Threadstarter

    Join Date: Jan 2016


    Posts: 144

    Reputation: 2724

    Rep Power: 183

    computation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating community

    Quote:

    Originally Posted by vergil250493
    View Post

    Thanks for the tutorial to beginners ! you could also add on how to find pointers

    thanks. there is so much on finding pointers that I feel it is not worth the time to say what can easily be found with a quick search.


    computation is offline

    Reply With Quote

    Old
    15th March 2017, 03:14 AM

     
    #7

    ccurtis20

    h4x0!2

    ccurtis20's Avatar

    Join Date: Jan 2013


    Posts: 104

    Reputation: 955

    Rep Power: 254

    ccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the code

    Thanks for the tutorial/info. +Rep


    ccurtis20 is offline

    Reply With Quote

    Old
    3rd December 2017, 02:14 PM

     
    #8

    wtffwtf

    Junior Member

    wtffwtf's Avatar

    Join Date: Jun 2017


    Posts: 53

    Reputation: 162

    Rep Power: 145

    wtffwtf is known to create posts excellent in qualitywtffwtf is known to create posts excellent in quality

    Points: 4,738, Level: 7

    Points: 4,738, Level: 7 Points: 4,738, Level: 7 Points: 4,738, Level: 7

    Level up: 27%, 662 Points needed

    Level up: 27% Level up: 27% Level up: 27%

    Activity: 8.6%

    Activity: 8.6% Activity: 8.6% Activity: 8.6%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    How do you find the address of sth that is not changeable (not like the ammo or health) easily? I want to find the address of unlocking all guns for example, how is this possible?


    wtffwtf is offline

    Reply With Quote

    Old
    6th December 2017, 03:43 PM

     
    #9

    Lawlessvictory

    n00bie

    Lawlessvictory's Avatar

    Join Date: Dec 2017


    Posts: 22

    Reputation: 23

    Rep Power: 134

    Lawlessvictory has made posts that are generally average in quality

    Points: 1,061, Level: 2

    Points: 1,061, Level: 2 Points: 1,061, Level: 2 Points: 1,061, Level: 2

    Level up: 33%, 339 Points needed

    Level up: 33% Level up: 33% Level up: 33%

    Activity: 1.3%

    Activity: 1.3% Activity: 1.3% Activity: 1.3%

    Last Achievements
    Finding Offsets Using Cheat Engine

    Thanks for taking the time to write this, things like this help a lot.
    Now I have a much clearer explanation of what offsets are.


    Lawlessvictory is offline

    Reply With Quote

    Old
    17th January 2018, 01:12 AM

     
    #10

    chubbyH

    n00bie

    chubbyH's Avatar

    Join Date: Jan 2018


    Posts: 1

    Reputation: 10

    Rep Power: 131

    chubbyH has made posts that are generally average in quality

    Thinks for sharing


    chubbyH is offline

    Reply With Quote

    Old
    7th February 2018, 04:28 PM

     
    #11

    hieu832

    n00bie

    hieu832's Avatar

    Join Date: Jan 2018

    Location: HA NOI


    Posts: 9

    Reputation: 10

    Rep Power: 131

    hieu832 has made posts that are generally average in quality

    Points: 2,131, Level: 4

    Points: 2,131, Level: 4 Points: 2,131, Level: 4 Points: 2,131, Level: 4

    Level up: 5%, 669 Points needed

    Level up: 5% Level up: 5% Level up: 5%

    Activity: 1.8%

    Activity: 1.8% Activity: 1.8% Activity: 1.8%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    you can tutorial video plz.


    hieu832 is offline

    Reply With Quote

    Old
    8th February 2018, 11:47 AM

     
    #12

    jahaha

    A God

    jahaha's Avatar

    Join Date: Jul 2007


    Posts: 171

    Reputation: 858

    Rep Power: 388

    jahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by most

    Points: 15,227, Level: 16

    Points: 15,227, Level: 16 Points: 15,227, Level: 16 Points: 15,227, Level: 16

    Level up: 17%, 1,173 Points needed

    Level up: 17% Level up: 17% Level up: 17%

    Activity: 4.8%

    Activity: 4.8% Activity: 4.8% Activity: 4.8%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Quote:

    Originally Posted by hieu832
    View Post

    you can tutorial video plz.

    There’s many videos on this already, just open up youtube and search.

    Good guide btw. +rep


    jahaha is offline

    Reply With Quote

    Old
    9th February 2018, 08:21 AM

     
    #13

    tsunaweak

    n00bie

    tsunaweak's Avatar

    Join Date: Feb 2018


    Posts: 8

    Reputation: 10

    Rep Power: 130

    tsunaweak has made posts that are generally average in quality

    very helpful thank you so much ^_^


    tsunaweak is offline

    Reply With Quote

    Old
    15th February 2018, 09:43 AM

     
    #14

    Phnmz

    Senior Member

    Phnmz's Avatar

    Join Date: Feb 2015


    Posts: 78

    Reputation: 132

    Rep Power: 202

    Phnmz is in the shadow of all hacking legendsPhnmz is in the shadow of all hacking legends

    Points: 5,101, Level: 7

    Points: 5,101, Level: 7 Points: 5,101, Level: 7 Points: 5,101, Level: 7

    Level up: 67%, 299 Points needed

    Level up: 67% Level up: 67% Level up: 67%

    Activity: 2.3%

    Activity: 2.3% Activity: 2.3% Activity: 2.3%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Good explanation, still need to know how to find pointers, and it would be about time someone explain how to do this on a game that has a simple anti-cheat at least, cause once you learn that from Assault Cube and try another game, you’re pretty much fucked as a beginner. (including myself)


    Phnmz is offline

    Reply With Quote

    Reply


    Similar Threads
    Thread Thread Starter Forum Replies Last Post
    [Tutorial] Cheat Engine — Finding Base Address w/ Pointer Scan xenocidewiki Programming for Beginners 16 26th June 2019 05:06 AM
    [Question] Finding offsets using IDA. Articxslack DayZ SA 7 22nd July 2016 09:51 AM
    [Help] Cheat Engine not finding Rsc nrodway11 ARMA 3 3 27th March 2015 04:12 AM
    [Discuss] Is Finding Transformation Pointer Possible With Cheat Engine? Falchon DayZ SA 1 22nd May 2014 08:52 AM
    Help with using OllyDBG finding adresses and offsets traplol2 ARMA 2 9 11th August 2012 10:13 AM

    Tags

    address, struct, player, offset, memory, ammo, bytes, local, offsets, start

    «
    Previous Thread
    |
    Next Thread
    »

    Forum Jump

    All times are GMT. The time now is 12:33 PM.

    Contact Us —
    Toggle Dark Theme

    Terms of Use Information Privacy Policy Information
    Copyright ©2000-2023, Unknowncheats� UKCS #312436

    Finding Offsets Using Cheat Engine Finding Offsets Using Cheat Engine

    no new posts

    Всем привет. Я пишу ботов для MMORPG Guild Wars. Занимаюсь этим год — полтора. Все это не слишком сложно, потому что существует такой скрипт как GWA2.au3, данный скрипт был написан не мной, он находится в публичном доступе, каждый может его скачать и заниматься бытописанием для Guild Wars. В данном скрипте прописаны многие пути расположения тех или иных значений, такие как количество здоровья, координаты персонажа, место нахождение и тд, все это можно определить используя ту или иную функцию. Но увы всех функций не достаточно что бы писать новых ботов. Ниже приведу пример, нескольких функций.

    ; Пример первой функции
    Func GetPartySize()
       Local $lOffset[5] = [0, 0x18, 0x4C, 0x64, 0x24]
       Local $lPartyPtr = MemoryReadPtr($mBasePointer, $lOffset)
       Local $lReturn = MemoryRead($lPartyPtr[0], 'long') ; henchmen   
       Return $lReturn
    EndFunc   ;==>GetPartySize
    
    ; Пример первой 2 функции
    Func GetMissionStartDelay()
    	Local $lOffset = [0, 0x18, 0x44, 0x9C, 0]
    	Return MemoryReadPtr($mBasePointer, $lOffset)[1]
    EndFunc

    Первая функция определяет количество персонажей в команде. Второй определяет статус команды (лидер команды, начата ли миссия и тд.)
    Ниже MemoryReadPtr и MemoryRead.

    ;~ Description: Internal use only.
    Func MemoryReadPtr($aAddress, $aOffset, $aType = 'dword')
    	Local $lPointerCount = UBound($aOffset) - 2
    	Local $lBuffer = DllStructCreate('dword')
    
    	For $i = 0 To $lPointerCount
    		$aAddress += $aOffset[$i]
    		DllCall($mKernelHandle, 'int', 'ReadProcessMemory', 'int', $mGWProcHandle, 'int', $aAddress, 'ptr', DllStructGetPtr($lBuffer), 'int', DllStructGetSize($lBuffer), 'int', '')
    		$aAddress = DllStructGetData($lBuffer, 1)
    		If $aAddress == 0 Then
    			Local $lData[2] = [0, 0]
    			Return $lData
    		EndIf
    	Next
    
    	$aAddress += $aOffset[$lPointerCount + 1]
    	$lBuffer = DllStructCreate($aType)
    	DllCall($mKernelHandle, 'int', 'ReadProcessMemory', 'int', $mGWProcHandle, 'int', $aAddress, 'ptr', DllStructGetPtr($lBuffer), 'int', DllStructGetSize($lBuffer), 'int', '')
    	Local $lData[2] = [$aAddress, DllStructGetData($lBuffer, 1)]
    	Return $lData
    EndFunc   ;==>MemoryReadPtr
    
    ;~ Description: Internal use only.
    Func MemoryRead($aAddress, $aType = 'dword')
    	Local $lBuffer = DllStructCreate($aType)
    	DllCall($mKernelHandle, 'int', 'ReadProcessMemory', 'int', $mGWProcHandle, 'int', $aAddress, 'ptr', DllStructGetPtr($lBuffer), 'int', DllStructGetSize($lBuffer), 'int', '')
    	Return DllStructGetData($lBuffer, 1)
    EndFunc   ;==>MemoryRead

    Соответственно вопрос таков. Как я могу найти такие значения как $lOffset[5] = [0, 0x18, 0x4C, 0x64, 0x24] (первый пример) и $lOffset = [0, 0x18, 0x44, 0x9C, 0] (второе значение)???
    Эти значения уже найдены, но я хочу их найти самостоятельно, что бы потом я так же смог найти другие, которые отсутствуют в скрипте. Я понимаю что для это мне нужно использовать OllyDbg или Cheat Engine. Так же у меня есть инструмент для получения отправленных и полученных пакетов из сервера до шифрования. Фото ниже.

    di-N865.png

    То есть это ряд мне выдает программа, которая получила пакет от сервера. Вторая функция GetMissionStartDelay() возвращает тоже значение. 0x100 Integer => …..
    Я попытался сравнить $lOffset и hex ряд на фото, к сожаления сходств я не нашел. Пытался найти этот hex ряд с помощью OllyDgb и тоже без результатной. Буду рад получить любые советы для решения данного вопроса.
    И да, сам GWA2.au3 выложу ниже.

    MaminBandit


      Автор темы

    • #1

    Всем привет, ребята. Дело вообщем такое… Не могу найти оффсет здоровья в Dota 2, искал с помощью Cheat Engine, пробовал всеми способами float,double,integer, Все значения. Так же пробовал значение увеличилось/изменилось и так далее… Но ничего не помогает(через ману тоже пробовал), как-будто там стоит защита… Всего всех адресов находится 6кк, чего собственно мало, в чём дело — не знаю, кто может помочь — буду благодарен.

    Arting


    • #2

    Если не можешь даже этого найти то вряд-ли сможешь что-то похожее на чит для доты написать…
    Вот текущие оффсеты здоровья (C_BaseEntity->m_iHealth):
    x64 — 0x1AC
    x32 — 0x118

    MaminBandit


      Автор темы

    • #3

    Ой блиин… дело было в том, что я искал в CE 6.3, и я действительно не знаю каким чудом там их не находило… В любом случае спасибо!

    _or_75

    Пользователь


    • #4

    Если не можешь даже этого найти то вряд-ли сможешь что-то похожее на чит для доты написать…
    Вот текущие оффсеты здоровья (C_BaseEntity->m_iHealth):
    x64 — 0x1AC
    x32 — 0x118

    плюсую, да и кому нужны оффесты гуглите Source2Gen (но он сейчас не работает ибо надо фиксить :unamused:)

    Arting


    • #5

    плюсую, да и кому нужны оффесты гуглите Source2Gen (но он сейчас не работает ибо надо фиксить :unamused:)

    Ну его сначала обновить нужно, а новичку это будет сделать очень сложно, изменений во время чистки движка там было не мало.

    anarh1st47


    • #6

    Для доты есть хорошая опенсорсная база/чит, но под линукс. Портануть ее под винду довольно просто(я портировал похожую базу под винду с линукса, но для другой игры). https://github.com/LWSS/McDota по совместительству, это единственное адекватное сдк для сурс2

    • #7

    А вообще реально хакнуть что то в Доте?

    B.O.T

    Пользователь


    • #8

    А вообще реально хакнуть что то в Доте?

    Нет конечно в разделе доты одни идиоты ))

    thrillin


    • #9

    Всем привет, ребята. Дело вообщем такое… Не могу найти оффсет здоровья в Dota 2, искал с помощью Cheat Engine, пробовал всеми способами float,double,integer, Все значения. Так же пробовал значение увеличилось/изменилось и так далее… Но ничего не помогает(через ману тоже пробовал), как-будто там стоит защита… Всего всех адресов находится 6кк, чего собственно мало, в чём дело — не знаю, кто может помочь — буду благодарен.

    Тоже

    Cheat Engine – программа для гейм-хакеров, предназначается для читерства в компьютерных играх. Принцип работы заключается в том, что показатели игры – достижения, жизни, патроны, ресурсы – хранятся в виде цифр по определенным адресам оперативной памяти компьютера. Указатели — память, которая содержит не значение параметра, а адрес нахождения параметра. Сканирование памяти игры в Cheat Engine делает доступным эти адреса найти и изменить цифры на те, которые нужны.

    Для чего нужен поиск указателей

    Переменные объекта в игре создаются динамически, чтобы не нагружать оперативную память игры и процесса – с текущими параметрами игр оперативной памяти не хватит. Соответственно, ведется учет, где в памяти размещается тот или иной параметр. Базовый элемент — указатель, а внутри – параметры здоровья, ресурсов, опыта, патронов, денег. При каждом новом запуске игры или нового уровня, адреса динамических игровых параметров переезжают в другую область памяти. Для изменения приходится снова и снова находить. Для того, что бы этого не делать применяется поиск указателей.

    Найти одноуровневый указатель

    Запускаем Cheat Engine. Находим и копируем в нижнее окно адрес переменной, которая отвечает за нужный параметр. Правым кликом по адресной строке вызываем меню, находим строку «Find out what writes to this address». Ставим break на запись и разрешаем запуск отладчика. Идем в игру и тратим часть золота или теряем одну жизнь — чтобы изменить показатель. Возвращаемся к Cheat Engine и видим в окне отладчика новые строки. Выбираем одну типа mov и переходим во вкладку «More information». Правым кликом открываем меню и выбираем «Copy info to clipboard» — скопированное переносим в блокнот, закрываем отладчик.

    Найти одноуровневый указатель в Cheat Engine

    Далее переходим в главное окно программы и в поисковой строке вводим адрес из указанной области 07AF.., отмечаем галочкой НЕХ и тип значения 4Б, — запускаем поиск. В результатах поиска ищем постоянный адрес – выделяется зеленым. Копируем в нижнее окно и кликаем дважды по строке «Adress».

    Как найти указатель в Чит Энджин

    Копируем адрес сверху, отмечаем галочкой «Pointer» и вставляем в нижнее выпавшее поле. Тип определяем исходный. Далее при помощи вендового калькулятора рассчитываем смещение между первоначальным адресом, копированным в блокнот и найденным зеленым. Результат вставляем во второе поле снизу и жмем «Ок». После этого правым кликом по значению – «Value» выбираем в меню «Show as decimal» — отражать показатели в десятичном формате. Итог сохраняем в типе файла *.СТ. При загрузке этого файла в Cheat Engine с запуском уровня не надо будет снова искать переменные.

    Найти одноуровневый указатель в Чит Энджин

    Найти многоуровневый указатель

    Многоуровневый – это такой, который ссылается не на искомую информацию, а на другой указатель. Таких уровней может найтись сколько угодно. Многоуровневая адресация усложняет процесс поиска цепочки указателей. Обработка занимает время. Сканирование памяти проводится 8-12 раз с перезапуском игры до тех пор, пока не выявится постоянный результат и один показатель не отразит хоть раз одинаковый результат с игровым параметром при перезагрузке.

    Cheat Engine (помогите разобраться!)

    неизвестное значение ищи, побегай, потом перед вторым сканом выбери Значение изменилось или Значение уменьшилось, если, например, после бега выносливость стала меньше той, которая была при первом скане, потом подожди немного, допустим выносливость восстановилась, перед третьем сканом выбираешь Значение изменилось или Значение увеличилось, то есть значение стало больше, после второго скана, ну вот так и отсеевай.
    (лучше отсеевать по увеличению и уменьшению, так как отсев просто по измененному значению будет очень долгим)

    пример:
    1. в инглише. вместо Exact value ставишь Unknown initial value (4 байта, скорей всего)
    2. скан
    3. побегал, например выносливость уменьшилась, ставишь паузу, так как значение не должно равняться или быть больше того, которое искали в первый раз, тут думаю понятно почему, выставляешь Decreased value (уменшилось)
    4. скан
    5. отдохнул, выносливость увеличилась, ставишь Increaced value (увеличилось)
    6. скан
    7. повторить процедуру с пункта 3 до нахождения нужного значения
    таким образом можно найти практически любые значения не отображаемые в числовом виде

    трейнер скачай, проще будет. или таблицу для Cheat Engine поищи, может есть. по мне так табличка самое оно

    [СТАТЬЯ] Находим указатели в играх

    Я пишу эту статью исключительно для новичков, но она может быть полезна и бывалому читеру.Здесь, в отличии от других гайдов, я буду объяснять почти каждое действие и вдаваться в подробности.

    Как вы уже заметили, находя значение жизней и тому подобных, при перезапуске игры их значение заменяется на . Это означает что у вашего значения поменялся адресс.У этого значения есть указатель, который неизменен.Их может быть и больше.В этой статье я научу вас их находить.Приступим.

    Я возьму для примера tutorial cheat engine step 8.Везде принцип один и тот же, то-есть таким же образом вы сможете найти указатели во многих играх, в том числе и в Perfect world, Jade Dinasty.

    Во первых если у вас нету программы которая работает с памятью, нужно скачать программу Cheat engine.Ее можно скачать с офицального сайта — http://www.cheatengine.org/
    Переходим по ссылке, нажимаем download cheat engine, качаем, устанавливаем.

    Открываем Tutorial-i386.exe в папке с программой.
    Мы видим такое окно:
    В поле password вводим пароль 8 ступени — 525927 и жмем ок.

    Открываем Cheat Engine нажимаем на светящийся монитор и выбираем процесс Tutorial-i386.exe

    Теперь настройка закончена.Перейдем к взлому.

    Смотрим на окошко туториала —
    Там есть две кнопки — change value и change pointer.Из этого уже известно что там будет хотя бы один указатель.И есть значение, в данном случае оно у меня 1621.

    Переходим в окно Cheat Engine и в строку value вводим 1621.Ничего не меняем.Жмем first scan.Если оно одно — хорошо.Если несколько, жмем change value в строку вводим следующее значение и жмем next scan.

    Жмем на значение два раза и оно появляется внизу.Перейдем к находке указателей.
    Жмем внизу по значение правой клавишей мыши и жмем find out what writes to this adress.

    Появится новое окно.Оно спросит разрешение, нажмите yes.
    Перейдите в туториал и нажмите change value.В том окне появится функция.Жмем по ней и more info.Зеленым выделено смещение.Его нужно запомнить, оно понадобится нам позже.Желтым указан указатель в hex’e.Это первый указатель, а их здесь 4.

    Переходим в окно Cheat Engine и жмем new scan.Ставим галку напротив hex и вводим адресс.

    Внизу жамкаем по нему find out what acces to this adress.

    Находим так указатели пока не дойдем до зеленого указателя, он статический, последний указатель.

    Теперь закрываем лишние вкладки cheat engine переходим в главное окно и жмакаем add adress manually.Жмем галку напротив pointer и 3 раза add pointer.Зеленый указатель вставляем в самую нижнюю строчку.
    Помните я говорил вам запомнить смещение?Теперь оно нам нужно.Ставим его в поля оффсет в порядке 18 0 14 c и сверху должен быть адресс самого первого значения.Внимание на рисунок.

    Жмем ОК и у нас внизу появилось еще одно значение.Замораживаем его — ставим крестик в окошке и изменяем значение на 5000.Переходим в окно туториала жмем change pointer — и вуаля!Туториал пройден.

    Понравилась статья? Поделить с друзьями:
  • Как девушке найти подругу в москве
  • Равносторонний треугольник как найти сторону через медиану
  • Шелушится лак на машине как исправить
  • Как найти приговоры судов на сайтах судов
  • Как найти договор кредита по номеру договора